RTP实时传输协议 详解设计

上传人:m**** 文档编号:174606303 上传时间:2022-12-15 格式:DOCX 页数:17 大小:32.66KB
收藏 版权申诉 举报 下载
RTP实时传输协议 详解设计_第1页
第1页 / 共17页
RTP实时传输协议 详解设计_第2页
第2页 / 共17页
RTP实时传输协议 详解设计_第3页
第3页 / 共17页
资源描述:

《RTP实时传输协议 详解设计》由会员分享,可在线阅读,更多相关《RTP实时传输协议 详解设计(17页珍藏版)》请在装配图网上搜索。

1、一 RTP协议概述11.1 RTP协议背景11.2 RTP应用环境2二 RTP协议原理及工作机制32.1 RTP协议层次32.2 RTP数据包格式42.3 RTP工作机制6三RTP协议关键技术指标73. 1时间戳73. 2时延83. 3抖动83. 4丢包率93. 5 会话和流两级分用103. 6多种流同步控制10四RTP协议应用方案114. 1 RTP协议应用方案之单播114. 2 RTP协议应用方案之广播114. 3 RTP协议应用方案之组播12五RTP协议安全方面考虑12六设计心得体会13七参考资料13RTP协议结构分析一 RTP协议概述11 RTP协议背景流是在近年在internet上出

2、现的新概念,其定义非 常广泛,主要是指通过网络多媒体数据的技术总称。流 媒体包含广义和协议两种内涵:广义的流媒体指的是视 音频和视频形成稳定和的传输流和回放流的一系列技 术、方法和协议的总称,即流媒体技术;狭义的流媒体 是相对于传统的下载-回放方式而言,指的是一种从 internet上获得音频和视频等多媒体数据的新方法,它 能够支持多媒体数据流的实时传输和实时播放。通常运 用流媒体技术,服务器能够向客户机发送稳定和连续的 多媒体数据流,客户机在接收数据的同时以一个稳定的 速率回放,而不用等数据全部下载完再进行回放。流式传输有顺序流式传输和实时流式传输两种方式。 实时流媒体传输实时传送,特别适合

3、现场事件,实时流 媒体传输必须匹配连接带宽,这意味着图像质量会因为 网络速度降低而变差,以减少对传输带宽的需求。“实 时”的概念是指在一个应用中数据的交付必须与数据保 持精确的时间关系,这需要相应的协议的支持,这样RTP 和RTCP流就相应的出来了。实时传输协议RTP:是针对internet上多媒体数据 流的一个传输协议,由于IEFF作为RFC1889发布,现在 最新的RFC3550RTP被定义为在一对一或者一对多的传 输情况下工作,其目的是提供时间信息和实现流同步。 RTP的典型建立在UDP上,但也可以在TCP等其他协议 上工作。RTP本身只保证实时数据传输,并不能为按顺 序传送数据报提供可

4、靠传送机制,本身提供流量控制或 拥塞控制,它依靠RTCP提供这些服务。实时传输控制协议RTCP:负责管理传输质量,在当 前应用进程之间交换控制信息,提供流量控制和拥塞控 制服务。在RTP会话期间,各参与者周期性地传送RTCP 包,包中含有已发送的数据包的数量、丢弃数据包的数 量统计资料,因此,服务器可以利用这些信息动态地改 变传输速率,甚至改变有效载荷类型。RTP和RTCP配和 使用,能有效的反馈和最小的开销使传输速率达到最佳, 股特别是和传送网上的实时数据。1.2 RTP应用环境RTP用于在单播或多播网络中传送实时数据。它们 典型的应用场合有如下几个。简单的多播音频会议。语音通信通过一个多播

5、地址 和一对端口来实现。一个用于音频数据(RTP),另一个 用于控制包(RTCP)。音频和视频会议。如果在一次会议中同时使用了音 频和视频会议,这两种媒体将分别在不同的RTP会话中 传送,每一个会话使用不同的传输地址(IP地址+端 口)。如果一个用户同时使用了两个会话,则每个会话 对应的RTCP包都使用规范化名字CNAME (Canonical Name)。与会者可以根据RTCP包中的CNAME来获取相关 联的音频和视频,然后根据RTCP包中的计时信息(Network time protoco 1)来实现音频和视频的同步。翻译器和混合器。翻译器和混合器都是RTP级的中 继系统。翻译器用在通过I

