RTMP协议优化

2022-03-18 17:10:33 浏览数 (2)

RTMP协议是基于TCP的协议,将应用层的消息分割成chunk用tcp发送,除了增大chunk到很大的数避免分片譬如60000,还可以优化发包方式,将很多小包组合到一起了一次发送给客户端,避免每个小包分开发送,每次tcp的来回都很费劲呐。

先看一个没有优化的例子,一个知名的cdn的rtmp的序列,一共花了39个TCP包才开始传输数据包,前面都是磨磨唧唧的rtmp握手和交互:

SRS对于RTMP已经做了优化,组合了一些小包,可以减少大约10个包。见下图:

SRS并非是效率最高的,还可以继续榨取,将其中的一些包再减少一些,达到最少的tcp交互,就开始发送数据包,BMS的优化结果如下:

以最少的tcp包完成交互,在同等网速下,srs和bms的的传输效果是最好的。

备注:为了方便wireshark解析正确,SRS和BMS的chunk size都设置为了128,实际上srs和bms的默认chunk size都是60000(虽然wireshark解析不正常,不影响播放器播放)。

0 人点赞