`
weiyuhu
  • 浏览: 237801 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

RTP报文头学习

阅读更多
RTP报文格式

RTP报文由两部分组成:报头和有效载荷。RTP报头格式如图6.7所示,其中:

l  V:RTP协议的版本号,占2位,当前协议版本号为2。

l   P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。

l   X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。

l   CC:CSRC计数器,占4位,指示CSRC 标识符的个数。

l   M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。

l   同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。

l   特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。

l   PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM音频、JPEM图像等。

l   序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。

l   时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。

V
P
X
CC
M
PT
序列号

时戳

同步信源(SSRC)标识符

特约信源(CSRC)标识符

···



图6.7 RTP报头格式

    这里的同步信源是指产生媒体流的信源,它通过RTP报头中的一个32位数字SSRC标识符来标识,而不依赖于网络地址,接收者将根据SSRC标识符来区分不同的信源,进行RTP报文的分组。特约信源是指当混合器接收到一个或多个同步信源的RTP报文后,经过混合处理产生一个新的组合RTP报文,并把混合器作为组合RTP报文的SSRC,而将原来所有的SSRC都作为CSRC传送给接收者,使接收者知道组成组合报文的各个SSRC。

在发送端,上层应用程序以分组形式将编码后的媒体数据传给RTP通信模块,作为RTP报文的有效载荷,RTP通信模块将根据上层应用提供的参数在有效载荷前添加RTP报头,形成RTP报文,通过Socket接口选择UDP协议发送出去。

在接收端,RTP通信模块通过Socket接口接收到RTP报文后,将RTP报头分离出来作相应处理,再将RTP报文的有效载荷作为数据分组传递给上层应用。

考虑到在Internet这种复杂的环境中举行视频会议,RTP定义了两种中间系统:混合器(Mixer)和转换器(Translator)。

在Internet上举行视频会议时,可能有少数参加者通过低速链路与使用高速网络的多数参加者相连接。为了不强制所有会议参加者都使用低带宽和低质量的数据编码,RTP允许在低带宽区域附近使用混合器作为RTP级中继器。混合器从一个或多个信源接收RTP报文,对到达的数据报文进行重新同步和重新组合,这些重组的数据流被混合成一个数据流,将数据编码转化为在低带宽上可用的类型,并通过低速链路向低带宽区域转发。为了对多个输入信源进行统一的同步,混合器在多个媒体流之间进行定时调整,产生它自己的定时同步,因此所有从混合器输出的报文都把混合器作为同步信源。为了保证接收者能够正确识别混合器处理前的原始报文发送者,混合器在RTP报头中设置了CSRC标识符队列,以标识那些产生混和报文的原始同步信源。

在Internet环境中,一些会议的参加者可能被隔离在应用级防火墙的外面,这些参加者被禁止直接使用IP组播地址进行访问,虽然他们可能是通过高速链路连接的。在这些情况下,RTP允许使用转换器作为RTP级中继器。在防火墙两端分别安装一个转换器,防火墙之外的转换器过滤所有接收到的组播报文,并通过一条安全的连接传送给防火墙之内的转换器,内部转换器将这些组播报文再转发送给内部网络中的组播组成员。

基于RTP的带宽控制方法

基于RTP的带宽控制算法正是利用这种控制策略来实施强制性同步控制的,其基本思想是在RTP协议机制支持下,发送端通过接收端周期反馈的接收报告来评价当前网络传输的QoS,并以此对数据发送速率进行适当调整。端点之间利用RTP报文和RTCP报文来实现带宽控制:

① ?RTP报文的序号字段可用于排序RTP报文分组,以消除重复分组,保持视频或音频流内同步和连续地播放。

② ?RTP报文的时戳字段可作为流间同步标识,以保持视频和音频流间同步和连续地播放。

  ③ 发送者可利用接收者反馈的RTCP报文来制实施端到端的强制性同步控制,以改善当前网络传输的QoS。

1. 接收端的控制策略

接收端通过RTP协议实施如下的控制策略:

  ① ?SSRC字段用于标识不同的信源,以支持多对一或多对多的多媒体通信。

  ② 时戳字段作为流间同步标识,用于媒体流间的流间控制,以保持视频和音频流间同步和连续地播放,并作为时间量用于计算报文分组的传输延时、延时抖动以及数据更新周期等,滤除严重延时的RTP报文分组。

    ③ 序号字段作为流内同步标识,用于排序RTP报文分组,消除重复报文分组,保持视频或音频流内同步和连续地播放。

    ④ 将接收端检测到的当前网络QoS状况通过RTCP的接收报告周期地反馈给发送端。

   2. 发送端的控制策略

发送端将采用如下的控制算法来调整传送带宽。

  ① 设bs为发送端当前的带宽,bmin和bmax分别为应用所设置的最小带宽和最大带宽,且bsÎ[bmin,bmax]。

  ② 在每个发送带宽级上保持一个时间片,超时后将根据网络QoS状况提高或降低一个带宽级,以避免带宽频繁波动。这里使用报文丢失率作为QoS指示器,并设置一个阈值。如果QoS指示器超阈,说明网络发生阻塞,通过改变发送速率来调整传送带宽,疏导网络交通。

    ③ 初始时按最大带宽发送报文分组,即bs¬bmax,以提高网络通道的利用率。

  ④ 如果在规定的时间片内QoS指示器超阈,说明网络发生阻塞,则在超时后需要降低一个带宽级,即bs¬ max { bs-μ,bmin },其中μ为比例因子。

  ⑤ 如果在规定的时间片内QoS指示器未超阈,说明网络交通状况良好,则在超时后应当提高一个带宽级,即bs¬ min { bs+μ,bmax }。

⑥ 在点到多点通信场合中,发送者将面对多个不同网段上的接收者,而每个网段的交通状况又不尽相同。因此,在改变带宽时可采用多数表决法,即当报文丢失率超阈的接收者超过一定比例时再改变带宽。
  • 大小: 35.7 KB
分享到:
评论

相关推荐

    G711打包RTP发送VLC播放

    在IT行业中,音频编码技术是通信系统中的重要组成部分,尤其是对于实时通信如语音通话和视频会议。G711标准是一种广泛使用的音频压缩算法...这对于构建自己的VoIP解决方案或者学习网络音频传输原理有着重要的实践意义。

    RTP协议学习大总结从原理到代码.rar_7ME_RTP协议学习大总结从原理到代码

    RTP报文由固定头部和可选的扩展头部以及负载数据组成。固定头部包含序列号、时间戳、同步源标识符(SSRC)等字段,用于数据排序、检测丢包和同步。 3. **序列号** 序列号用于识别每个RTP数据包,以便接收端能够按...

    rtp.zip_rtp

    RTP报文由固定头部和可选的扩展部分组成。头部包含序列号(用于检测丢失和排序)、时间戳(用于同步接收端的播放)、同步源标识符(SSRC)和贡献源标识符(CSRC)等关键字段。 3. RTP源代码分析: - "rtp_analysis....

    RTP流传输音视频

    RTP报文由一个固定头部和可选的扩展头部以及数据负载组成。头部包含序列号、时间戳、同步源标识符(SSRC)等字段,用于接收端对数据包进行排序、同步和丢包检测。 3. **RTP和UDP关系**: RTP通常承载在UDP之上,...

    一个rtp 协议打报接报的DEMO

    1. **报文结构**:RTP报文由固定头部和可选的扩展头部以及负载数据组成。头部包含序列号、时间戳、同步源标识符(SSRC)等关键字段,用于确保数据的有序接收和同步。 2. **序列号**:序列号字段用于标识每个RTP...

    rtp_rtcp资料

    RTP头包含了一个16位的序列号,用于标识每个数据包,以及32位的时间戳,记录了数据包被发送时的时间,便于接收端同步和重新排序。 RTCP的主要职责是监控和控制RTP数据流的质量。它提供传输质量反馈,包括丢包率、...

    g711 rtp 打包代码

    深入研究这个代码,可以学习到如何在实际应用中处理音频数据的传输问题,以及如何与RTP和UDP等网络协议交互。对于开发VoIP应用或者多媒体通信系统的工程师来说,这是一个非常有价值的实践案例。

    RTP 实现源码 source code

    一个RTP报文由固定头部和可变大小的数据负载组成。头部包含版本信息、标志位、序列号、时间戳、同步源标识符(SSRC)和贡献源标识符(CSRC)。序列号用于接收端重组乱序的数据包,时间戳则反映了数据的第一个样本的...

    NS2新的RTP协议

    1. **RTP协议结构**:RTP报文由一个固定头部和可选的扩展字段组成。头部包含序列号、时间戳、SSRC(同步源标识符)等关键信息,用于接收端正确排序和同步数据包。 2. **RTP工作原理**:发送端将数据封装到RTP包中,...

    java RTP 库

    RTP报文由固定头部和可变负载两部分组成,头部包含了序列号、时间戳、SSRC(同步源标识符)等关键信息,用于确保数据的有序性和同步性。开发者需要正确设置这些字段,以便在接收端恢复原始的实时数据流。 在实际...

    rtp.rar_rtp_rtp 接收

    RTP(Real-time Transport Protocol)是一种网络协议,主要用于在IP网络上实时传输音频和视频数据。...通过分析和实践这个"rtp.rar_rtp_rtp 接收"项目,初学者可以更好地学习和掌握RTP协议的原理和应用。

    RTP和RTCP协议.rar_RTCP_网络RTP和RTCP协议说明

    RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control ...通过学习这份材料,你可以深入了解RTP和RTCP如何协同工作,以及如何在自己的系统中实现它们,从而提升网络多媒体通信的质量和稳定性。

    rtp服务器端的java实现

    RTP(Real-time Transport Protocol)是一种网络...通过学习和实践这些内容,可以开发出能够稳定运行、支持视频播放的RTP服务器。在实际项目中,可能还需要根据具体需求进行扩展,比如支持组播、加密传输等高级特性。

    RTP和RTCP协议原理-华为

    RTP报文通常包括固定的头部和可变大小的负载,而RTCP报文则有不同的类型,如RR(Receiver Report)、SR(Sender Report)、BYE、APP等,每种类型的报文都有其特定的结构和用途。 在实际应用中,RTP和RTCP常用于IP...

    RTP资料、源代码、文档

    RTP报文包含固定头部和可选扩展字段。头部包括序列号、时间戳、同步源标识符(SSRC)以及可选的标记、Payload类型、片偏移等字段,用于确保数据包的正确顺序、时钟同步和丢包检测。 3. **时间戳**: 时间戳用于...

    对于rtp协议的解释文档

    RTCP报文通常与RTP报文交替发送,以减少对实时数据传输的影响。 RTP协议广泛应用于VoIP(Voice over IP)、视频会议、在线教育和流媒体服务等领域。例如,在WebRTC(Web Real-Time Communication)技术中,RTP是...

    RTP协议学习大总结从原理到代码

    - **APP(应用程序定义的报文)**:为协议的扩展提供了灵活性。 ### 结论 通过上述分析可以看出,RTP协议在流媒体传输领域扮演着至关重要的角色。它不仅定义了数据传输的标准格式,还通过RTCP提供了必要的控制机制...

    RTP_RTCP_Prog_Ref_Guide.rar_RTCP_RTP rtcp_rtp

    2. RTP头格式及字段解析。 3. RTCP报文类型,如RR(Receiver Report)、SR(Sender Report)和BYE(Goodbye)。 4. RTP和RTCP的交互过程以及会话管理。 5. 实时传输中的QoS策略和网络适应性。 6. 多播和单播应用场景...

    rtcp格式原文.rar_mpeg2 rt_rtcp rtp_rtcp wav_rtp_rtp协议

    RTP头包含时间戳、序列号、源标识符等字段,这些信息用于接收端正确排序和同步数据,以及检测丢失的包。 MPEG-2是一种数字视频编码标准,广泛应用于电视广播、DVD和数字卫星电视等领域。MPEG-2数据通常被封装成RTP...

    简单的RTSP, RTP, RTCP推送H264码流服务器实现

    这个简单的实现可能并未涵盖所有这些细节,但它作为一个学习和研究的基础,可以帮助初学者理解RTSP、RTP、RTCP的工作原理。通过扩展和完善,你可以构建更强大的实时流媒体服务器,支持更多的功能和优化。在实际工程...

Global site tag (gtag.js) - Google Analytics