6、P多播不能直接到达的用户 区,例如发送者和接收者之间存在防火墙。当与会者能 接收的音频编码格式不一样,比如有一个与会者通过一 条低速链路接入到高速会议,这时就要使用混合器。在 进入音频数据格式需要变化的网络前,混合器将来自一 个源或多个源的音频包进行重构,并把重构后的多个音 频合并,采用另一种音频编码进行编码后,再转发这个 新的RTP包。从一个混合器出来的所有数据包要用混合 器作为它们的同步源(SSRC,见RTP的封装)来识别, 可以通过贡献源列表(CSRC表,见RTP的封装)可以确 认谈话者。二RTP协议原理及工作机制2.1 RTP协议层次Sircaminu ;卩卩lic;iiiunsS)4

7、JRTPRTCPMedia transport (YC U)PRSVNetwork (Pv4h Pv6)RTP (实时传输协议),顾名思义它是用来提供 实时传输的,因而可以看成是传输层的一个子层。图1 给出了流媒体应用中的一个典型的协议体系结构 从图中可以看出,RTP被划分在传输层,它建立在UDP 上。同UDP协议一样,为了实现其实时传输功能,RTP 也有固定的圭寸装形式。RTP用来为端到端的实时传输提 供时间信息和流同步,但并不保证服务质量。服务质量 由RTCP来提供。2.2 RTP数据包格式固定报头的RTP报文结构如图3-1所示:RTP报头中各字段的含义如下:02 3481631VPXCC

8、MPT載荷类别序号(SN)时戳(timestamp)同步源标识符(阴RC)提供源标识符(CSKC) (115项)用户数据图吳1 固宦报头的RTP报文版本(V): 2个比特,表示RTP的版本号。此协 议定义的版本是2.(值1被RTP草案版本使用,值0用 在最初vat语言工具使用的协议中)。填充(P): 1个比特,置“1”表示用户数据最后 加有填充位,用户数据中最后一个字节是填充位计数, 它表示一共加了多少个填充位。在两种情况下可能需要 填充,一是某些加密算法要求数据块大小固定;二是在 一个低层协议数据包中装载多个RTP分组。扩展(X): 1个比特,置“1”表示RTP报头后紧 随一个扩展报头。CS

9、RC计数(CC): 4个比特,表示在定长的RTP报 头后的CSRC标识符的数量。标记(M): 1个比特,其具体解释由应具体协议规 定。它允许在比特流中标记重要的事件。例如,对于视 频流,它表示一帧的结束,而对于音频,则表示一次谈 话的开始。载荷类别(PT): 7个比特,此字段定义了负载的 格式,有具体应用决定其解释。协议可以规定负载类型 码和负载格式之间个默认的匹配。其他的负载类型码可 以通过非RTP方法动态定义。RTP发射机在任意给定时 间发出一个单独的RTP负载类型;此字段不用来服用不 同的媒体流。序号(SN): 2个字节,每发送一个RTP数据包该 序号增加1。该序号在接收方可用来检测报损

10、和重建包 序列。序列号的初值是随机的,以使即便在源本身不加 密时,对加密算法的普通文本攻击也会很困难。时间戳(TS): 4个字节,事件标志反应了 RTP数 据包中第一个比特的抽样瞬间。抽样瞬间必须由随时简 单调和线性增长的时钟得到,已进行同步和抖动的计算。 时钟的分辨率必须满足要求的同步准确度,足以进行包 到达抖动测量。时钟频率与作为负载传输的数据格式独 立,在协议中或定义此格式的负载类型说明静态定义, 也可以再通过非RTP方法定义的负载格式中动态说明。 若RTP数据包周期性生成,可使用抽样时钟确定额定的 抽样瞬间,而不是读取系统时钟。例如,对于固定速率 语音,时间标志钟每个抽样周期加1.若语

11、音设备从输入 设备读取覆盖160个抽样周期的数据块,对于每个这样 的数据块,时间标志更加160,无论次快被发送还是被 静音压缩。时间标志的初始值是随机的,如同序列号。多个连续的 RTP数据包可能由同样的时间标志,若他们逻辑上同时 产生,如属于统一图像帧,若数据没有按照抽样的顺序 发送,连续的RTP数据包可以包含不单调上网时间标志, 如MPEG交织图像帧。同步源标识符(SSRC): 4个字节,用来标识一个 同步源。此标识符是随机选择的,但要保证同一RTP会 话中的任意两个SSRC各不相同,RTP必须检测并解决 冲突。若有一个源改变本身的源输入地址,必须选择新 的SSRC识别符,以避免被当做一个环

