NACK 格式

371 阅读1分钟

下图是RTCP feedback的消息头通用格式, 每个字段的含义在前文中都有介绍.

对于不同的feedback消息 他们的FCI是不一样的, 下面是NACK的FCI

  • PID : 2字节, packet ID, 丢包的seqNumber

  • BLP : 2字节, bitmask of following lost pacckets, 丢失包后面包的丢包掩码.

  • 例如: 丢失包的seqnum是111, 那么BLP就是这个111之后, 16个包的丢包情况, 从低位到高位分别表示seqnum区间为112 - 128的丢包情况, 丢失了则在对应的位上置1.

  • 相关文档: datatracker.ietf.org/doc/rfc4585…

通过抓包解析NACK消息

通过过滤RTCP消息, 抓取RTP Feedback的消息, 其中找到FMT为1的nack消息

FCI中:

  • PID为32851, 说明丢包起始位置在32851

  • BLP为0x0003, 说明32853和32854也丢失了

发送端通过解析这个消息, 获取丢包seqnum, 在自己发送的历史记录中找到这几个包, 通过RTX重新发送给接收端.