您的位置:首页 > 理论基础 > 计算机网络

实时传输协议RTP与RTCP

2007-08-23 17:06 441 查看
rtp(real-timetransportprotocol)是用于internet上针对多媒体数据流的一种传输协议。rtp被定义为在一对一或一对多的传输情况下工作,其目的是提供时间信息和实现流同步。rtp通常使用udp来传送数据,但rtp也可以在tcp或atm等其他协议之上工作。当应用程序开始一个rtp会话时将使用两个端口:一个给rtp,一个给rtcp。rtp本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠rtcp提供这些服务。通常rtp算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。实时传输控制协议rtcp。rtcp(real-timetransportcontrolprotocol)和rtp一起提供流量控制和拥塞控制服务。在rtp会话期间,各参与者周期性地传送rtcp包。rtcp包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。rtp和rtcp配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。

6.2.1 rtp数据传输协议

 rtp提供端对端网络传输功能,适合通过组播和点播传送实时数据,如视频、音频和仿真数据。rtp没有涉及资源预订和质量保证等实时服务,rtcp扩充数据传输以允许监控数据传送,提供最小的控制和识别功能。rtp与rtcp设计成独立传输和网络层。

2.1.1 rtp固定头
 rtp 头格式如下:
 -----------------------------------------------------------------------------------------------
 |v=2|p|x| cc |m| pt | 系列号 |
 -----------------------------------------------------------------------------------------------
 | 时标 |
 -----------------------------------------------------------------------------------------------
 | 同步源标识(ssrc) |
 -----------------------------------------------------------------------------------------------
 | 作用标识 (csrc) |
 | .... |
 -----------------------------------------------------------------------------------------------

 开始12个八进制出现在每个rtp包中,而csrc标识列表仅出现在混合器插入时。
 2.1.2 复用 rtp 连接
 为使协议有效运行,复用点数目应减至最小。rtp中,复用由定义rtp连接的目的传输地址(网络地址与端口号)提供。例如,对音频和视频单独编码的远程会议,每个媒介被携带在单独rtp连接中,具有各自的目的传输地址。目标不在将音频和视频放在单一rtp连接中,而根据ssrc段载荷类型进行多路分解。使用同一ssrc ,而具有不同载荷类型的交叉包将带来几个问题:
 如一种载荷类型在连接期间切换,没有办法识别新值将替换那一个旧值。
ssrc定义成用于标识单个计时和系列号空间。如媒体时钟速率不同,而要求不同系列号空间以说明那种载荷类型有丢包,交叉复用载荷类型将需要不同计时空间。
 rtcp发送和接收报告可能仅描述每个ssrc的计时和系列号空间,而不携带载荷类型段。
 rtp混合器不能将不兼容媒体流合并成一个流。
 在一个rtp连接中携带多个媒介阻止几件事:使用不同网络路径或网络资源分配;接受媒介子集。
对每种媒介使用不同ssrc,但以相同rtp连接发送可避免前三个问题,但不能避免后两个问题。

2.1.3 对rtp头特定设置的修改
 可以认为,现用rtp数据包头对rtp支持的所有应用类共同需要的功能集是完整的。然而,为维持alf设计原则,头可通过改变或增加设置来裁剪,并仍允许设置无关监控和记录工具起作用。标记位与载荷类型段携带特定设置信息,但由于很多应用需要它们,否则要容纳它们,就要增加另外32位字,故允许分配在固定头中。包含这些段的八进制可通过设置重新定义以适应不同要求,如采用更多或更少标记位。如有标记位,既然设置无关监控器能观察包丢失模式和标记位间关系,我们就可以定位八进制中最重要的位。
 其它特殊载荷格式(视频编码)所要求的信息应该携带在包的载荷部分。可出现在头,总是在载荷部分开始处,或在数据模式的保留值中指出。如特殊应用类需要独立载荷格式的附加功能,应用运行的设置应该定义附加固定段跟随在现存固定头ssrc之后。这些应用将能迅速而直接访问附加段,同时,与监控器和记录器无关设置仍能通过仅解释开始12个八进制处理rtp包。如证实附加功能是所有设置共同需要的,新版本rtp应该对固定头作出明确改变
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: