RTMP 抓包分析

来源:互联网 发布:淘宝热卖排行榜 编辑:程序博客网 时间:2024/06/06 07:13

http://blog.csdn.net/linux_arm_c/article/details/48780951

抓包下载路径:http://download.csdn.NET/detail/linux_arm_c/9143761


交互流程为:

  • c0与s0格式
    c0和s0包是一个1字节,可以看作是一个byte
    目前rtmp版本定义为3,0-2是早期的专利产品所使用的值,现已经废弃,4-31是预留值,32-255是禁用值(这样做是为了区分基于文本的协议,因为这些协议通常都是以一个可打印的字符开始),如果服务端不能识别客户请求的版本,那么它应该发送3的响应,客户端这时可以选择下降到版本3,也可以放弃这次握手.
  • c1与s1格式
    c1与s1长度为1536个字节,它们由以下字段组成
    时间戳:该字段占4字节,包含了一个时间戳,它是所有从这个端点发送出去的将来数据块的起始点,它可以是零,或是任意值,为了同步多个数据块流,端点可能会将这个字段设成其它数据块流时间戳的当前值.
    0:此标记位占4字节,并且必须是0
    随机数:该字段占1528字节,可以是任意值,因为每个端点必须区分已经初始化的握手和对等端点初始化的握手的响应,所以这个数据要足够的随机,当然这个也不需要密码级的随机或是动态值.
  • c2与s2格式
    c2和s2包长都是1536字节,几乎是s1和c1的回显.
  • time1
    该字段占4字节,包含有对方发送过来s1或c1的时间戳
    time2
    该字段占4字节,包含有对方发送过来的前一个包(s1或者c1)的时间戳
    随机数回显
    该字段占1528字节,包含有对方发送过来的随机数据字段,每个通信端点可以使用time和time2字段,以及当前的时间戳,来快速估计带宽和/或连接延时,但这个数值基本上没法用.

0 0
原创粉丝点击