rtmp协议(2)-握手过程
来源:互联网 发布:如何抢特价机票 知乎 编辑:程序博客网 时间:2024/06/17 12:34
rmtp连接的第一个协议是握手协议。名字叫handshake.
handshake的作用只有一个同步版本号和timestamp。和tcp握手的作用基本差不多。
rtmp的握手协议双方一共要发留个包,各自发三个。分别如下
c0 s0
只有8个字节,双方通过这个命令来同步版本号,现在版本是03.
c2 s2
这个命令主要是双方各自发出自己这段的time,做为后续包的时间戳的起点。
c2 s2
这个命令有点复杂。首先他是有发送顺序的,必须是s2首先发出,然后c2才可以发出。其次。在这个包里,出现的两个time顺序也是有规律的。第一个time必须是对端的time,第二个是自己的time。
下面抓包看
第一个包c0+c1,可以看到,客户端把前两个包一起发出了
版本号就是03,客户端的时间为20 4f 04 52
然后服务器开始回包
服务器把s0 s1 s2包都一起发出了。这里有点奇怪
服务器的s1包,前四个自己是自己的时间 57 c3 d9 04,接着是客户端的时间20 4f 04 52,
s2包,开头四个字节是 20 4f 04 52,而接着四个字节是00 00 00 00
只是部分遵守了规定。
在看客户端发出去的最后一个包c2
两个时间戳分别为 57 c3 d9 04 和20 4f 04 52
我发现,在核对时间簇的过程。这样可以更好的理解。双方都发出里本地时间戳+四个字节的空位+1528个字节的随机数据,需要对方拿到这个数据后,在四个字节的空位上填上对方的时间戳在法会来。其他不变。就像一个相互交表的过程。
2016.10.11 修改:
我理解错误了。在三对包中,带1字下标的包实际上是一个校验包,发给对方以后,要求对方完全拷贝成2字下标的数据回来
以上是一个simple handshake的过程。网上还有一种叫complex handshake的握手过程。对后面1528个数据做了限制,不在是随机的数据。这种情况我还没有碰到过。
- rtmp协议(2)-握手过程
- RTMP协议详解 (一) 握手
- RTMP协议握手详解
- RTMP协议学习 ---握手
- rtmp握手过程
- RTMP协议过程分析
- ssl协议握手过程
- SSL协议握手过程
- SSL协议握手过程
- SSL协议握手过程
- rtmplib rtmp协议过程分析
- rtmplib rtmp协议过程分析
- rtmplib rtmp协议过程分析
- RTMP-握手
- TCP握手协议具体过程
- SSL协议的握手过程
- SSL协议以及握手过程
- SSL协议详细握手过程
- SSL/TLS协议运行机制的概述
- 20160712,微软7月12日发布11个安全补丁
- Activity的隐式调用和显示调用
- hadoop遇见的错误
- input输入框4个以空格,获得焦点就没有
- rtmp协议(2)-握手过程
- Lock及ReentrantReadWriteLock学习
- 模板设计模式
- SQL Server2008突然连接不到本地数据库
- 内置APK根据包名找到APK路径
- 在Mac上解决Android Studio 鼠标悬停文档显示fetching documentation的问题
- UVA 11426 GCD - Extreme (II)(神TM GCD大法,欧拉函数)
- 搞定各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 -
- eclipse最有用快捷键整理