network-programmingrtprtcp

what happen when RTCP packet get lost?


I am new to RTP/RTCP Protocol and I heard that RTCP will be send periodically between RTP Packets for some diagnostic purpose. Suppose if an RTP packet gets lost it can be identified by sequence number and through Reports in RTCP packet. But what happens if RTCP packet itself gets Lost? Lets take example "BYE" format (which indicates end of participation).


Solution

  • During an RTP session, a database of SSRCs (receivers and senders have their own SSRCs) is built and maintained by receiving RTCP reports (both sender and receiver reports).

    So in the case of dropped RTCP reports, a number of things could happen based on why the drops happened:

    1. A source leaves the RTP session and its BYE RTCP packet is dropped. Since the source left the session, it will be timed out because it is no longer sending RTCP reports and removed from participant database
    2. A source drops offline and no longer sends any RTCP reports. The source will be timed out and removed from the participant database
    3. A single RTCP report is dropped. This is not enough to timeout the source and RTCP processing will resume on the next received report. Sender reports simply include monotonically increasing data fields, so a drop just means a more coarse grained update will arrive after the drop period. Receiver reports have both monotonically increasing fields and fields that reference the last report. If a drop occurs containing a receiver report, those fields which contain data relative to the last report will be lost as it only exists for that instance of the report