RTMP协议
应用范围:娱乐直播的传输和点播协议
HLS 是由苹果公司推出的,用来替换RTMP协议。但由于前期各个厂家的投入。替换的可能性微乎其微。
RTMP相对于HLS 的效率和实时性上要高很多。
RTMP依赖于TCP协议。
TCP三次握手
第一次握手:client发送给server一个SYN信息,序号为J
第二次握手:server收到SYN J后,发送一个ACK(应答) J+1和一个SYNK
第三次握手:client收到SYNK和ACKJ+1后,client发送一个ACK K+1给server
经过这三次握手就可以开始通讯了。
RTMP是在TCP之上的,client和server的connection也是通过三次握手。
管道中的虚线表示建立链接后的stream。
RTMP创建流的基本过程:
1、socket建立TCP链接
2、RTMP握手
3、建立RTMP连接
4、创建RTMP流
RTMP握手
上面的图可以简化为下面你的图
1、client发送C0 C1,server收到
2、server收到后发送S0 S1 S2
3、client 发送C2.
和tcp的三次握手非常类似。
官方文档和真实的情况还是有一些出入。前人通过adobe提供的服务器抓包发现了真实的情况。
RTMP建立链接
https://blog.csdn.net/simongyley/article/details/29851337
1、客户端发送 connect 命令到服务器端来请求连接到一个服务器应用的实例;
2、服务器端发送Window Acknowledgement Size 来通知客户端端发送和应答之间的窗口大小。发送者在发送完窗口大小字节之后期待对端的确认。
3、服务器端发送这一消息来限制客户端的输出带宽。
4、客户端发送一个Window Acknowledgement Size给服务端。
真实情况中的建立链接
创建RTMP流
推RTMP流
metaData 多媒体文件的基本信息。
播放RTMP流