知识点延伸 | RTP协议

/ 写在前面的话 /
鉴于市面上现有计算机考研教辅资料存在结构疏松、内容残缺等特点,因此开设“知识延伸系统”专栏,通过对知识点进行拓展及总结解题套路,全面还原知识背景,精准剖析来龙去脉,以便考生对感兴趣的部分进行了解,希望能对考研学子有所帮助。
RTP是英文“Real-time Transport Protocol”的缩写,中文含义是“实时传输协议”。它是IETF研制的实时传输协议。RTP标准实际上定义了一对协议,即RTP和实时传输控制协议(RTCP)。前者用于多媒体数据交换,后者用于定期发送跟某个数据流相关的控制信息。当在UDP上运行的时候,RTP数据流和相关的RTCP控制流使用相继的运输层端口。RTP数据使用一个偶数端口号,RTCP控制信息使用下一个较高的(奇数)端口号。
因为RTP被设计成支持广泛种类的应用,它提出了一个灵活的机制,使得在研制新的应用的时候不必反复修改RTP协议本身。对于每个种类的应用(例如音频),RTP定义一个预制文件和一个或多个格式。该预制文件提供一个范围的信息,以保证在该类应用中对RTP头的各个段有共同的理解。格式描述说明如何解释后随RTP头的数据。例如,RTP头可能后随一个字节序列,每个字节代表单个音频采样,该采样跟前一个采样有规定的时间间隔。数据格式也可能比较复杂,例如,使用MPEG编码的视频流就需要有大量的结构表示所有不同类型的信息。
RTP的设计包含一个称作应用级成帧(ALF)的体系结构原则。该原则是由Clark和Tennenhouse在1990年提出来的一个为正在涌现的多媒体应用设计协议的新方法。他们意识到,现存的协议,如TCP,不太可能很好地服务于这些新应用,而且也不可能有一个通用的协议满足所有这些新应用的需求。该原则的核心是相信应用程序本身最了解自己的需要。
例如,一个MPEG视频应用最懂得如何从丢失的帧中恢复,以及如何对I帧或B帧的丢失做出不同的反应。同样的应用也懂得如何将待传输的数据分段,例如,最好把来自不同帧的数据放在不同的数据报中发送,以便一个丢失的分组仅破坏单个帧,而不是两个帧。正因为这个原因,RTP把许多协议细节都放到预制文件和格式文档中,而且这些细节都是针对一个应用的。
RTP为实时数据(例如音频、视频等)提供端到端的服务,这些服务包括:负载类型标识、顺序编号、时间定位和传输监控等。然而,RTP本身并不提供对信息传输的任何时间和质量上的保证,而是依赖其下层网络提供这样的功能。同时,它既不保证传输的可靠性,也不假定下层网络能提供可靠的和保序的通信。
RTP分组中的顺序号使接收方按顺序重组信息成为可能。如果把RTP和RSVP协议配合使用,就可以为在Internet上传输多媒体数据提供一个切实可行的解决方案。典型的RTP运行在UDP之上,在层次结构上,我们也可以认为RTP和UDP共同完成运输层的功能,然而RTP亦可基于其它各种运输层和网络层,如果下层网络许可,RTP也可支持广播数据传输。
苏世学社旗下品牌,专注于计算机考研
计算机考研一手资讯,原创高质量干货
深度的学习分享丨咨询前辈丨个性化指导
