当RTCP数据包丢失时会发生什么?

时间:2015-03-12 04:44:57

标签: networking rtp rtcp

我是RTP / RTCP协议的新手,我听说在RTP数据包之间定期发送RTCP用于某些诊断目的。假设RTP数据包丢失,可以通过序列号和RTCP数据包中的报告进行识别。但是如果RTCP数据包本身丢失会怎么样?让我们举个例子" BYE"格式(表示参与结束)。

1 个答案:

答案 0 :(得分:1)

在RTP会话期间,通过接收RTCP报告(发送方和接收方报告)来构建和维护SSRC数据库(接收方和发送方拥有自己的SSRC)。

因此,在丢弃RTCP报告的情况下,可能会根据丢弃的原因发生一些事情:

  1. 源离开RTP会话,其BYE RTCP数据包被丢弃。由于源已离开会话,因此它将超时,因为它不再发送RTCP报告并从参与者数据库中删除
  2. 源脱机,不再发送任何RTCP报告。源将超时并从参与者数据库中删除
  3. 删除单个RTCP报告。这不足以使源超时,并且RTCP处理将在下一个收到的报告上恢复。发件人报告只包含单调增加的数据字段,因此下降只意味着在丢弃期后更粗粒度的更新将会到达。 Receiver报告具有单调增加的字段和引用上一个报告的字段。如果发生包含接收者报告的丢弃,那些包含与上一个报告相关的数据的字段将丢失,因为它仅存在于该报告实例中