CN1694455A - 跨平台的端到端rtp协议栈设计方法 - Google Patents
跨平台的端到端rtp协议栈设计方法 Download PDFInfo
- Publication number
- CN1694455A CN1694455A CN 200510050177 CN200510050177A CN1694455A CN 1694455 A CN1694455 A CN 1694455A CN 200510050177 CN200510050177 CN 200510050177 CN 200510050177 A CN200510050177 A CN 200510050177A CN 1694455 A CN1694455 A CN 1694455A
- Authority
- CN
- China
- Prior art keywords
- rtp
- bag
- algorithm
- module
- rtcp
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 10
- 108700009949 PTP protocol Proteins 0.000 title claims description 5
- 230000005540 biological transmission Effects 0.000 claims abstract description 44
- 238000004422 calculation algorithm Methods 0.000 claims description 30
- 230000007246 mechanism Effects 0.000 claims description 13
- 238000012217 deletion Methods 0.000 claims description 10
- 230000037430 deletion Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 4
- 238000012423 maintenance Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种跨平台的端到端RTP协议栈设计方法。它通过对RTP协议的标准进行修改和裁减,采用简洁的接口技术,降低程序运行复杂度;本RTP协议栈包括三个模块:一、数据包模块,二、控制信息包模块,三、成员模块;这三个模块由一个调度器来统一处理,使其协作执行使之适合于移动环境下流媒体的应用,为了适合在各种设备和网络环境下运行,尤其是为了适应嵌入式移动手持设备,本发明对RTP协议标准作了大量的改进,使之满足流媒体无线传输的实时性和可靠性。本发明在RTP应用的成员维护和RTP应用的安全方面有很大的优势,在无线传输的网络环境中,能很好的适应各种移动终端设备的流媒体应用。
Description
技术领域
本发明涉及一种跨平台的端到端RTP协议栈设计方法。
背景技术
随着多媒体处理技术的发展,基于流媒体传输的多媒体应用得到了迅速的发展。目前,许多实验性的高速宽带网络都把视频传输的技术和应用作为研究的重点课题。流媒体技术适用各种网络带宽环境(14.4Kbps-10Mbps),因此,流媒体在互联网上的应用十分广泛,如实时视频会议、多媒体新闻发布、在线直播、电子商务、视频点播、远程教育、道路监控等。在宽带环境下,流媒体不仅可以进行单向流式传输,还能够提供以互动技术为基础的网络交互服务,如互动游戏、互动培训、三维动画等等。目前,流媒体技术的应用正处于高速持续增长时期,而流媒体的实时传输技术也日益成为互联网技术研究的热点。
RTP是用于Internet上针对多媒体数据流的一种传输协议。RTP是被定义为在一对一或一对多的传输情况下工作的,其目的是提供时间信息和实现流同步。RTP本身并不能为按顺序传送数据包提供可靠的传送机制,也不提供流量控制或拥塞控制,它依靠控制协议(RTCP或者TCP)提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。RTP提供端对端网络传输功能,适合通过组播和点播传送实时数据,如视频、音频和仿真数据。
TCP/IP网络传输结构是目前最成熟,最可靠,应用最广泛的传输方式。其重传机制和拥塞机制提供了高质量的可靠性,是目前使用最广泛的网络传输机制。
TCP/IP传输模式存在很多不足。首先,TCP是面向连接的传输协议,连接本身就会造成一定的时延,这不能满足流媒体传输的实时要求。其次,TCP协议重传机制和拥塞控制不适合多媒体的实时传输。再次,TCP的传输层协议不提供组播功能。最后,TCP报文头不提供时间戳和编、解码信息,因而接受方应用程序可能会无法正确的同步数据。
如果使用RTP/UDP作为传输协议栈时,当应用程序开始一个RTP会话时将使用两个端口:一个给RTP,一个给RTCP。RTCP作为实时传输控制协议和RTP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传送RTCP包。RTCP包中含有已发送的数据包的数量、丢失的数据包的数量等统计资料,因此,服务器可以利用这些信息动态地改变传输速率,甚至改变有效载荷类型。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合传送网上的实时数据。尤其是在UDP上利用RTP/RTCP协议对视频流进行封装、打包和同步,可以使数字视音频信号的网络传输延时达到最小。
如果使用RTP/TCP模式,使用TCP协议负载RTP数据报文,流媒体的传输可靠性完全交给底层TCP协议来实现TCP协议采用基于窗口的端到端的算法提供可靠的拥塞控制机制,在各种特定的环境中有效的保证传输的可靠性。
要实现跨平台RTP/UDP传输模式,必须解决以下问题:如何在接收端有序解包,而传输的发送端是无序发包的,原因是UDP是无连接的传输协议;如何解决网络的拥塞机制,使之能自适应不同的网络环境,原因是UDP协议不提供拥塞机制;如何得到有效的反馈、模块信息,原因是UDP没有提供控制模块信息;如何在Internet上传输庞大的流媒体数据而不引起很大的带宽竞争;为了适应嵌入式手持设备及无线传输,应尽量减少对各种网络、计算机资源的占用。
发明内容
本发明的目的在于提供一种跨平台的端到端RTP协议栈设计方法。
本发明解决其技术问题所采用的技术方案如下:
1)、采用简洁的接口技术,降低程序运行复杂度;本RTP协议栈包括三个模块:一、数据包模块,二、控制信息包模块,三、成员模块;这三个模块由一个调度器来统一处理,使其协作执行;
2)、通过对RTP包头格式进行修改:用相对时间戳代替绝对时间戳来实现同步,对RTP包的包头进行压缩,减少网络开销;
3)、适应无线网络传输环境,对RTCP协议进行裁减和扩展;(1)对RTCP包的SR包做了简化;(2)对RTCP包长更新算法提出改进,使之能更灵活准确反馈某时刻的网络环境;(3)为了适应无线传输环境,把大量的RTP应用的参数设置为默认值,降低算法的复杂度,减少网络开销;(4)对丢包率计算的算法提出改进:当组成员数小于N时,取所有成员中最高丢包率作为向应用层反馈的丢包率;当成员数大于N时,只考虑最近t时间内发送RTP包最多的m位成员的算术平均丢包率作为向应用层反馈的丢包率;
4)、成员模块的设置;(1)对成员模块和同步源进行改进和结合,设置成员的五个不同的状态:初始化、查找检测、加入检测、激活、离开五个状态;(2)
修改RTCP包的发送间隔计算,包长计算算法和丢保率算法的改进的重要原因和目的就是改进发送间隔时间的算法,并根据成员的增减和状态的变化,动态计算RTCP包的发送间隔;(3)删除同步源链表、建立基于分层的成员链表,使成员模块和同步源有机结合,从而对RTP的各个算法实现提供有效支持,保证传输的实时性和必要的可靠性;(4)利用成员模块链表,改进成员冲突检测,对本地成员链表无论是查找操作还是插入、删除操作都变得更加容易;(5)改进back-off机制,设置上溢阈值和下溢阈值来防止同时有很多成员加入和离开导致的网络抖动。
本发明与背景技术相比,具有的有益的效果是:
本发明适应各种网络环境。通过对RTP包头格式进行修改,用相对时间戳代替绝对时间戳来实现同步,设置两个状态位来标志成员的状态;对RTCP协议进行裁减和扩展,对RTCP包的SR包做了简化,对RTCP包长算法、丢包率算法提出改进,使之能更灵活准确反馈某时刻的网络环境;对成员维护和同步源维护进行改进和结合,设置成员的五个不同的状态,删除同步源链表、建立基于分层的成员维护链表,使成员维护和同步源维护有机结合,对RTP的各个算法实现提供有效支持,保证传输的实时性和必要的可靠性,改进成员冲突检测,简化操作,改进back-off机制,防止抖动产生。
使用本发明的跨平台RTP协议栈的设计方法,与TCP/IP协议和传统的RTP/UDP实现相比,在RTP应用的成员维护和RTP应用的安全方面有很大的优势,在无线传输的网络环境中,能很好的适应各种移动终端设备的流媒体应用。
附图说明
附图为具体的RTP协议栈示意图。
具体实施方式
通过对RTP包头格式进行修改,用相对时间戳代替绝对时间戳来实现同步,对RTCP协议进行裁减和扩展,对RTCP包的SR包做了简化,对RTCP包长算法、丢包率算法提出改进,使之能更灵活准确反馈某时刻的网络环境;对成员维护和同步源维护进行改进和结合,设置成员的五个不同的状态,删除同步源链表、建立基于分层的成员维护链表,使成员维护和同步源维护有机结合,对RTP的各个算法实现提供有效支持,保证传输的实时性和必要的可靠性,改进成员冲突检测,简化成员维护操作,改进back-off机制,防止网络抖动产生。
本RTP协议栈处于用户接口之下,网络底层接口之上。RTP协议栈基于UDP协议之上,在多媒体的有效载荷之上封装RTP包,并在成员模块中提取有效的成员信息,从而传输数据包和控制信息包,如附图所示。RTP协议栈的具体实现如下:
1、RTP协议栈包括个模块:一、数据包模块,二、控制信息包模块,三、成员模块。这三个模块由一个调度器来统一处理,使其协作执行。另外,整个设计方法中不采用类继承和类的嵌套机制,降低程序运行复杂度。
2、RTP协议的裁减和扩展:
由于RTP报文头开销很大,RTP+UDP+IP=40字节/分组,对RTP包的包头采用逐步压缩的方法,能大量的减少网络开销。用相对时间戳代替绝对时间戳来实现同步。
3、RTCP协议的裁减和扩展,使之适应网络性能较低的无线网络环境:
1)简化发送者信息:
发送报告包(SR)在RTCP包中占很大比率,而发送者信息包含在发送报告包(SR)中也占较大的比率。由于发送报告包(SR)和接收报告包(RR)存在信息重叠,因此把SR包中的丢包率、累计丢包数、发送包最大序号、到达时间、上个SR时间戳和上个SR的延时等信息删除,这能大量减少开销,却仍不影响有效的提供传输信息。
2)改进包长计算算法,使之能更灵活更准确的反映某时刻的网络状态:
计算收到的近n个RTCP包的平均包长来代替计算所有的平均RTCP包长,这样能更可靠的反应当前的网络拥塞状况。这是因为平均包长的计算之间关系到包传输的时延,而变化的网络环境要求能灵活而准确的计算时延。改进该算法能更智能的动态计算RTCP包的发送间隔。
3)为了适应无线传输环境,把大量的RTP应用的参数设置为默认值,降低算法的复杂度,减少网络开销。
4)改进丢包率的计算算法,当组成员数小于N时,取所有成员中最高丢包率作为向应用层反馈的丢包率;当成员数大于N时,只考虑最近t时间内发送RTP包最多的m位成员的算术平均丢包率作为向应用层反馈的丢包率。使之能更灵活更准确的反映某时刻的网络拥塞状态。
4、成员库模块的设置:
RTP运行与UDP协议之上,当用组播方式进行数据包传输时,组成员可以随时加入和退出组播组,这几点使组播安全性问题和组播可靠性问题变得尤其重要。而其关键技术是对组成员的状态进行维护,以及对RTP包和RTCP包的传输间隔的计算和维护。
1)把RTP应用的成员分成五个状态:初始化、查找检测、加入检测、激活、离开等五个状态。
初始化状态:成员加入RTP应用之后但在没有任何动作执行时的状态。
查找检测状态:成员得到RTP应用创建者的IP地址之后的状态。
加入检测状态:成员申请加入之后的状态。
激活状态:成员加入申请得到确认之后的状态。
离开状态:成员申请离开并得到离开确认之后的状态。
需要特别指出的是,只有RTP应用的创建者才可以关闭RTP应用。
对成员库维护的目的是能够使各个成员能依据当前的RTP应用的参与情况,结合本地的网络环境,准确计算RTP和RTCP包的发送间隔,防止网络拥塞却保证能提供必要的控制信息。
2)修改RTCP包的发送间隔计算,包长计算算法和丢保率算法的改进的重要原因和目的就是改进发送间隔时间的算法,并根据成员的增减和状态的变化,动态计算RTCP包的发送间隔。
3)删除RTP协议栈中的同步源链表,取而代之的是基于本地成员维护链表。这个修改是基于这样一个假设,在某一个RTP应用中,一个成员有唯一的同步源。
具体内容如下:
每个成员在本地维护一个本地成员哈希链表,由于在一个RTP应用中,一个成员有唯一的同步源,则成员的查找可以用同步源标识符来查找。并且提供接口:插入、删除同步源,得到当地同步源,查找某个同步源等接口,同时也提供得到处于各个不同状态的成员数的接口。这些接口的提供和基于这种分层的多个RTP应用分别维护同步源的原理,使同步源的维护和成员维护有机结合,既不过于复杂又能有机结合,使成员在了解本地成员信息上和本地网络环境方面变得更加轻松。
4)改进成员冲突检测算法:利用(3)中给出的数据结构,改进成员冲突检测。本地成员哈希表无论是查找操作还是插入、删除操作等都变得更加容易。
5)当同时有大量的成员加入或者离开的情况而导致的RTP应用的分组泛滥和分组丢失,改进back-off机制。设置两个阈值,一个是某一个时刻最大加入成员数,另一个为某一个时刻最大成员离开数。以此来避免网络抖动。
Claims (1)
1、跨平台的端到端RTP协议栈设计方法,其特征在于:
1)、采用简洁的接口技术,降低程序运行复杂度;本RTP协议栈包括三个模块:一、数据包模块,二、控制信息包模块,三、成员模块;这三个模块由一个调度器来统一处理,使其协作执行;
2)、通过对RTP包头格式进行修改:用相对时间戳代替绝对时间戳来实现同步,对RTP包的包头进行压缩,减少网络开销;
3)、适应无线网络传输环境,对RTCP协议进行裁减和扩展;(1)对RTCP包的SR包做了简化;(2)对RTCP包长更新算法提出改进,使之能更灵活准确反馈某时刻的网络环境;(3)为了适应无线传输环境,把大量的RTP应用的参数设置为默认值,降低算法的复杂度,减少网络开销;(4)对丢包率计算的算法提出改进:当组成员数小于N时,取所有成员中最高丢包率作为向应用层反馈的丢包率;当成员数大于N时,只考虑最近t时间内发送RTP包最多的m位成员的算术平均丢包率作为向应用层反馈的丢包率;
4)、成员模块的设置;(1)对成员模块和同步源进行改进和结合,设置成员的五个不同的状态:初始化、查找检测、加入检测、激活、离开五个状态;(2)修改RTCP包的发送间隔计算,包长计算算法和丢保率算法的改进的重要原因和目的就是改进发送间隔时间的算法,并根据成员的增减和状态的变化,动态计算RTCP包的发送间隔;(3)删除同步源链表、建立基于分层的成员链表,使成员模块和同步源有机结合,从而对RTP的各个算法实现提供有效支持,保证传输的实时性和必要的可靠性;(4)利用成员模块链表,改进成员冲突检测,对本地成员链表无论是查找操作还是插入、删除操作都变得更加容易;(5)改进back-off机制,设置上溢阈值和下溢阈值来防止同时有很多成员加入和离开导致的网络抖动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100501773A CN100479460C (zh) | 2005-06-20 | 2005-06-20 | 跨平台的端到端rtp协议栈设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100501773A CN100479460C (zh) | 2005-06-20 | 2005-06-20 | 跨平台的端到端rtp协议栈设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1694455A true CN1694455A (zh) | 2005-11-09 |
CN100479460C CN100479460C (zh) | 2009-04-15 |
Family
ID=35353254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100501773A Expired - Fee Related CN100479460C (zh) | 2005-06-20 | 2005-06-20 | 跨平台的端到端rtp协议栈设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100479460C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101170487B (zh) * | 2006-10-25 | 2010-05-12 | 华为技术有限公司 | 数据流复用中的压缩方法和压缩系统以及压缩设备 |
CN1929480B (zh) * | 2006-09-30 | 2010-05-12 | 四川长虹电器股份有限公司 | 实时流媒体通信方法 |
CN102132530A (zh) * | 2008-08-22 | 2011-07-20 | 马维尔国际贸易有限公司 | 在网元中集成精确时间协议和介质访问控制安全的方法和装置 |
-
2005
- 2005-06-20 CN CNB2005100501773A patent/CN100479460C/zh not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1929480B (zh) * | 2006-09-30 | 2010-05-12 | 四川长虹电器股份有限公司 | 实时流媒体通信方法 |
CN101170487B (zh) * | 2006-10-25 | 2010-05-12 | 华为技术有限公司 | 数据流复用中的压缩方法和压缩系统以及压缩设备 |
CN102132530A (zh) * | 2008-08-22 | 2011-07-20 | 马维尔国际贸易有限公司 | 在网元中集成精确时间协议和介质访问控制安全的方法和装置 |
CN102132530B (zh) * | 2008-08-22 | 2014-09-24 | 马维尔国际贸易有限公司 | 在网元中集成精确时间协议和介质访问控制安全的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100479460C (zh) | 2009-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1906906B (zh) | 用于ip语音的最优无线承载电路配置 | |
US7593335B2 (en) | Rate based congestion control for packet networks | |
CN101068236B (zh) | 流媒体码率控制方法、系统和设备 | |
US7106757B2 (en) | System and method for streaming multimedia over packet networks | |
US20040098748A1 (en) | MPEG-4 live unicast video streaming system in wireless network with end-to-end bitrate-based congestion control | |
CN110049353B (zh) | 用于在广播系统中传输多媒体数据的装置及方法 | |
CN113099310A (zh) | 基于安卓平台的实时媒体内视音频协调法 | |
CN106911699B (zh) | 一种基于rtp协议实现i帧重传的方法 | |
CN1148931C (zh) | 基于实时传输协议和传输控制协议的流媒体传输实现方法 | |
CN1620037A (zh) | 用于分组数据网络上的实时服务的分组汇聚 | |
US9392082B2 (en) | Communication interface and method for robust header compression of data flows | |
CN101030938A (zh) | QoS自适应的P2P流媒体数据组织与传输系统及方法 | |
CN101075957A (zh) | Avs流媒体传输控制方法 | |
CN101909208A (zh) | 一种适用于cdma2000的视频无线传输控制方法 | |
CN1812575A (zh) | 流媒体数据的并行传输调度方法 | |
CN101394252A (zh) | 一种基于rtp的数据传输方法 | |
CN113115080A (zh) | 移动媒体间实时视频音频高精度同步平台 | |
CN1929481A (zh) | 基于udp的流媒体穿越nat设备的方法 | |
CN1225883C (zh) | 一种节约带宽的语音传送方法 | |
CN100479460C (zh) | 跨平台的端到端rtp协议栈设计方法 | |
CN101075918A (zh) | 一种网络带宽检测方法 | |
CN1468002A (zh) | 基于因特网的流媒体压缩、传输与存贮系统 | |
Shamieh et al. | Dynamic cross-layer signaling exchange for real-time and on-demand multimedia streams | |
Naidu et al. | Implementation of header compression in 3GPP LTE | |
Bassey et al. | AN EFFECTIVE ADAPTIVE MEDIA PLAY-OUT ALGORITHM FOR REAL-TIME VIDEO STREAMING OVER PACKET NETWORKS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090415 Termination date: 20170620 |