作者:马丰敏
互联网技术的本质就是通信协议,各种通信协议将各种终端连接了起来。流媒体协议是建立在互联网TCP/IP协议上的多媒体数据流传输分发协议。它主要为主播端和观众端提供数据传输和分发的解决方案。
现在互联网上的流数据占据带宽的大部分,音频、短视频、长视频占据了互联网应用的主流。数据流通过传输技术被运来运去,那么流数据遵循哪些传输规则和协议呢,各个协议有什么优缺点呢?
01RFC文档概要
在讨论流数据传输技术之前,我们先了解一下RFC,这对理解流数据协议至关重要。RFC英文全称为RequestForComments,中文字面意思是“请求评论”,它是一系列编号文件。
RFC文档最初由SteveCrocker(史迪夫·科洛克)在年发明,发明的初衷是记录ARPANET开发中的非官方注解信息。
现在RFC文档由IETF(InternetEngineeringTaskForce,Internet工程特别行动组)产生,并由专家组、RFC编辑在编辑后发布。现在RFC文档已经成为互联网规范标准和事件的官方记录库。RFC文档是最全面的关于互联网协议标准的记录库,目前已经超过了个文档。
绝大部分互联网技术协议都包含在RFC文档中,包括TCP、IP、FTP、RTP等。
传输协议栈
02RTP数据流协议
流数据具有数据量大、实时传输等特点,它对网络传输有高带宽、低时延、同步和高可靠性的要求。为了保证好的QoS质量,传输模式、协议栈和应用体系控制等问题就显得非常重要。下面我们先来讨论RTP协议。
RTP英文全称Real-timeTransportProtocol实时流传输协议。在RFC中定义为RFC/RFC。RTP由IETF(InternetEngineeringTaskForce,互联网工程任务组)工作组制定。
该协议主要实现实时数据的传输,它在数据包头中提供编码类型,包中数据的采样时刻、数据包的序号,依据这些信息传输双方可以协商编码类型,可以对数据包进行排序。
RTP本身并没有服务质量保证机制,它依赖于低层服务去实现这一过程。
03RTCP数据流协议
RTCP英文全称Real-timeTransportControlProtocol,实时传输控制协议,该协议是RTP数据流协议的一个姐妹协议。RTCP为RTP数据流提供信道外控制。RTCP并不传输数据,它和RTP协作将多媒体数据打包和发送。RTCP的主要功能是保证服务质量,为RTP提供服务质量反馈。
04SRTPSRTCP数据流协议
SRTP英文全称为SecureReal-timeTransportProtocol安全实时传输协议,该协议是在实时传输协议RTP基础上定义的一个协议,旨在为RTP数据提供加密、消息认证、完整性保证和重放保护。可以参考文档RFC。
RTCP同样也有一个伴生协议,它被称为安全实时传输控制协议SecureRTCP或SRTCP。在使用实时传输协议或实时传输控制协议时,是应用安全传输协议还是明文传输在数据传输过程中是可以选择的。
05RTSP数据流协议
RTSP英文全称RealTimeStreamingProtocol实时串流协议,该协议由RealNetworks和Netscape共同提出的,它是用来控制流数据串的协议。该协议定义了一对多应用程序如何有效地通过IP网络传送流数据。RTSP提供了一个可扩展框架,使实时数据,如音视频的受控、点播成为可能。
它允许同时对多个串流控制,服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP1.1类似,能容忍网络延迟。详情可以参考文档RFC。
RTP、RTSP、RSVP协议层图示
06RTSP和RTP的区别与联系
RTSP与RTP最大的区别在于,RTSP是RTP的上层协议,是一种类似与