rtmp协议——复杂握手

复杂握手一般步骤

复杂握手是 RTMP 协议中用于建立连接的更安全的握手过程,通常涉及到 C0、C1、S0、S1、S2、C2 和 C3 七个握手消息。以下是复杂握手的一般步骤:

  1. 客户端发送 C0 和 C1 到服务器:

    • C0:客户端发送一个包含协议版本号的 8 位字节,通常为 0x03(表示 RTMP 协议版本 3)。
    • C1:客户端发送一个 1536 字节的数据块,其中包括时间戳、客户端随机数据和一些其他信息。C1 的前 4 个字节通常包含与时间戳相同的值。
  2. 服务器接收 C0 和 C1,生成 S0、S1、S2:

    • S0:服务器生成一个包含协议版本号的 8 位字节,通常为 0x03(与 C0 相同)。
    • S1:服务器生成一个 1536 字节的数据块,其中包括时间戳、服务器随机数据和一些其他信息。S1 的前 4 个字节通常包含与时间戳相同的值。
    • S2:服务器生成一个 1536 字节的数据块,与 S1 对应,包含时间戳和随机数据。
  3. 服务器发送 S0、S1、S2 到客户端:

    • 服务器将 S0 和 S1 发送给客户端。
  4. 客户端接收 S0、S1,验证 S1 的有效性,生成 C2:

    • 客户端验证 S1 的时间戳和随机数据的有效性,确保它们与 C1 中的值一致。
    • 客户端生成 C2,一个 1536 字节的数据块,与 C1 对应,包含时间戳和随机数据。
  5. 客户端发送 C2 到服务器:

    • 客户端将 C2 发送给服务器。
  6. 服务器接收 C2,验证 C2 的有效性,生成 S2:

    • 服务器验证 C2 的时间戳和随机数据的有效性,确保它们与 S1 中的值一致。
    • 服务器生成 S2,一个 1536 字节的数据块,与 S1 对应,包含时间戳和随机数据。
  7. 服务器发送 S2 到客户端:

    • 服务器将 S2 发送给客户端。
  8. 握手成功:

    • 如果 S2 和 C2 的验证通过,握手成功,双方可以开始正常的 RTMP 通信。

Tip
ffmpeg 抓包rtmp协议中,没有生成s3逻辑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值