RTMP
RTMP
RTMP(Real-Time Messaging Protocol)是由Adobe Systems开发的一种用于音视频以及数据在因特网上进行高效传输的协议,被广泛用于各种实时流媒体传输。
握手
RTMP(实时消息传输协议)的握手过程是客户端和服务器建立连接的初始阶段,它确保双方能够同步时钟并协商连接参数。RTMP的握手过程主要包括以下三个阶段:
C0 和 S0:
- 客户端发送一个字节的C0数据,它表示RTMP协议的主版本,通常为0x03。
- 服务器接收后,回复一个字节的S0数据,同样用来表示RTMP协议的版本。
C1 和 S1:
- 客户端紧接着发送C1数据块,长度为1536字节。C1包含了一个32位的UTC时间戳、一个32位的零值字段(被称为Flash Player的版本信息,但通常填充为零),以及1528字节的随机数据。
- 服务器收到之后,回复S1数据,也是一块1536字节的数据,结构与C1相同:包括一个32位的时间戳、一个32位的零值字段和1528字节的随机数据。
C2 和 S2:
- 客户端在收到S1后会发送C2数据,这是一个1536字节的块。这次包含的是服务器在S1中发送的时间戳和随机数据,就是服务器在S1发送的随机数据块的反射。
- 服务器在收到C2之后,发送S2数据给客户端,结构和C2类似:反射客户端在C1中发送的时间戳和随机数据。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ali5669!
评论