mediasoup 源码分析(十三) 丢包重传 webrtc nack 机制

一、丢包介绍

    由于webrtc所用的rtp协议底层是基于udp传输,所以并不能保证数据的可靠性。在发生丢包时,为了保证音视频的质量需要进行重传,而 nack机制就是用来处理重传逻辑的,需要注意一点由于udp本身是无序的,所以在进行丢包重传时要做一定的特殊处理。

二、nack 报文介绍

nack 反馈机制是webrtc  QOS中的核心技术,是非常重要的。所有的webrtc 服务器都需要实现这一套逻辑,不同的服务器nack处理逻辑大同小异。所以大家学习流媒体服务器开发,可以参考mediasoup的实现过程。

文档 :RFC4585

在封包时,FCI字段会替换为下面的Packet identifier(PID),Bitmap of lost packets(BLP).,最终结构如下:

其中PT=205,FMT=1 ,Packet identifier即为丢失的RTP数据包的序列号,BitMap of lost packets指从Packet identifier标记的丢包序号开始,接下来16个RTP数据包丢失的情况。一个NACK报文可以携带多个RTP序列号,NACK接收端对这些序列号逐个

猜你喜欢

转载自blog.csdn.net/lcalqf/article/details/108161315