12、路源。提供源标识符(CSRC):它可有015项标识符,每一 项长度为32比特,其项数由CC字段来确定。如果提供 源多于15个,则只有15个被标识。为了能满足各种应用的需要,RTP报头可进一步扩 充,其时X比特将置“ 1”,扩充的RTP报头部分则紧 随在SCRC清单之内。如果扩展位被置为1,意味着RTP固定头后紧跟着 一个头扩展,其格式如图3-2所示。前16位的内容由 轮廓文件决定,主要用来标识不同的头扩展类型。这种 扩展方式主要用来传递独立于具体格式的载荷 (payload-format-independent) 的应用信息。01631已由轮呦立义长度 tlength)头扩展閨3-2 RTP头

13、护展23 RTP工作机制当应用程序建立一个RTP会话时,应用程序将确定 一对目的传输地址。目的传输地址由一个网络地址和 一对端口组成,有两个端口: 一个给RTP包,一个给 RTCP包,使得RTP/RTCP数据能够正确发送。RTP数 据发向偶数的UDP端口,而对应的控制信号RTCP数 据发向相邻的奇数UDP端口(偶数的UDP端口 + 1), 这样就构成一个UDP端口对。RTP的发送过程如下, 接收过程则相反。1) RTP协议从上层接收流媒体信息码流(如 H.263),封装成RTP数据包;RTCP从上层接收控制 信息,封装成RTCP控制包。2) RTP将RTP数据包发往UDP端口对中偶数端口; R

14、TCP将RTCP控制包发往UDP端口对中的接收端口。三RTP协议关键技术指标31时间戳时间戳字段是RTP首部中说明数据包时间的同步信 息,是数据能以正确的时间顺序恢复的关键。时间戳的 值给出了分组中数据的第一个字节的采样时间 (Sampling Ins tan t),要求发送方时间戳的时钟是连续、 单调增长的,即使在没有数据输入或发送数据时也是如 此。在静默时,发送方不必发送数据,保持时间戳的增 长,在接收端,由于接收到的数据分组的序号没有丢失, 就知道没有发生数据丢失,而且只要比较前后分组的时 间戳的差异,就可以确定输出的时间间隔。RTP规定一次会话的初始时间戳必须随机选择,但 协议没有规定

15、时间戳的单位,也没有规定该值的精确解 释,而是由负载类型来确定时钟的颗粒,这样各种应用 类型可以根据需要选择合适的输出计时精度。在RTP传输音频数据时,一般选定逻辑时间戳速率 与采样速率相同,但是在传输视频数据时,必须使时间 戳速率大于每帧的一个滴答。如果数据是在同一时刻采 样的,协议标准还允许多个分组具有相同的时间戳值, 如多个分组属于同一画像。RTCP中的SR( Sender Report发送端报告)控制分 组包含NTP (网络时间,是以1900-1-1零时为起点的系 统绝对时间)时间戳和RTP时间戳(封装数据时候打上 的时间戳与媒体帧上打上的时间戳不同)可用于同步音 视频媒体流。其实现机

16、制如下:RTP时间戳是依据邻近的RTP数据包中的时间戳结合NTP时间差得到的,用公式表达为:RTP_tsi = tsi + NTPi-NTPi其中:RTP_tsi表示RTCP中的RTP时间戳; tsi表示邻近的RTP包中的时间戳;NTPi表示RTCP的 网络时间戳;NTPi表示邻近的RTP包对应的网络时间 戳;下标表示第i个源。RTP_tsj=tsj+NTPjNTPj表示 第j个源的RTP时间戳;因此,i和源j之间的相对时差 可以表示为:(RTP_tsi tsi)-( RTP_tsj - tsj) = (NTPi-NTPi) -( NTPjNTPj);由于NTP同步,差值可以反映出两个源的相对

17、时差。因 为要同步不同来源的媒体流,必须使得同步他们的绝对 时间基准,而NTP时间戳正是这样的绝对时间基准4。 而对于同一来源的媒体流,应用RTP的时间戳来保证其 同步。32时延影响时延的因素有多个方面:编解码、网络、防抖动 缓冲、报文队列等都影响时延,其中有些是固定时延, 如编解码网络速率等;有些是变化的,如防抖动缓冲和 队列调度等,固定的时延可以通过改变编解码方式和提 高网络速率来改变,而变化的时延通常采用提高转发效 率来提高。假设SSRC_r为发出一个接收报告块的接收机.源 SSRC_n可以通过记录收到接收报告块的时刻A来计算到 SSRC_r的环路传输时延。可以利用最新的SR时间标志 (

18、LSR)域计算整个环路时间A-LSR,然后减去此DLSR域得 到环路传播时延。3. 3抖动在视频电话中,语音、视频数据都是使用UDP协议传 送的,但这种协议传输的数据包在网络层不能保证其发 送顺序,需要应用层进行排序。在网络的传输中都会有 延时,且随着网络负载的变化,延时的长短也不相同, 对于语音数据,如果接收方收到后立即播放,很容易造 成语音的抖动。RTP数据包到达时刻统计方差的估计值,以时间标志 为单位测量,用无符号整数表达到达时刻抖动j定义为 一对包中接收机相对发射机的时间跨度差值的平均偏差 (平滑后的绝对值)。如以下等式所示,该值等于两个包相 对传输时间的差值,相对传输时间是指包的RT

