RTP/RTCP/RTSP协议初探 [转载]
<div id="appShareTitle" style="word-wrap: break-word; height: 24px; line-height: 23px; font-weight: bold; color: rgb(51, 51, 51); font-family: arial; background-color: rgb(244, 248, 251); ">RTP/RTCP/RTSP协议初探 [转载]</div><div id="appShareOpt" style="word-wrap: break-word; text-align: right; margin-bottom: 10px; margin-right: 5px; line-height: 23px; font-family: arial; background-color: rgb(244, 248, 251); "></div><div id="app-share-content" style="word-wrap: break-word; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(237, 241, 244); border-right-color: rgb(237, 241, 244); border-bottom-color: rgb(237, 241, 244); border-left-color: rgb(237, 241, 244); border-image: initial; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(244, 248, 251); padding-top: 20px; padding-right: 20px; padding-bottom: 20px; padding-left: 20px; color: rgb(154, 154, 154); font-size: 12px; font-family: arial; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; "><span class="postimg"><img alt="http://blog.ccidnet.com/attachment/Mon_0610/9_38648_bb1632447a57ec6.jpg" src="http://hiphotos.baidu.com/bluetoothman/pic/item/94fa272a8ce021d2023bf692.jpg" width="580" height="360" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; width: 580px; height: 360.678391959799px; "></span><br><span class="postimg"><img alt="http://blog.ccidnet.com/attachment/Mon_0610/9_38648_07dbd6a8c05a802.jpg" src="http://hiphotos.baidu.com/bluetoothman/pic/item/99e3c79ba5ef4efcc8eaf492.jpg" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; border-image: initial; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">一.产生的背景</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">随着互连网的发展,人们已经不满足于传统的HTTP,FTP和电子邮件等文本信息和服务,而对内容丰富多彩的多媒体信息,服务以及多媒体通信方式提出了需求,包括声音,图象,图形,视频信息等等,而这些不但传输的数据量大而且对交互性和实时性要求很高。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">这时,基于HTTP的TCP协议无法达到要求,故产生RTP协议来进行多媒体数据实时传输.</p><br><br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">二.RTP/RTCP/RTSP协议与TCP/IP协议对比</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">那么,现在有个疑问是:为什么TCP/IP协议就不能满足多媒体通信的要求呢?</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">这是因为TCP有以下4个特点:</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">1.TCP重传机制</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">2.TCP拥塞控制机制</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">3.TCP报文头比UDP保文头要大</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">4.TCP的启动速度慢</p><br><br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTP 由IETF(Internet Engineering Task Force,互联网工程任务组)的音频/视频传输工作组制定,主要实现实时数据的传输,它在包头中提供编码类型,包中数据的采样时刻和数据包的序号,根据 这些信息发送和接受方可以协商编码类型,可以对接收到的数据包进行排序等工作;RTCP主要负责传输质量的监控以及传送发送者的一些标志信息。试验和研究 表明,RTP/RTCP所提出的实时数据的传输机制是行之有效的。</p><br><br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">对比记忆</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">IP:数据传输 RTP:多媒体数据实时传输</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">TCP:保证数据传输可靠 RTCP:保证多媒体数据传输的可靠</p><br><br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">三.RTP/RTCP,RTSP协议说明</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTP:Realtime Transport Potocol 实时传输协议</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTCP:Realtime Transport Control Potocol 实时传输控制协议</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTSP:RealTime Streaming Potocol 实时流协议</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RSVP:Resource Reserve Potocol 资源预留协议</p><br><br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">1.RTP提供时间标志,序列号以及其他能够保证在实时数据传输时处理时间的方法</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">2.RTCP是RTP的控制部分,是用来保证服务质量和成员管理的</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">3.RTSP具体数据传输交给RTP,提供对流的远程控制</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">4.RSVP预留带宽,提高QoS(Quality of Sever)</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTP为实时应用提供端到端的运输,但不提供任何服务质量的保证。多媒体数据块经过压缩编码处理后,先送给RTP封装成为RTP分组,RTP分组再装入UDP用户数据报,然后再向下地交给IP层。RTP是一个协议框架,因为它只包含了实时应用的一些共同的功能。</p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTP分组只包含RTP数据,而控制是由另一个配套协议RTCP提供。<br>RTP在端口号1025到65535之间选择一个未使用的偶数UDP端口号,而在同一次会话中的RTCP则使用下一个奇数UDP端口号。但端口号5004和5005则分别用作RTP和RTCP的默认端口号。<br>RTP位于传输层(通常是UDP)之上,应用程序之下。它提供同步播放媒体数据所需要的时间戳和序列号,并不具有差错和流量控制机制,这些需要应用程序实现。<br>RTCP通常和RTCP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期的发送RTCP数据报。RTCP数据报含有已发送数据的数量丢失的数据报的数量等统计资料,因此,服务器可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。<br>(照我目前的理解是:RTP和RTCP提供了这些信息给应用程序,但是RTP和RTCP并不定义根据这些信息的动作,<br>就像TCP的重发和滑动窗口等都是协议自己完成的。但是RTP并不自己做这些事情。)</p><br><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(109, 109, 109); line-height: 26px; ">RTSP(Real Time Streaming Protocol)是用来控制声音或影像的多媒体串流协议,并允许同时多个串流需求控制,传输时所用的网络通讯协定并不在其定义的范围内,服务器端可以自 行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。而前面提到的允许同时多个串流需求控制</p></div> 请教楼主哪个协议栈里有RTP/RTCP/RTSP协议,如果用STM32做的话哪种协议栈好移植(是免费的吗?) 看了ethernet的起源都知道,他起初只是为了连接共享用的,他是就是百能,千能的以太网,
但不是万能的,不是面向所有应用都那么方便。 写的很好
页:
[1]