RTMP
RTMP(real time messaging protocol)实时消息传输协议
RTMP 给予TCP协议 是一个协议族 包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种
RTMP 内部使用的格式为 FLV
基本原理: RTMP是基于TCP的三次握手之后的 它本身是基于TCP的可靠性连接
客户端与服务器端通过字段内容协商来完成可信度认证
client 客户端需要发三个包 C0 C1 C2
server 服务器端需要发送三个包 S0 S1 S2
握手方式:
- 客户端发送 C0 C1 到服务器端
- 服务器端发送 S0 S1 到客户端
- 客户端发送C2到服务器端 服务器端发送S2到客户端
有一些细节需要注意
握手开始
- 客户端发送C0 C1 包
此时客户端处于等待状态 有两个限制: 1.客户端在未接收到S1之前不能发送C2包;2.客户端在未接收到S2之前不能发送任何实际数据包 - 服务器端在接收到C0后 发送S0 S1包 也可以等到接收到C1之后一起发送 C1包的等待不是必须的
此时服务器端处于等待状态 有两个限制:1.服务器端在未接收到c1前不能发送S2;2.服务器端在未接收到C2前不能发送任何实际数据包 - 客户端在接收到 S0 S1包后 发送C2包
- 服务器端在接收到C2包后 发送S2包 此时三次握手完成
在实际应用中 因为RTMP不是强安全性的协议 所以S2/C2只需C1/S1包中的内容 就可以完成内容的拼接
C/S 0 1 2包
C0 S0
C0 S0 长度为 1B
C0 客户端发送2其所支持的RTMP版