RTCP可以通过发送SR(Sender Report)和RR(Receiver Report)等报文来监测网络状态,如丢包率、延迟、抖动等,从而实时反馈网络状况。
根据接收方的反馈信息,RTCP可以调整RTP流的发送速率,以适应当前网络状况。
通过NACK(Negative Acknowledgment)等反馈机制,RTCP可以通知发送方需要重传丢失的数据包,从而提高数据传输的可靠性。
RTCP可以发送BYE(Goodbye)报文通知其他参与者当前参与者已经退出会话,同时支持SDES(Source Description)报文来描述参与者的信息,如名称、邮箱地址、电话号码等。
RTCP通过TMMBR(Temporary Maximum Media Stream Bit Rate Request)和TMMBN(Temporary Maximum Media Stream Bit Rate Notification)等机制支持带宽控制,可以根据网络带宽情况来调整RTP流的发送速率。
由RTP发送者发送,包含发送者的相关信息,如时间戳、序列号、发送者的SSRC等。
由RTP接收者发送,用于告知发送者接收情况,如接收到的数据包个数、延迟情况等。
用于描述RTP参与者的信息,如名称、邮箱地址、电话号码等。
用于通知其他参与者当前参与者已经退出会话。
用于传输应用程序特定的信息,如流媒体服务器的相关信息等。
当接收方检测到丢失的数据包时,可以发送NACK报文通知发送方需要重传数据包。
当接收方成功接收到数据包时,可以发送ACK报文通知发送方数据包已经成功接收。
当接收方需要一个完整的I帧(Intra Frame)时,可以发送FIR报文通知发送方发送一个完整的I帧。
当接收方检测到图像质量降低时,可以发送PLI报文通知发送方需要重新发送该图像。
当接收方检测到视频帧的一个或多个切片丢失时,可以发送SLI报文通知发送方需要重新发送丢失的切片。
用于指示接收方选择哪个参考帧,可以减少重传的数据量。
用于请求发送方降低RTP流的发送速率。
用于告知接收方当前网络带宽的情况。
用于区分不同的RTP参与者,是RTP SSRC(Synchronization Source)的一个补充,可以在SDES(Source Description)报文中描述。
用于标识RTP数据流中的不同数据源,必须唯一且不变。
用于指定RTCP报文的发送间隔,通常根据RTP流的带宽和参与者数量来确定。
用于指定RTCP报文的带宽,通常是RTP流带宽的一小部分,可以根据网络状况动态调整。
用于指定RTP协议的配置参数,如传输协议、编解码器类型等。
用于扩展RTCP报文的功能,如添加网络抖动、丢包率、端到端延迟等信息。
用于扩展RTCP报文的反馈机制,如NACK(Negative Acknowledgment)、ACK(Acknowledgment)等。
用于将多个RTCP报文合并成一个复合报文发送,可以减少RTCP报文的发送数量和带宽占用。
CCM是一种基于反馈的拥塞控制机制,可以根据接收方的反馈信息调整RTP流的发送速率。具体来说,当接收方检测到网络拥塞时,可以发送一条RTCP报文,告知发送方需要降低RTP流的发送速率。发送方收到报文后,可以根据报文内容调整发送速率,以适应当前网络状况。
TMMBN是一种基于通知的拥塞控制机制,用于告知接收方当前网络带宽的情况。具体来说,当接收方检测到网络带宽变化时,可以发送一条RTCP报文,告知发送方当前网络带宽的情况。发送方收到报文后,可以根据报文内容调整发送速率,以适应当前网络状况。