流媒体传输协议-.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
流媒体传输协议 在基于IP的网络中,用于多媒体数据实时传输的协议通常有四种,即资源预留协议(Resource Reservation Protocol , RSVP、实时流协议(Real-TimeStreaming Protocol, RTSP和实时传输协议(Real-Time Transport Protocol, RTP及实时控制协议(Real-Time Control Protocol, RTCP 。 RSVP被主机用来为特定应用流向网络请求一定的服务质量(QoS[5],它也被路由器用来在节点间传送这种服务质量请求,从而建立能提供特定服务质量的状态,并维护这种状态。资源预留协议最终将在数据流的路径上预留相应的资源(主要包括内存资源和CPU资源。 实时流协议RTSP是由Real Networks和Netscape共同提出的,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。与HTTP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器响应请求;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。 RTP被定义为在一对一或一对多传输的情况下工作,其目的是提供时间信息和实现流同步。RTP通常使用UDP来传送数据,它本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。RTCP和RTP一起提供流量控制和拥塞控制服务,它们配合使用,能够以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。 流媒体协议栈如下图所示: 图1流媒体协议栈‘” Fig. 1 Streaming video protocol stack 在发送方的数据面,压缩且经过ASF编码的视频数据被读出并在RTP/RTCP/RTSP层上打包,提供定时和同步信息以及包的序列号。然后把这些打包的RTP数据流发送到UDP/TCP 层和IP层,得到的IP包在网络上传输。在接收方则按照相反的方向处理。在控制面,RTCP 包和RTSP包在UDP/TCP层上复用,并且被送到IP层,以便通过网络传输[4] 1. 1、RTP协议 1.1.1、RTP固定头域,RTP头格式如下: 图2 RTP头格式[5] Fig. 2 RTP head format 头12个字节在每个RTP包中都有,而CSRC标识列表仅在有混合器插入的时 候才有。各段具体意义如下: 1.版本(V: 2bit RTP版本信息。目前版本是2。 (RTP第一版草案是版本1,最初应用在“vat音频工具中的是第0版 2.填充位(P: l bit 如果填充位置1,末尾有一个或者多个附加的非有效载荷的填充字节。填充的最后一个字节是该忽略的填充数目,包括本身所占一个字节。填充在按照固定块大小加密的加密算法中或者在低层的协议数据单元中装载几个RTP包时可能需要。 3.扩展位(X: lbit 如果扩展位置1,固定头后必须跟了一个头扩展。 4. CSRC计数(CO: Obit CSRC计数包含了紧跟在固定头后的CSRC标识符的个数。 5.标记(M : 1 bit 在序言中定义了该标记的具体解释,目的是允许重要事件在包流中标记l止来。序言可以定义附加的标记位,或者通过改变有效载荷类型域中的数据位来指示没有标记位。 6.有效载荷类型(PT : 7bit 定义RTP有效载荷的格式,通过应用程序定义具体的说明。序言可以指定和有效载荷格式相对应的有效载荷码的默认静态影像码。附加的有效载荷码可以通过非RTP方式动态定义。在RFC 3551中定义了一系列音频和视频的默认映射初集。会话中,RTP元可以修改有效载荷的类型,但是该域不能用于复用单独的媒体流。 对于有效载荷类型无法识别的数据包,接收方一律忽略。 7.序列号(Sequence Number : 16bit 每发送一个RTP数据包序列号就增加1,这样接收方可以检测到数据包的丢失重新保存包序列。序列号的初始值是随机的,这样可以加大被人窃取攻击的难度。 8.时间戳(Timestamp : 32bit 时间戳反映了RTP数据包的第一个字节的采样信息。采样信息由单调、线性的时钟导出,允许同步与抖动时间计算。时钟必须有足够分辨率,满足所需同步和测定包到达抖动精度。时钟频率依靠有效载荷中装载的数据的格式,在序言中或者定义格式的有效载荷格式说明中静态定义,或者也可以通过非RTP方式动态定义有效载荷的格式。如果RTP包是周期生成的,名义上的采样信息就通过采样时钟决定,而不是读一次系统时钟。例如,对于固定速率的音频每个采样周期时间戳就增加一。如果音频应用程序读一次覆盖了输入设备的160个采样周期,

文档评论(0)

559997799 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档