rtmp协议(2)-握手过程

原创 2016年08月29日 15:24:50

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协议学习 ---握手

第一季度学习总结,同步于CKT wiki

RTMP协议握手详解

http://www.pigg.co/rtmp-protocol-handshake.html RTMP协议握手详解 2013-03-31 / 实践总结, 架构设计 / flash, ha...

android 媒体OMX的实现(硬解码)

android的多媒体部分采用的编解码标准是OMX,当然这个标准是用于硬件编解码的,软件编解码(ffmpeg)在这里我就不说了。 直接从stagefright的awesomeplayer开始说起吧,如...

rtmp协议(1)--消息语法

学过很多的协议。看过很多的文档。基本都看完就忘记。今天尝试下新方法,看看能不能彻底理解这些消息 信息。 rtmp的基本结构有两种:message 和chunk ,一系列的交互,一系列的语法,都基于...
  • ddr77
  • ddr77
  • 2016年08月29日 11:04
  • 272

RTSP 协议握手过程

  • 2016年07月19日 13:22
  • 16KB
  • 下载

rtmplib rtmp协议过程分析

写的很好,收藏如下,向作者致敬! 没事碰到了librtmp库,这个库是ffmpeg的依赖库,用来接收,发布RTMP协议格式的数据。 代码在这里:git clone git://git.ff...
  • wishfly
  • wishfly
  • 2016年11月03日 17:54
  • 511

RTMP协议分析及推流过程

简介: 1.RTMP(实时消息传输协议)是Adobe 公司开发的一个基于TCP的应用层协议。 2.RTMP协议中基本的数据单元称为消息(Message)。 3.当RTMP协议在互联网中传...

rtmp 协议分析及交互过程

RTMP流媒体播放过程 分类: RTMP2013-09-15 11:19 13039人阅读 评论(9) 收藏 举报 播放RTMP协议 本文描述了从打开一个RTMP...

rtmplib rtmp协议过程分析

转自:http://chenzhenianqing.cn/articles/1009.html 写的很好,收藏如下,向作者致敬! 没事碰到了librtmp库,这个库是ffmpeg的依赖库,用来接收...
  • occupy8
  • occupy8
  • 2015年01月17日 22:08
  • 11321

TCP协议三次握手过程分析

TCP协议三次握手过程分析 TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:rtmp协议(2)-握手过程
举报原因:
原因补充:

(最多只允许输入30个字)