19、P时间标 志和到达时刻接收机时钟,以同一单位的差值。若Si是 包i的RTP时间标志,Ri是包i以RTP时间标志单位的 到达时刻值,对于两个包i和j,D可以表达为 D(i,j) = (Rj - Ri) - (Sj - Si) = (Rj - Sj) - (Ri - Si)到达时刻抖动可以在收到从源SSRC_n来的每个数据 包i后连续计算,利用该包和前一包i-1的偏差D (按到 达顺序,而非序号顺序),根据公式J(i) = J(i-1) + (|D(i-1,i)| - J(i-1)/16。计算无论何时发送接收报 告,都用当前的J值。为了更好的解决抖动的问题,最好能实现抖动缓存 (原理比较简单,在此

20、不做详细描述),一是保证语通道 读取数据包的顺序正确,二是控制接收方按照采集的时 间顺序播放语音,减少语音的抖动;另外提供QoS和资 源预留使语音数据获得优先发送和获得固定的带宽也是 解决抖动问题的主要手段。34丢包率丢包率是通过计算接收包数量和发送包数量的比率得 到的,丢包率获得的整个流程是:发送方每间隔一定时 间读取每个发送通道的发包数量和数据长度,组成一个 此通道的RTCP报文发送给接收方,同时将发送数据包 计数清零;接收方收到RTCP包后,读取接收通道接收 到的包数量,并计算出丢包率,通过一个RTCP接收汇 报包发送给发送方,同时对接收数据包计数清零。自从前一 SR包或RR包发射以来,

21、从SSRC_n传来的RTP 数据包的损失比例,以固定点小数的形式表示,定义为损 失包数被期望接收的包数除,在下一段中定义。若由于复 制而导致包损为负值,损失比例值设为零。注意在收到上 一个包后,接收机无法告之以后的包是否丢失,若在上一 个接收报告间隔内从某个源发出的所有数据包都丢失, 那么将不为此源发送接收报告块。35会话和流两级分用一个RTP会话(Session)包括传给某个指定目的地对 (Destination Pair)的所有通信量,发送方可能包括多个。 而从同一个同步源发出的RTP分组序列称为流(Stream), 一个RTP会话可能包含多个RTP流。一个RTP分组在 服务器端发送出去的

22、时候总是要指定属于哪个会话和 流,在接收时也需要进行两级分用,即会话分用和流分 用。只有当RTP使用同步源标识(SSRC)和分组类型 (PTYPE )把同一个流中的分组组合起来,才能够使用序 列号(Sequence Number)和时间戳(Timestamp)对分组进 行排序和正确回放。3. 6多种流同步控制RTCP的一个关键作用就是能让接收方同步多个RTP 流,例如:当音频与视频一起传输的时候,由于编码的 不同,RTP使用两个流分别进行传输,这样两个流的时 间戳以不同的速率运行,接收方必须同步两个流,以保 证声音与影像的一致。为能进行流同步,RTCP要求发送 方给每个传送一个唯一的标识数据源

23、的规范名(Canonical Name),尽管由一个数据源发出的不同的流 具有不同的同步源标识(SSRC),但具有相同的规范名, 这样接收方就知道哪些流是有关联的。而发送方报告报 文所包含的信息可被接收方用于协调两个流中的时间戳 值。发送方报告中含有一个以网络时间协议 NTP(Ne twork Time Pro toco l)格式表示的绝对时间值, 接着RTCP报告中给出一个RTP时间戳值,产生该值的时 钟就是产生RTP分组中的TimeStamp字段的那个时钟。 由于发送方发出的所有流和发送方报告都使用同一个绝 对时钟,接收方就可以比较来自同一数据源的两个流的 绝对时间,从而确定如何将一个流中

24、的时间戳值映射为 另一个流中的时间戳值。RTP协议应用方案41 RTP协议应用方案之单播在客户端与媒体服务器之间建立一个单独的数据通 道,从一台服务器送出的每个数据包只能传送给一个客 户端,这种传送方式称为单播。优点:便于控制和管理;缺点:每个用户必须分别对媒体服务器发送单独的查 询,而媒体服务器必须向每个用户发送所申请的数据包 拷贝。这种巨大冗余造成服务器负担沉重,响应需要很 长时间。4. 2 RTP协议应用方案之广播广播指的是用户被动地接收流。在广播过程中,数据 包的单独一个拷贝将发送给网络上的所有用户,客户端 接收流,但不能控制流;广播方式中资料包的单独一个 拷贝将发送给网络上的所有用户

25、,而不管用户是否需 要,会非常浪费网络带宽。优点:简单缺点:浪费网络带宽43 RTP协议应用方案之组播组播技术构建的网络,允许路由器一次将数据包复制 到多个通道上。采用组播方式,媒体服务器只需要发送 一个信息包,所有发出请求的客户端即可同时收到连续 数据流而无延时。这就大大减少了网络上传输的信息包 的总量,组播吸收了单播和广播两种发送方式的长处, 克服了上述两种发送方式的弱点,将资料包的单独一个 拷贝发送给需要的那些客户。组播不会复制资料包的多 个拷贝传输到网络上,也不会将资料包发送给不需要它 的那些客户,保证了网络上多媒体应用占用网络的最小 带宽。优点:减少网络上传输的信息包的总量。网络利用

26、效 率大大提高,成本大为下降;缺点:当不同的用户同时点播同一个节目时,由于点 播总有先后顺序,后点播的用户并不是从开始播放,而 是依照网络中同时点播此节目的其它用户的播放进度, 这就造成当前用户极有可能从节目的中间开始看起,很 难做到个性化。五RTP协议安全方面考虑RTP安全方面的考虑:攻击者可能通过伪造源地址,目 的地址,修改报头等方式来攻击RTP,如果RTP是通过组 播方式发送,那么发送者无法控制接收者的行为,即无法 对接收者进行管理以达到安全上的要求,目前也有一些策略如加密方法来解决安全方面的问题,但还没有完全 解决该问题,这里不再详细描述;六设计心得体会通过本学期的学习,我明白许多在计

27、算机体系结构中 各个层次的应用协议。虽然我们平时经常使用电脑,但 是对于其后信息数据是怎样的传输,我们却一无所知。 我们所做的就是通过搜索引擎来获得自己想要的东西或 者看视频或者聊天,这些简单的手动工作只是我们停留 在计算机知识的表面上,而没有做过深入的研究。这次的设计,恰恰是弥补了这种表面缺陷。仿佛使我 们脑海里出现了一张信息在网络中传输图。有助于我们 理解更深层次计算机知识。七参考资料1 RFC 文档:RFC3550 对应 RTP/RTCP2 用TCP/IP进行网际互联 第一卷Douglas.Comer3 计算机网络第五版谢希仁4 TCP/IP协议深入分析徐宇杰编著清华大学出版社2009.

28、025 用TCP/IP进行网际互连 第二卷,(美)Douglas E.Comer著,电 子工业出版社2007、眩说1、课程设计进行期间,学生应按教学计划,将每天的学 习情况(包括学习内容、遇到问题及解决办法、心得 体会等)如实进行记录。2、结束时,根据课程设计内容和学习记录书写报告。3、指导教师应综合考虑学生的学习态度、报告内容和实 际操作情况等,给出评语和成绩。课程设计报告撰写格式1、课程设计说明书用纸一律采用16开幅面,有条 件最好打印。打印正文用宋体小四号字;版面页边距: 上2.5cm,下2.5cm,左3cm,右2cm;页码用小五号字 底端居中;左边装订。2、课程设计报告一般由以下几部分

29、组成:A.任务 书;B.目录;C.正文;D.参考文献;E.附录。3、报告正文撰写的题序层次格式:第一种第二种第一章(居中、小二号黑体字)1.(居中、小二号黑体字、)第一节(顶格、小三号黑体字)1. 1 (顶格、小三号黑体字)一(顶格、四号黑体字)1. 1. 1 (顶格、四号黑体字)(一)(顶格、小四号黑体字)课程设计成绩评定表评定项 目内容满 分评分总 分学习态 度学习认真,态度端正,遵守纪律。10答疑和 设计情 况认真查阅资料,勤学好问,提出的问 题有一定的深度,分析解决问题的能 力较强。40说明书 质量设计方案正确、表达清楚;设计思路、 实验(论证)方法科学合理;达到课 程设计任务书规定的要求;图、表、 文字表达准确规范,上交及时。40回答问 题情况回答问题准确,基本概念清楚,有理 有据,有一定深度。10总成绩采用五级分制:优、良、中、及格、 不及格指导教师评语:签名:年月日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!