RTCP - Real-Time Control Protocol ==================================== .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is RTCP?** RTCP, or Real-Time Control Protocol, is a companion protocol to RTP, standardized by the IETF. It is used to monitor transmission statistics and Quality of Service in real-time media streaming and conferencing applications. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why RTCP is Useful?** * Provides feedback on media delivery quality. * Supports synchronization between audio and video streams. * Enables participant identification and session controls. * Helps in network diagnostics and performance tuning. * Facilitates adaptive streaming decisions based on real-time metrics. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** * RTP transmits media - Audio/video packets are sent using RTP. * RTCP packets are sent periodically - Clients and servers exchange control packets. * Reports are generated - RTCP includes sender and receiver reports with metrics. * Synchronization info is shared - RTCP helps align audio and video streams. * Session info is updated - RTCP includes source descriptions and participant data. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is RTCP used?** * VoIP and video calls - Skype, Zoom, WhatsApp use RTCP for quality monitoring. * Streaming platforms - RTCP helps optimize delivery in live and on-demand services. * Video conferencing systems - RTCP supports multi-party session management. * WebRTC applications - RTCP is integral to browser-based real-time communication. * Surveillance and IP cameras - RTCP ensures reliable and synchronized video feeds. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI Layer Does RTCP Belong To?** RTCP operates at the **Application Layer (Layer 7)** of the OSI model because: * It provides control and feedback functions for RTP media streams, which are application-level tasks. * Uses UDP as the transport protocol but manages session-level concerns like QoS, synchronization, and participant information. * Facilitates real-time monitoring and adaptation, directly serving multimedia applications. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`RTCP Version&RFC Details ` * :ref:`RTCP Basic Setup on Ubuntu using IPv4 ` * :ref:`RTCP Basic Setup on Ubuntu using IPv6 ` * :ref:`RTCP Protocol Packet Details ` * :ref:`RTCP Usecases ` * :ref:`RTCP Basic Features ` * :ref:`RTCP Feature : Quality Feedback ` * :ref:`RTCP Feature : Synchronization Support ` * :ref:`RTCP Feature : Sender and Receiver Reports ` * :ref:`RTCP Feature : Source Description ` * :ref:`RTCP Feature : Session Control ` * :ref:`RTCP Feature : Scalability ` * :ref:`RTCP Feature : Low Overhead ` * :ref:`RTCP Feature : Congestion Control ` * :ref:`RTCP Feature : Extensibility ` * :ref:`RTCP Feature : Security Support ` * :ref:`RTCP Feature : Interoperability ` * :ref:`RTCP Feature : Multicast and Unicast Support ` * :ref:`RTCP Feature : Periodic Reporting ` * :ref:`RTCP Feature : Codec and Media Adaptation ` * :ref:`RTCP Feature : Application-Level Integration ` * :ref:`Reference links ` .. _RTCP_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _RTCP_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _RTCP_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _RTCP_step5: .. tab-set:: .. tab-item:: RTCP Version&RFC Details .. csv-table:: :file: ./RTCP/RTCP_RFC_Details.csv :widths: 10,10,10,30,40 :header-rows: 1 .. _RTCP_step24: .. tab-set:: .. tab-item:: RTCP Basic Setup on Ubuntu using IPv4 * Setup .. _RTCP_step25: .. tab-set:: .. tab-item:: RTCP Basic Setup on Ubuntu using IPv6 * Setup .. _RTCP_step6: .. tab-set:: .. tab-item:: RTCP Protocol Packet Details **Sender Report Packet** .. csv-table:: :file: ./RTCP/RTCP_Protocol_Packet_1.csv :widths: 10,20,30,10 :header-rows: 1 **Receiver Report Packet** .. csv-table:: :file: ./RTCP/RTCP_Protocol_Packet_2.csv :widths: 10,20,30,10 :header-rows: 1 **Source Description Packet** .. csv-table:: :file: ./RTCP/RTCP_Protocol_Packet_3.csv :widths: 10,20,30,10 :header-rows: 1 **Goodbye Packet** .. csv-table:: :file: ./RTCP/RTCP_Protocol_Packet_4.csv :widths: 10,20,30,10 :header-rows: 1 **Application-Defined Packet** .. csv-table:: :file: ./RTCP/RTCP_Protocol_Packet_5.csv :widths: 10,20,30,10 :header-rows: 1 .. _RTCP_step7: .. tab-set:: .. tab-item:: RTCP Usecases .. csv-table:: :file: ./RTCP/RTCP_Usecases.csv :widths: 10,20,30 :header-rows: 1 .. _RTCP_step8: .. tab-set:: .. tab-item:: RTCP Basic Features .. csv-table:: :file: ./RTCP/RTCP_Features.csv :widths: 10,10,30 :header-rows: 1 .. _RTCP_step9: .. tab-set:: .. tab-item:: RTCP Feature : Quality Feedback **Quality Feedback - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-1_Quality_Feedback_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step10: .. tab-set:: .. tab-item:: RTCP Feature : Synchronization Support **Synchronization Support - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-2_Synchronization_Support_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step11: .. tab-set:: .. tab-item:: RTCP Feature : Sender and Receiver Reports **Sender and Receiver Reports - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-3_Sender_And_Receiver_Reports_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step12: .. tab-set:: .. tab-item:: RTCP Feature : Source Description **Source Description - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-4_Source_Description_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step13: .. tab-set:: .. tab-item:: RTCP Feature : Session Control **Session Control - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-5_Session_Control_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step14: .. tab-set:: .. tab-item:: RTCP Feature : Scalability **Scalability - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-6_Scalability_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step15: .. tab-set:: .. tab-item:: RTCP Feature : Low Overhead **Low Overhead - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-7_Low_Overhead_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step16: .. tab-set:: .. tab-item:: RTCP Feature : Congestion Control **Congestion Control - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-8_Congestion_Control_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step17: .. tab-set:: .. tab-item:: RTCP Feature : Extensibility **Extensibility - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-9_Extensibility_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step18: .. tab-set:: .. tab-item:: RTCP Feature : Security Support **Security Support - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-10_Security_Support_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step19: .. tab-set:: .. tab-item:: RTCP Feature : Interoperability **Interoperability - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-11_Interoperability_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step20: .. tab-set:: .. tab-item:: RTCP Feature : Multicast and Unicast Support **Multicast and Unicast Support - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-12_Multicast_and_Unicast_Support_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step21: .. tab-set:: .. tab-item:: RTCP Feature : Periodic Reporting **Periodic Reporting - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-13_Periodic_Reporting_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step22: .. tab-set:: .. tab-item:: RTCP Feature : Codec and Media Adaptation **Codec and Media Adaptation - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-14_Codec_And_Media_Adaptation_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step23: .. tab-set:: .. tab-item:: RTCP Feature : Application-Level Integration **Application-Level Integration - Testcases** .. csv-table:: :file: ./RTCP/RTCP_Feature-15_Application-Level_Integration_Testcase.csv :widths: 10,10,30,20 :header-rows: 1 .. _RTCP_step26: .. tab-set:: .. tab-item:: Reference links * Reference links