rtmp信令第一步是握手(Handshake),握手有Simple Handshake和Complex Handshake,Simple Handshake为简单握手,不需要使用加密算法校验,Complex Handshake为复杂握手,需要使用openssl的算法校验。
一、Simple Handshake
概述
1) C0 1 byte,表示客户端RTMP的版本号。
2) C1 1536 bytes (4-time + 4-zero + 1528-random)
- 时间:4 bytes。时间戳。
- 零:4 bytes。本字段必须是全零。
- 随机数据:1528 bytes。随即数据用于区分身份,应充分的随机性。
3) C2 1536 bytes (4-time + 4-time2 + 1528-echo),是对S1的回复
- 时间:4 bytes。S1的时间。
- 时间 2:4 bytes。C1的时间。
- 随机回复:1528 bytes。S1的随机数据。
4) S0 1 byte 表示服务端RTMP的版本号,格式同C0
5) S1 1536 bytes (4-time + 4-zero + 1528-random),格式同C1
6) S2 1536 bytes (4-time + 4-zero + 1528-echo),是对C1的回复,格式同C2
举例
以下为使用wireshark抓包的部分内容: