RTP/RTCP协议记录

本文详细介绍了RTP和RTCP协议,包括RTP的概述、包的封装格式,以及RTCP的主要功能和五种分组类型。RTP用于传输实时数据,RTCP则提供服务质量保证,两者共同确保音视频通信的高效和稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RTP概述

  • 1.简单的多播音频会议。语音通信通过一个多播地址和一对端口来实现。一个用于音频数据(RTP),另一个用于控制包(RTCP)。
  • 2.音频和视频会议。如果在一次会议中同时使用了音频和视频会议,这两种媒体将分别在不同的RTP会话中传送,每一个会话使用不同的传输地址(IP地址+端口)。如果一个用户同时使用了两个会话,则每个会话对应的RTCP包都使用规范化名字CNAME(Canonical Name)。与会者可以根据RTCP包中的CNAME来获取相关联的音频和视频,然后根据RTCP包中的计时信息(Network time protocol)来实现音频和视频的同步。
  • 3.基于UDP实现的,RTP用来为端到端的实时传输提供时间信息和流同步,但并不保证服务质量。服务质量由RTCP来提供。

RTP包的封装

  • RTP包的格式
    在这里插入图片描述
  • 版本号(V):2比特,用来标志使用的RTP版本。现在唯一有意义的是作为包的有效性检查。
  • 填充位(P):1比特,如果该位置位,则该RTP包的尾部就包含附加的填充字节。
  • 扩展位(X):1比特,如果该位置位的话,RTP固定头部后面就跟有一个扩展头部。
  • CSRC计数器(CC):4比特,含有固定头部后面跟着的CSRC的数目。
  • 标记位(M):1比特,该位的解释由配置文档(Profile)来承担,例如标记当前包是否是帧的最后一个数据包(标示帧边界作用);
  • 载荷类型(PT):7比特,标识了RTP载荷的类型。详细说明在profile中,96-127保留作为动态分配使用。
  • 序列号(SN):16比特,发送方在每发送完一个RTP包后就将该域的值增加1,接收方可以由该域检测包的丢失及恢复包序列。序列号的初始值是随机的。其中扩展序列号(32位):低16位是序列号,高16位是序列号重复的次数。Extended_seq_num=seq_num+(65536*wrap_around_count)
  • 时间戳:32比特,记录了该包中数据的第一个字节的采样时刻。在一次会话开始时,时间戳初始化成一个初始值。即使在没有信号发送时,时间戳的数值也要随时间而不断地增加(时间在流逝嘛)。时间戳是去除抖动和实现同步不可缺少的。
  • 同步源标识符(SSRC):32比特,同步源就是指RTP包流的来源。在同一个RTP会话中不能有两个相同的SSRC值。该标识符是随机选取的 RFC1889推荐了MD5随机算法。
  • 贡献源列表(CSRC List):0~15项,每项32比特,用来标志对一个RTP混合器产生的新包有贡献的所有RTP包的源。由混合器将这些有贡献的SSRC标识符插入表中。SSRC标识符都被列出来,以便接收端能正确指出交谈双方的身份。

负载数据说明:一个包中可以有多个数据帧
检查帧数量的方式:1.大小固定,可以计算出来;2.帧大小不定,封装的帧中有一个标识位标记当前帧的大小。
包中数据数量的两个影响因素:1.MTU最大传输单元的大小;2.延迟因素(等待更多数据来填充一个更大的数据包)

RTCP协议

1. RTCP为RTP提供服务质量保证

2. RTCP的主要功能是四个功能 :

○ 基本功能是提供数据传输质量的反馈。这是 RTP 作为一种传输协议的主要作用,它与其他协议的流量和拥塞控制相关。反馈可能对自适应编码有直接作用, 并且 IP 组播的实验表明它对于从接收 端 得到反馈信息以诊断传输故障也有决定性作用。向所有成员发送接收反馈可以使 " 观察员 " 评估这些问题是局部的还是 全局的。利用类似多点广播的传输机制,可以使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值