本文梳理了理解RTMP协议的基本概念
访问我的博客了解更多
RTMP 的通信机制
rtmp 客户端与服务端通信的机制
下图是播放器与 rtmp 服务端通信的例子
另外推荐阅读 nginx-rtmp-module 源码,比如,握手协议相关代码在 ngx_rtmp_handshake.c
文件
RTMP 的握手连接的例子
step 1, tcp 三次握手
TCP 握手过程这里不详细展开,参考这篇文章 TCP 的那些事儿
step 2, RTMP 握手验证
RTMP 握手起到验证的作用,RTMP 握手方式主要分为:简单握手与复杂握手
Adobe 协议中描述的是简单握手,而 Adobe 产品 Flash Media Server 采用复杂握手的方式
简单握手
与流程图有点不同,握手的实际流程分三个步骤:
- 第一步, Client -> Server,内容是 C0+C1
- 第二步, Server -> Client,内容是 S0+S1+S2
- 第三步, Client -> Server,内容是 C2
我使用 Wireshark 抓包,验证了过程(我使用 nginx-rtmp-modu