RTMP握手流程
RTMP(Real-Time Messaging Protocol)
不支持除H.264/AAC之外的标准。
使用TCP,当到达网络拥塞、宽带上限时,传输质量受到影响。
URL格式:
rtmp://host:port/app(名称)/stream(流ID)
默认端口:1935
三次握手
数据块详解
-
C0/S0(版本协商):
- 1字节,标识RTMP版本(通常为
0x03
)。 - 若服务器不支持C0的版本,立即断开连接。
- 1字节,标识RTMP版本(通常为
-
C1/S1(时间戳与随机数据):
- 时间戳:4字节,客户端/服务器的当前Unix时间戳。
- 零填充:4字节全零(保留字段)。
- 随机数据:1528字节,用于后续验证(必须为非零随机值)。
-
S2/C2(验证回应):
- 内容为对方发送的C1/S1的时间戳和随机数据的拷贝,用于确认握手有效性。