RTP学习(一)RTP/RTCP/RTSP协议初探

1) 下面的图形象的说明了RTP相关协议的作用

http://blog.ccidnet.com/attachment/Mon_0610/9_38648_bb1632447a57ec6.jpg
http://blog.ccidnet.com/attachment/Mon_0610/9_38648_07dbd6a8c05a802.jpg

一.产生的背景

随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。

这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行多媒体数据实时传输.



二.RTP/RTCP/RTSP协议与TCP/IP协议对比

那么,现在有个疑问是:为什么TCP/IP协议就不能满足多媒体通信的要求呢?

这是因为TCP有以下4个特点:

1.TCP重传机制

2.TCP拥塞控制机制

3.TCP报文头比UDP保文头要大

4.TCP的启动速度慢



RTP 由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工作组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据 这些信息发送和接受方可以协商编码类型,可以对接收到的数据包进行排序等工作;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究 表明,RTP/RTCP所提出的实时数据的传输机制是行之有效的。



对比记忆

IP:数据传输  RTP:多媒体数据实时传输

TCP:保证数据传输可靠  RTCP:保证多媒体数据传输的可靠



三.RTP/RTCP,RTSP协议说明

RTP:Realtime Transport Potocol 实时传输协议

RTCP:Realtime Transport Control Potocol 实时传输控制协议

RTSP:RealTime Streaming Potocol 实时流协议

RSVP:Resource Reserve Potocol 资源预留协议



1.RTP提供时间标志,序列号以及其他能够保证在实时数据传输时处理时间的方法

2.RTCP是RTP的控制部分,是用来保证服务质量和成员管理的

3.RTSP具体数据传输交给RTP,提供对流的远程控制

4.RSVP预留带宽,提高QoS(Quality of Sever)

RTP为实时应用提供端到端的运输,但不提供任何服务质量的保证。多媒体数据块经过压缩编码处理后,先送给RTP封装成为RTP分组,RTP分组再装入UDP用户数据报,然后再向下地交给IP层。RTP是一个协议框架,因为它只包含了实时应用的一些共同的功能。

RTP分组只包含RTP数据,而控制是由另一个配套协议RTCP提供。
RTP在端口号1025到65535之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个奇数UDP端口号。但端口号5004和5005则分别用作RTP和RTCP的默认端口号。
RTP位于传输层(通常是UDP)之上,应用程序之下。它提供同步播放媒体数据所需要的时间戳和序列号,并不具有差错和流量控制机制,这些需要应用程序实现。
RTCP通常和RTCP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期的发送RTCP数据报。RTCP数据报含有已发送数据的数量丢失的数据报的数量等统计资料,因此,服务器可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。
(照我目前的理解是:RTP和RTCP提供了这些信息给应用程序,但是RTP和RTCP并不定义根据这些信息的动作,
就像TCP的重发和滑动窗口等都是协议自己完成的。但是RTP并不自己做这些事情。)


RTSP(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自 行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而前面提到的允许同时多个串流需求控制

阅读更多
个人分类: 嵌入式linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