CN103166959B - 一种多径实时传输控制系统及方法 - Google Patents
一种多径实时传输控制系统及方法 Download PDFInfo
- Publication number
- CN103166959B CN103166959B CN201310064160.8A CN201310064160A CN103166959B CN 103166959 B CN103166959 B CN 103166959B CN 201310064160 A CN201310064160 A CN 201310064160A CN 103166959 B CN103166959 B CN 103166959B
- Authority
- CN
- China
- Prior art keywords
- rtp
- path
- multipath
- behalf
- subflow
- 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.)
- Active
Links
Abstract
一种多径实时传输控制系统及方法,属于网络通信技术领域。包括多径RTP代理发送端、RTP中继器、控制器和多径RTP代理接收端。多径RTP代理发送端在媒体传输之前或媒体传输过程中,以带外信令的方式从控制器收集一条或多条中继路径,发送媒体数据包给多径RTP代理接收端。本发明的方法实现了网络无关性,使现有的IP网络无需做任何修改且对终端设备的网络环境无任何特殊要求;可扩展性强,实现RTP中继器的无限扩展部署;运营商可以根据网络和应用的需求,在不同地理位置部署RTP中继器,避免网络热点成为性能瓶颈,提高网络利用率。
Description
技术领域
本发明属于网络通信技术领域,涉及一种媒体数据的多径传输方法,特别涉及一种基于应用中继的多径实时传输控制系统及方法。
背景技术
在传统IP网络中,媒体数据传输主要依赖基于缺省路由的单一路径。然而,缺省IP路径在很多情况下并不是最优的,特别是当经过由不同网络服务提供商提供的网络时,缺省IP路径会变得更糟。
IP通信应用也常常采用中继传输的方式进行媒体传输。中继传输处理可解决由于NAT和防火墙导致的通信应用不能直接进行媒体传输的问题,另外一个重要的好处是采用中继传输路径替代缺省路由路径,扩展了通信应用选择媒体传输路径的机会,有可能实现更好的传输服务质量。
无论是基于缺省路由路径,还是基于中继传输路径,目前端到端的多媒体会话主要采用RTP等单径传输控制协议进行单经传输。然而,单一路径的服务质量条件难以满足高带宽、高速率媒体传输应用的需求,已成为制约高清视频等多媒体通信应用业务的发展瓶颈。另外,目前具有高接入带宽的用户终端日益普遍。对端到端多媒体会话来说,带宽限制正逐渐由用户接入网络转移到骨干网。目前,支持多径传输的协议有SCTP(Stream Control TransmissionProtocol,流控制传输协议)和MPTCP(Multipath Transmission Control Protocol,多径传输控制协议),但是这两种协议存在如下缺点:1)是传输层协议,需要通信端点的底层协议加以支持;2)要求通信端点具有多个网络连接,即通信端点是多宿主机的(multi-homed);3)不支持实时媒体多径传输的需求。RTP(Realtime Transport Protocol,实时传输控制协议)协议是针对实时媒体提出的传输控制协议,然而并不支持实时媒体的多径传输控制。MPRTP(Multipath Realtime Transport Protocol,多径实时传输协议)草案是针对实时媒体的多径传输需求提出的,但是同样要求通信端点必须是多宿主机的。
发明内容
针对现有技术存在的不足,本发明的目的是提出一种多径实时传输控制系统及方法,通过通信端点间的多条路径并发传输和系统中RTP中继器的无限扩展部署,以达到提高用户通信质量,避免网络热点成为性能瓶颈,提高网络利用率的目的。
本发明的技术方案是这样实现的:一种多径实时传输控制系统,包括:
多径RTP代理发送端:(a)用于与控制器进行交互:媒体传输之前或媒体传输过程中,以带外信令的方式从控制器收集一条或多条中继路径的路径消息;
(b)根据媒体传输需求,从默认路径和可用的中继路径中选择一条或者多条路径作为活动路径;将媒体数据划分成若干子流;将每个子流绑定到一条活动路径;在每个子流RTP数据包中加入子流控制信息;为每个子流产生子流RTCP发送者报告数据包,子流RTCP发送者报告数据包加入子流标识信息;子流RTP数据包和子流RTCP发送者报告数据包一同沿着子流所绑定的活动路径传送;
(c)用于接收由多径RTP代理接收端发送的RTCP接受者数据包,并根据该数据包的内容,动态调整媒体数据的划分;
多径RTP代理接收端:用于根据子流控制信息,将接收到的子流RTP数据包重组为每个子流,再重组为原始媒体流;为每个子流产生子流RTCP接受者报告数据包,沿着默认路径传送给多径RTP代理发送端;
RTP中继器:(a)用于为多径RTP代理发送端和多径RTP代理接收端提供中继服务:从多径RTP代理发送端或者上一跳RTP中继器接收到的子流数据包中提取路径标识符,根据路径标识符在路径表中进行匹配查找,若匹配失败,则丢弃该子流数据包;若匹配成功,则按照匹配路径项中的路径信息转发该子流数据包;
(b)用于与控制器进行交互,首先RTP中继器向控制器发送注册请求消息进行注册,如果没有响应或者响应失败,则RTP中继器终止与控制器的连接;如果响应成功,则告知控制器开启中继服务,在连接保持期间,RTP中继器周期性地发送消息保活连接;接收到来自控制器的路径添加请求消息时,RTP中继器检查路径表是否已经存在具有相同路径标识符的路径项,若存在,则拒绝该请求并回复一个添加路径失败响应消息;若不存在,则将路径添加请求消息中的路径信息添加到路径表并回复一个添加路径成功响应消息;接收到来自控制器的路径删除请求消息时,RTP中继器检查路径表是否存在具有指定路径标识符的路径项,若存在,则删除该路径项并回复一个路径删除成功响应消息;若不存在,则回复一个路径删除失败响应消息;
控制器:(a)用于为多径RTP代理发送端和多径RTP代理接收端分配中继路径:在接收到来自多径RTP代理发送端的通信请求消息后,分配一条或多条中继路径,并将分配成功的中继路径信息发送给多径RTP代理发送端;
(b)用于与RTP中继器交互进行RTP中继器管理和路径控制:在分配中继路径时,向中继路径上所有的RTP中继器发送路径添加请求消息,若至少一个RTP中继器响应失败,该中继路径分配失败;若中继路径上所有RTP中继器均响应成功,该中继路径分配成功;在删除中继路径时,向中继路径上所有的RTP中继器发送路径删除请求消息。
所述的默认路径为多径RTP代理发送端和多径RTP代理接收端之间的由常规RTP会话所协商和建立的路径;
所述的中继路径为多径RTP代理发送端和多径RTP代理接收端之间的经由一个或多个RTP中继器的路径,中继路径由控制器负责分配;
所述的子流控制信息包括路径标识符和子流序列号;
所述的控制器发送给多径RTP代理发送端的中继路径信息包括路径标识符、多径RTP代理发送端的下一跳传输地址。
所述的多径RTP代理发送端将子流RTP数据包和子流RTCP数据包复用到一个端口,复用的子流RTCP数据包用于保活中继路径,并减少RTP会话使用端口的数量。
当活动路径发送故障导致不可用时,所述的多径RTP代理发送端重新进行媒体数据的划分,将故障路径的负载分配给其它活动路径,或者选择一条新的可用路径作为活动路径替换当前故障路径。
所述的RTP中继器还根据空闲超时时间和强制超时时间进行路径有效性管理:接收到来自控制器的路径添加请求消息或者路径修改请求消息时,根据请求消息内容为相应路径设定空闲超时时间和强制超时时间,若强制超时时间不为0,则在路径建立后的强制超时时间的时间点强制删除该路径;若强制超时时间为0而空闲超时时间不为0,则标记该路径上子流数据包的到达时间,若在空闲超时时间内没有收到任何匹配数据包,该路径将被删除;若空闲超时时间和强制超时时间均为0,该路径只能在接收到来自控制器的相应的路径删除请求消息后删除。
一种多径实时传输控制方法,包括以下步骤:
步骤1:在媒体传输之前或者媒体传输过程中,多径RTP代理发送端从控制器收集中继路径的路径信息;
步骤2:多径RTP代理发送端根据传输需求,选择默认路径和一条或多条可用的中继路径作为活动路径用于传输媒体数据包;将整个媒体数据包划分成与活动路径相同个数的子流,并将每个子流绑定到一个活动路径;
步骤3:多径RTP代理发送端在原始RTP数据包格式基础上扩展子流控制信息,产生子流数据包,并根据子流所绑定的路径信息进行发送;
步骤4:RTP中继器接收到子流数据包后,对该子流数据包进行转发;
步骤5:多径RTP代理接收端接收到子流数据包后,首先重组每个子流,然后重组原始RTP流;
步骤6:多径RTP代理接收端计算每个子流的传输统计信息,为每个子流产生子流RTCP接收者报告数据包,并沿着默认路径传送给多径RTP代理发送端;
步骤7:多径RTP代理发送端根据接收到的子流RTCP数据包评价活动路径的性能,根据路径性能对数据重新进行划分和调度,直至媒体数据包传输结束。
本发明的有益效果:
1、网络无关性:现有的IP网络无需做任何修改;对终端设备的网络环境无任何特殊要求;
2可扩展性强:理论上RTP中继器可以无限扩展部署;
3负载均衡机制:运营商可以根据网络和应用的需求,在不同地理位置部署RTP中继器,避免网络热点成为性能瓶颈,提高网络利用率。
附图说明
图1为本发明一种实施方式给出多径实时传输控制系统结构框图;
图2为本发明一种实施方式给出一个点到点的多径RTP会话应用场景框图;
图3为本发明一种实施方式给出一个多点到点的多径RTP会话应用场景框图;
图4为本发明一种实施方式给出一个点到多点的多径RTP会话应用场景框图;
图5为本发明一种实施方式给出多径实时传输控制方法流程图;
图6为本发明一种实施方式给出多径实时传输控制过程示意图。
具体实施方式
下面结合附图对本发明的实施方式作进一步的详细说明。
图1给出了本发明一种实施方式的结构框图。该系统由多径RTP代理发送端1、多径RTP代理接收端2(多径RTP代理发送端1和多径RTP代理接收端2统称为多径RTP代理端)、RTP中继器3和控制器4组成。
本实施方式中,多径RTP代理发送端在媒体传输之前或媒体传输过程中,以带外信令的方式(如SDP/RTSP)从控制器收集一条或多条中继路径(是指发送者和接收者之间的经由一个或多个RTP中继器的路径,本实施方式中,中继路径设计为单向的,会话中的双向媒体流被视为两个独立的方向相反的单向流,本实施方式为每个单向流分配中继路径)的路径消息。多径RTP代理发送端所获得的中继路径信息包括路径标识符和下一跳传输地址。下一跳传输地址是关联路径中多径RTP代理发送端发送数据包的目的地址,包括IP地址和端口。
在使用中继路径进行传输之前,多径RTP代理发送端需要对中继路径的可达性进行检测,如果中继路径是可达的,该路径标识为可用路径,并根据优先级顺序插入可用路径列表;如果中继路径是不可达的,则把该路径标识为不可用路径,并插入不可用路径列表。多径RTP代理发送端周期性地对可用路径列表中的路径执行可达性检测过程,如果可达性检测过程失败,则将该路径标识为不可用路径,并从可用路径列表转移到不可用路径列表。多径RTP代理发送端周期性地对不可用路径列表中的路径执行可达性检测过程,如果可达性检测过程成功,则把该路径标识为可用路径,并从不可用路径列表转移到可用路径列表。
然后,多径RTP代理发送端根据媒体传输需求,从默认路径(是指发送者和接收者之间直接通信的一条路径,即常规RTP会话所协商和建立的路径)和可用的中继路径中选择一条或者多条路径作为活动路径,利用活动路径向多径RTP代理接收端发送媒体数据包。多径RTP代理发送端根据数据划分策略(根据媒体类型、编码方法和路径特点等信息进行制定),将媒体流划分成若干子流;然后再根据数据调度策略(如,路径带宽、丢包率、延时、子流数据的重要性等信息来制定),将每个子流绑定到一条活动路径,在每个子流RTP数据包中加入子流控制信息(包括路径标识符和子流序列号,子流序列号的初始值由多径RTP代理发送端随机产生),为每个子流产生子流RTCP发送者报告数据包,子流RTCP发送者报告数据包加入路径标识符信息;子流RTP数据包和子流RTCP发送者报告数据包一同沿着子流所绑定的活动路径传输给多径RTP代理接收端。
媒体传输过程中,多径RTP代理发送端1接收由多径RTP代理接收端发送的RTCP接受者数据包,并根据该数据包的内容,动态调整数据划分策略和数据调度策略。
本实施方式中多径RTP代理接收端接收到数据包后,首先按照路径标识符和子流序列号重组每个子流,然后根据序列号和时间戳重组原始RTP流。多径RTP代理接收端根据子流序列号和时间戳等信息计算每个子流的丢包率、抖动、往返时延等统计信息,为每个子流产生子流RTCP接收者报告数据包,并沿着默认路径传送给多径RTP代理发送端。
本实施方式中的RTP中继器与控制器交互过程中传递的消息遵循OpenPath协议(OpenPath协议基于请求/响应模型,每个事务包含一个请求消息和一个响应消息,请求消息和对应的响应消息具有相同的事务标识,事务标识由发送者产生,所有OpenPath消息拥有相同的消息头,OpenPath消息可能会拥有消息体,消息体的结构取决于消息类型,OpenPath消息在面向连接的通道中进行可靠传输,所有整数域按照网络字节序进行传输,作为填充部分的字节值为0)。RTP中继器启动后向控制器发送注册请求HELLO消息。HELLO消息携带该RTP中继器的标识符,提供中继服务的IP地址和端口,以及所支持的OpenPath协议最新版本号控制器接收到HELLO消息后,首先检查OpenPath协议版本号,如果不支持该版本,则向RTP中继器回复一个HELLO失败响应,否则回复一个HELLO成功响应。通过交换HELLO消息,RTP中继器完成注册过程。如果接收到HELLO失败响应,RTP中继器将终止与控制器的连接;否则,RTP中继器可以开始中继服务。在连接保持期间,RTP中继器或控制器周期性地发送ECHO消息,并希望获得ECHO响应。在接收到HELLO成功响应之后,RTP中继器可以向控制器发送中继服务开启请求START消息,用于告知控制器已开始中继服务。当负载较重或者其它情况发生时,RTP中继器可以向控制器发送中继服务关闭请求STOP消息,用于告知控制器暂停接收新的中继服务请求。在这期间,RTP中继器仍然为已存在的中继路径提供中继服务,而且周期性地向控制器发送ECHO消息。当恢复到正常状态时,RTP中继器重新向控制器发送START消息,用于告知控制器已重新开始中继服务。当希望永久停止中继服务时,RTP中继器可以在断开与控制器的连接前向其发送退出请求BYE消息。在这种情况下,控制器可以及时地做一些补救措施,比如,为受影响的媒体流指定一条新的中继路径
RTP中继器维护本地路由表信息。路径表是一组路径条目的集合,每个条目对应于一条中继路径。每一个路径条目包含匹配域、结果域和统计域三个部分。匹配域用于与子流RTP数据包和子流RTCP数据包对比匹配,包括路径标识符;结果域包含下一跳传输地址、空闲超时时间和强制超时时间,下一跳传输地址决定匹配包的转发目标;统计域用于记录每条路径转发数据的统计信息,接收到匹配数据包后更新该域。
RTP中继器负责路径的有效性管理。每条路径均具有一个空闲超时时间和一个强制超时时间,这两个域用于控制路径的超时时间。接收到路径添加请求消息ADD_PATH或路径更新请求消息UPDATE_PATH时,RTP中继器根据请求消息为相应路径设定空闲超时时间和强制超时时间。如果路径的空闲超时时间和强制超时时间至少一个不为0,RTP中继器需要标记该路径RTP/RTCP包的到达时间。如果设置了强制超时时间,不管在规定时间内收到了多少匹配数据包,该路径都会被删除。如果设置了空闲超时时间,若在规定的时间内没有收到匹配数据包,该路径将被删除。如果RTP中继器主动删除了一条路径,RTP中继器可以向控制器发送路径删除通知NOTIFY消息。NOTIFY消息包含了该删除路径的完整描述,包括移除原因、该路径存活时间、统计数据和移除时间等。
RTP中继器对查询消息进行处理。在连接建立后,RTP中继器可能会收到控制器发送的FEATURES请求消息,RTP中继器必须回复一个FEATURES响应消息,并包含自己的特征和能力等信息。在连接保持期间,RTP中继器可能会周期性地收到控制器发送的STATISTICS请求消息,RTP中继器必须回复一个STATISTICS响应消息,并包含现有的统计数据。
RTP中继器对路径表修改消息处理。控制器可以通过修改消息管理RTP中继器的路径表。本发明定义了三种路径表修改消息:路径添加消息ADD_PATH,插入一条新的路径;路径删除消息DELETE_PATH,删除一条现有路径;路径更新消息UPDATE_PATH,更新一条现有路径。
对于ADD_PATH请求消息,RTP中继器必须检查路径表是否已经存在具有相同路径标识的路径,如果存在,则拒绝该请求并回复一个失败响应;如果不存在,则将该路径添加到路径表中并回复一个成功响应,该路径的统计数据初始化为0。
对于DELETE_PATH请求消息,RTP中继器必须检查路径表是否存在具有指定路径标识的路径,如果存在,则删除该路径并回复一个成功响应;如果不存在,则回复一个失败响应。
对于UPDATE_PATH请求消息,RTP中继器必须检查路径表是否存在具有指定路径标识的路径,如果存在,则根据请求消息重置该路径信息,统计域信息保持不变,并回复一个成功响应;如果不存在,则回复一个失败响应。
RTP中继器基于路径表对子流RTP/RTCP数据包进行转发处理。RTP中继器的主要功能是为所有相关子流提供中继服务。对每个RTP中继器来说,所有关联子流共用一个中继端口。RTP中继器接收到子流数据包后,首先区分是子流RTP数据包还是子流RTCP数据包,并从数据包的相应位置提取出路径标识符,然后根据路径标识符在路径表中进行匹配查找。如果在路径表中没有找到相应的匹配项,RTP中继器丢弃该数据包;如果找到相应的匹配项,RTP中继器则按照下一跳传输地址转发该数据包,并更新该路径统计信息。
本实施方式中的控制器与多径RTP代理端进行交互,为多径RTP代理端之间的媒体流分配一条或多条中继路径。在接收到来自多径RTP代理端的通信请求消息后,根据路径分配策略(包括多径RTP代理发送端地址、多径RTP代理接收端地址、媒体类型、以及各个RTP中继器的性能和负载等信息)分配一条或多条中继路径,并将分配成功的中继路径信息(包括路径标识符、多径RTP代理发送端的下一跳传输地址)发送给多径RTP代理发送端。在分配中继路径时,控制器为每条中继路径分配一个全网唯一的路径标识符,并向中继路径上所有的RTP中继器发送路径添加请求消息ADD_PATH,若至少一个RTP中继器响应失败,该中继路径分配失败;若中继路径上所有RTP中继器均响应成功,该中继路径分配成功。ADD_PATH消息携带路径标识符和接收该消息的RTP中继器的下一跳传输地址。在删除中继路径时,控制器向中继路径上所有的RTP中继器发送路径删除请求消息DELETE_PATH。DELETE_PATH消息携带路径标识符。
该系统可以应用在很多媒体传输场景,例如点到点的实时通信、多点到点的并行流传输、点到多点的流广播。图2为一个点到点的多径RTP会话。在发送者和接收者之间有三条路径(包含默认路径,一条经由一个RTP中继器的中继路径,和一条经由两个RTP中继器的中继路径)。发送者可以根据特定需求选择具体的媒体数据划分方法,并将每个子流对应于一条路径。接收者进行数据重组和媒体复现。
将数据从地理上分布的数据源传输到一个目的地具有广泛的应用场景。例如,高清电影的大量数据存储在地理分布的多个服务器上。用户需要从多个位置获取数据并重组。多点到点多径RTP会话可以实现这种使用场景,如图3所示。一个多径RTP代理端同时从三个服务器获取数据。多径RTP代理端和服务器之间的路径可能经过一个或多个中继器。
很多视频应用需要支持具有不同连接质量或处理性能的终端设备,比如,从具有有限处理能力和小屏幕的手机到具有高分辨率的高性能电脑。点到多点多径RTP会话可以实现这种使用场景,如图4所示。服务器上的一个视频源被编码成多个可以独立解码的子流,每个子流按照各自的网络拓扑进行广播。
本实施方式采用多径实时传输控制方法实现对媒体数据的传输,该流程如图5和图6所示。该流程开始于步骤501。在步骤502,在媒体传输之前或者媒体传输过程中,多径RTP代理发送端(如多径RTP代理端-1)从控制器收集中继路径的路径信息。
首先,RTP中继器(如,RTP中继器-1、RTP中继器-2和RTP中继器-3)向控制器发送HELLO请求消息进行注册。HELLO请求消息中包含RTP中继器唯一标识、支持的OpenPath协议最新版本、提供中继服务的IP地址和端口。控制器必须回送HELLO响应消息,指示注册的结果(这种请求一般发生在OpenPath连接信道建立时),若为注册失败响应消息,RTP中继器退出服务。若为注册成功响应消息,RTP中继器启动中继服务。
RTP中继器通过向控制器发送START请求消息开始中继服务,控制器必须回送START响应消息并指示中继服务启动结果。
当负载较重或者其它情况发生时,RTP中继器可以向控制器发送STOP消息,用于告知控制器暂停接收新的中继服务请求,此时,控制器也必须回送STOP响应消息并指示暂停中继服务结果。在这期间,RTP中继器仍然为已存在的中继路径提供中继服务,而且周期性地向控制器发送ECHO消息。当恢复到正常状态时,RTP中继器重新向控制器发送START消息,用于告知控制器已重新开始中继服务。
当希望永久停止中继服务时,RTP中继器可以在断开与控制器的连接前向其发送BYE消息,此时,控制器必须回送BYE响应消息并指示终止中继服务结果。在这种情况下,控制器可以及时地做一些补救措施,比如,为受影响的媒体流指定一条新的中继路径。
其次,多径RTP代理发送端(如,多径RTP代理端-1)向控制器发送通信请求,要求控制器为其分配路径。控制器在分配中继路径时,需要向中继路径上的所有RTP中继器发送ADD_PATH路径添加请求信息,此消息中携带路径标识符以及接收此消息的RTP中继器的下一跳传输地址(图6中,控制器为多径RTP代理端-1到多径RTP代理端-2的媒体流分配了两条中继路径:中继路径P-1经由RTP中继器-1,中继路径P-2经由RTP中继器-2和RTP中继器-3,并为两条中继路径分配全网唯一的路径标识符分别为PID-1和PID-2。控制器向三个选定的RTP中继器发送路径添加请求消息。发送给RTP中继器-1的路径添加请求消息中,路径标识符为PID-1,下一跳传输地址为多径RTP代理端-2的地址;发送给RTP中继器-2的路径添加请求消息中,路径标识符为PID-2,下一跳传输地址为RTP中继器-3的地址;发送给RTP中继器-3的路径添加请求消息中,路径标识符为PID-2,下一跳传输地址为多径RTP代理端-2的地址。)。RTP中继器必须响应该路径添加请求消息并指示请求结果,只有在收到RTP中继器成功响应之后该中继路径才被成功分配。控制器将分配成功的中继路径信息发送给多径RTP代理发送端,中继路径信息包括路径标识符、多径RTP代理发送端的下一跳传输地址。(图6中,控制器将中继路径P-1和P-2的路径信息发送给多径RTP代理端-1,其中,P-1路径信息包括路径标识符为PID-1和下一跳传输地址为RTP中继器-1的地址;P-2路径信息包括路径标识符为PID-2和下一跳传输地址为RTP中继器-2的地址。)
RTP中继器的路径信息存放在路径表中。路径表是一系列路径项的集合,每个路径项对应一条中继路径。路径项包含匹配域、结果域和统计域三个部分。匹配域用于子流RTP数据包和子流RTCP数据包的查询匹配,包含路径标识符。结果域包含下一跳传输地址、空闲超时时间和强制超时时间,下一跳地址决定匹配数据包的转发目标。统计域用于记录每条路径转发数据的统计信息,包括匹配数据包数、匹配数据字节数和路径建立时间。
步骤503:在控制器为多径RTP代理接受端进行了路径分配后,可以对路径的可达性进行检测,检测过程如下:
多径RTP代理发送端向中继路径关联的下一条传输地址发送可达性检测消息,消息中携带路径标识符信息。中继路径上的RTP中继器接收到可达性检测消息后,根据消息中的路径标识符在路径表中进行匹配查找,若匹配失败,RTP中继器丢弃该消息;若匹配成功,RTP中继器按照匹配路径项中的下一跳传输地址转发该消息。多径RTP代理接收端接收到可达性检测消息后,沿着默认路径将该消息回送给多径RTP代理发送端。多径RTP代理发送端接收到可达性检测消息后,将消息中路径标识符所关联的中继路径标识为可用路径,并根据优先级顺序插入可用路径列表;若在T1(默认值1秒)时间内没有接收到某个中继路径所关联的可达性检测消息,则该中继路径标识为不可用路径,并插入不可用路径列表。
多径RTP代理发送端周期性地对可用路径列表中的路径执行可达性检测过程,如果可达性检测过程失败,则将该路径标识为不可用路径,并从可用路径列表转移到不可用路径列表。多径RTP代理发送端周期性地对不可用路径列表中的路径执行可达性检测过程,如果可达性检测过程成功,则把该路径标识为可用路径,并从不可用路径列表转移到可用路径列表。
可达性检测之后,多径RTP代理发送端根据传输需求,在可达路径中选择默认路径和一条或多条可用的中继路径作为活动路径用于传输媒体数据包。根据数据划分策略(如,根据媒体类型、编码方法和路径特点等信息制定),将媒体数据划分成若干子流(流的划分方法不在本实施方式的讨论范围内。一个应用应该根据自身的需求选择合适的划分策略);根据数据调度策略(如根据路径带宽、往返时延、丢包率、延时、子流数据的重要性等信息制定),将每个子流绑定到一个活动路径(图6中,多径RTP代理端-1将媒体流划分成两个子流S-1和S-2,并将两个子流分别绑定到中继路径P-1和P-2。)。
步骤504:多径RTP代理发送端在原始RTP数据包格式基础上扩展子流控制信息,产生子流RTP数据包,并根据子流所绑定的路径信息进行发送。其中,子流控制信息是指路径标识符和子流序列号,子流序列号在子流内是单调连续递增的,初始值是由多径RTP代理发送端随机产生的。同时,多径RTP代理发送端定期为每个子流产生子流RTCP发送者报告数据包,子流RTCP发送者报告数据包加入子流标识信息,子流RTCP发送者报告数据包同样沿着子流所绑定的活动路径传送(图6中,对于S-1,子流数据包的路径标识符为PID-1,下一跳传输地址为RTP中继器-1;对于S-2,子流数据包的路径标识符为PID-2,下一跳传输地址为RTP中继器-2)。
步骤505:RTP中继器接收到子流数据包后,从子流数据包中提取路径标识符,根据路径标识符在路径表中进行匹配查找,若匹配失败,RTP中继器丢弃该子流数据包;若匹配成功,RTP中继器按照匹配路径项中的下一跳传输地址转发该子流数据包(图6中,RTP中继器-1将S-1的子流数据包转发给多径RTP代理端-2;RTP中继器-2将S-2的子流数据包转发给RTP中继器-3;RTP中继器-3将S-2的子流数据包转发给多径RTP代理端-2),并更新该路径项的统计域信息。
步骤506:多径RTP代理接收端接收到子流数据包后,首先按照路径标识符和子流序列号重组每个子流(图6中,多径RTP代理端-2首先按照路径标识符PID-1和PID-2以及子流序列号重组子流S-1和S-2),然后根据原始RTP数据包中的序列号和时间戳重组原始RTP流。
步骤507:多径RTP代理接收端根据子流序列号和时间戳等信息计算每个子流的丢包率、抖动、时延等统计信息,为每个子流产生子流RTCP接收者报告数据包,并沿着默认路径传送给多径RTP代理发送端(图6中,多径RTP代理端-2分别计算子流S-1和S-2的统计信息,为子流S-1和S-2产生子流RTCP接收者报告数据包,并沿着默认路径传送给多径RTP代理端-1)。
多径RTP代理发送端沿着子流路径发送子流RTCP发送者报告;由于中继路径是单向的,多径RTP代理接收端沿着默认路径发送子流RTCP接收者报告。虽然子流RTCP发送者报告和子流RTCP接收者报告沿着不同路径传送,但是所有子流的子流RTCP接收者报告都是沿着相同的默认路径传送到发送者,所以多径RTP代理发送端仍然可以正确计算出各条路径传输时延的相对大小。
步骤508:多径RTP代理发送端根据接收到的子流RTCP数据包评价活动路径的性能,根据路径性能对数据重新进行划分和调度,直至媒体数据包传输结束。
步骤509,结束。
本实施方式给出OpenPath协议消息具体的结构及定义,如下:
OpenPath消息的公共头域,如表1所示。
表1OpenPath公共头域
Version(V):6bits,该域表示OpenPath协议的版本号。本实施方式中定义的版本号为1.
R:1bit,如果R置位,则表示该消息为请求消息;否则为响应消息。
S:1bit,请求消息中,该位保留;响应消息中,如果该位置位,则表示为成功响应,否则为失败响应。
Type:8bits,该域表示OpenPath消息类型,具体参见表2。
表2OpenPath消息类型
Type值 | Type名 | 请求消息的发送方向 |
1 | HELLO | RTP中继器->控制器 |
2 | BYE | RTP中继器->控制器 |
3 | ECHO | RTP中继器->控制器或者控制器->RTP中继器 |
4 | START | RTP中继器->控制器 |
5 | Stop | RTP中继器->控制器 |
6 | NOTIFY | RTP中继器->控制器 |
7 | FEATURES | 控制器->RTP中继器 |
8 | STATISTICS | 控制器->RTP中继器 |
9 | ADD_PATH | 控制器->RTP中继器 |
10 | DELETE_PATH | 控制器->RTP中继器 |
11 | UPDATE_PATH | 控制器->RTP中继器 |
Length:16bits,该域表示消息的总长度,单位:32-bit。
Relay ID:32bits,该域表示RTP中继器的标识符,该标识符由RTP中继器在注册时产生,在RTP中继器的整个生命周期中保持不变。
Transaction ID:32bits,该域表示事务标识,由请求发起者随机产生,在事务结束时收回。请求及其响应拥有相同的事务标识。
OpenPath失败响应消息在公共消息头后可以包含一个可选的消息体。此消息体遵循公共消息体结构,如表3所示。
表3失败响应公共消息体
Status code:8bits,响应状态码,表示请求消息处理的结果。
Rlength:8bits,Reason域的长度,单位16-bit。
Reason:可变长,状态码的文本描述。
RTP中继器需要将提供中继服务的中继服务地址告知控制器;控制器需要将每条路径的下一跳地址告知RTP中继器。传输地址结构如表4所示。
表4传输地址结构
Address Type:8bit,值为1表示IPV4地址,值为2表示IPV6地址。
Port:16bits,传输地址端口。
Address:4字节,传输地址的IP地址部分。
OpenPath请求消息格式
HELLO请求消息在公共消息头之后携带中继服务地址,结构如表5所示。
表5HELLO消息结构
START/STOP/BYE请求消息只包含公共消息头。
ECHO请求消息在公共消息头之后可以携带一个时间戳用来检测控制器和RTP中继器之间的时延。消息结构如表6所示。
表6ECHO消息结构
NTP timestamp:使用NTP时间格式,从1900年1月1日0时开始计时。一共64bits。
NOTIFY/DELETE_PATH请求消息在公共消息头之后携带路径标识符。消息结构如表7所示。
表7NOTIFY/DELETE_PATH消息结构
Path ID:32bits,路径标识符,由控制器在为媒体流分配路径时产生。
ADD_PATH/UPDATE_PATH请求消息在公共消息头之后携带路径的匹配域和结果域。结果域包含下一跳地址和空闲/强制超时时间。消息结构如表8所示。
表8ADD_PATH/UPDATE_PATH消息结构
Idle timeout:16bits,空闲超时时间。
Hard timeout:16bits,强制超时时间。
虽然以上描述了本发明的具体实施方式,但是本领域内的熟练的技术人员应当理解,这些仅是举例说明,可以对这些实施方式做出多种变更或修改,而不背离本发明的原理和实质。本发明的范围仅由所附权利要求书限定。
Claims (10)
1.一种多径实时传输控制系统,其特征在于:包括:
多径RTP代理发送端(1):(a)用于与控制器进行交互:媒体传输之前或媒体传输过程中,以带外信令的方式从控制器收集一条或多条中继路径的路径消息;
(b)根据媒体传输需求,从默认路径和可用的中继路径中选择一条或者多条路径作为活动路径;将媒体数据划分成若干子流;将每个子流绑定到一条活动路径;在每个子流RTP数据包中加入子流控制信息;为每个子流产生子流RTCP发送者报告数据包,子流RTCP发送者报告数据包加入子流标识信息;子流RTP数据包和子流RTCP发送者报告数据包一同沿着子流所绑定的活动路径传送;
(c)用于接收由多径RTP代理接收端发送的RTCP接受者数据包,并根据该数据包的内容,动态调整媒体数据的划分;
多径RTP代理接收端(2):用于根据子流控制信息,将接收到的子流RTP数据包重组为每个子流,再重组为原始媒体流;为每个子流产生子流RTCP接受者报告数据包,沿着默认路径传送给多径RTP代理发送端;
RTP中继器(3):(a)用于为多径RTP代理发送端和多径RTP代理接收端提供中继服务:从多径RTP代理发送端或者上一跳RTP中继器接收到的子流数据包中提取路径标识符,根据路径标识符在路径表中进行匹配查找,若匹配失败,则丢弃该子流数据包;若匹配成功,则按照匹配路径项中的路径信息转发该子流数据包;
(b)用于与控制器进行交互,接收到来自控制器的路径添加请求消息时,RTP中继器检查路径表是否已经存在具有相同路径标识符的路径项,若存在,则拒绝该请求并回复一个添加路径失败响应消息;若不存在,则将路径添加请求消息中的路径信息添加到路径表并回复一个添加路径成功响应消息;接收到来自控制器的路径删除请求消息时,RTP中继器检查路径表是否存在具有指定路径标识符的路径项,若存在,则删除该路径项并回复一个路径删除成功响应消息;若不存在,则回复一个路径删除失败响应消息;
控制器(4):(a)用于为多径RTP代理发送端和多径RTP代理接收端分配中继路径:在接收到来自多径RTP代理发送端的通信请求消息后,分配一条或多条中继路径,并将分配成功的中继路径信息发送给多径RTP代理发送端;
(b)用于与RTP中继器交互进行RTP中继器管理和路径控制:在分配中继路径时,向中继路径上所有的RTP中继器发送路径添加请求消息,若至少一个RTP中继器响应失败,该中继路径分配失败;若中继路径上所有RTP中继器均响应成功,该中继路径分配成功;在删除中继路径时,向中继路径上所有的RTP中继器发送路径删除请求消息。
2.根据权利要求1所述的多径实时传输控制系统,其特征在于:所述的默认路径为多径RTP代理发送端和多径RTP代理接收端之间的由常规RTP会话所协商和建立的路径;
所述的中继路径为多径RTP代理发送端和多径RTP代理接收端之间的经由一个或多个RTP中继器的路径,中继路径由控制器负责分配;
所述的子流控制信息包括路径标识符和子流序列号;
所述的控制器发送给多径RTP代理发送端的中继路径信息包括路径标识符、多径RTP代理发送端的下一跳传输地址。
3.根据权利要求1所述的多径实时传输控制系统,其特征在于:所述的多径RTP代理发送端将同一子流的子流RTP数据包和子流RTCP数据包复用到一个端口,复用的子流RTCP数据包用于保活中继路径,并减少RTP会话使用端口的数量。
4.根据权利要求1所述的多径实时传输控制系统,其特征在于:当活动路径发送故障导致不可用时,所述的多径RTP代理发送端重新进行媒体数据的划分,将故障路径的负载分配给其它活动路径,或者选择一条新的可用路径作为活动路径替换当前故障路径。
5.根据权利要求1所述的多径实时传输控制系统,其特征在于:所述的RTP中继器还根据空闲超时时间和强制超时时间进行路径有效性管理:接收到来自控制器的路径添加请求消息或者路径修改请求消息时,根据请求消息内容为相应路径设定空闲超时时间和强制超时时间,若强制超时时间不为0,则在路径建立后的强制超时时间的时间点强制删除该路径;若强制超时时间为0而空闲超时时间不为0,则标记该路径上子流数据包的到达时间,若在空闲超时时间内没有收到任何匹配数据包,该路径将被删除;若空闲超时时间和强制超时时间均为0,该路径只能在接收到来自控制器的相应的路径删除请求消息后删除。
6.一种多径实时传输控制方法,采用权利要求1所述的多径实时传输控制系统实现,其特征在于:包括以下步骤:
步骤1:在媒体传输之前或者媒体传输过程中,多径RTP代理发送端从控制器收集中继路径的路径信息;
步骤2:多径RTP代理发送端根据传输需求,选择默认路径和一条或多条可用的中继路径作为活动路径用于传输媒体数据包;将整个媒体数据包划分成与活动路径相同个数的子流,并将每个子流绑定到一个活动路径;
步骤3:多径RTP代理发送端在原始RTP数据包格式基础上扩展子流控制信息,产生子流数据包,并根据子流所绑定的路径信息进行发送;
步骤4:RTP中继器接收到子流数据包后,对该子流数据包进行转发;
步骤5:多径RTP代理接收端接收到子流数据包后,首先重组每个子流,然后重组原始RTP流;
步骤6:多径RTP代理接收端计算每个子流的传输统计信息,为每个子流产生子流RTCP接收者报告数据包,并沿着默认路径传送给多径RTP代理发送端;
步骤7:多径RTP代理发送端根据接收到的子流RTCP数据包评价活动路径的性能,根据路径性能对数据重新进行划分和调度,直至媒体数据包传输结束。
7.根据权利要求6所述的多径实时传输控制方法,其特征在于:步骤1所述的收集中继路径的路径信息,包括以下步骤:
步骤1.1:控制器为多径RTP代理发送端和多径RTP代理接收端之间的媒体流分配一个或多个中继路径,并为每条中继路径分配一个唯一的路径标识符;
步骤1.2:控制器向中继路径上所有的RTP中继器发送路径添加请求消息,路径添加请求消息携带路径标识符和下一跳传输地址信息;
步骤1.3:RTP中继器接收到路径添加请求消息后,检查路径表是否已经存在具有相同路径标识符的路径项,若存在,则拒绝该请求并回复路径添加失败响应消息;若不存在,则根据路径添加请求消息中的路径信息添加到路径表并回复路径添加成功响应消息;
步骤1.4:若中继路径上至少一个RTP中继器响应失败,该中继路径分配失败;若中继路径上所有RTP中继器均响应成功,该中继路径分配成功;控制器将分配成功的中继路径信息发送给多径RTP代理发送端,中继路径信息包括路径标识符和多径RTP代理发送端的下一跳传输地址。
8.根据权利要求6所述的多径实时传输控制方法,其特征在于:步骤3所述的子流控制信息包括路径标识符和子流序列号,子流序列号的初始值由多径RTP代理发送端随机产生。
9.根据权利要求6所述的多径实时传输控制方法,其特征在于:步骤4是按照路径标识符来实现子流数据包的转发的。
10.根据权利要求6所述的多径实时传输控制方法,其特征在于:步骤5是按照路径标识符和子流序列号来实现重组每个子流的;根据原始RTP数据包中的序列号和时间戳来重组原始RTP流的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064160.8A CN103166959B (zh) | 2013-02-28 | 2013-02-28 | 一种多径实时传输控制系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310064160.8A CN103166959B (zh) | 2013-02-28 | 2013-02-28 | 一种多径实时传输控制系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103166959A CN103166959A (zh) | 2013-06-19 |
CN103166959B true CN103166959B (zh) | 2015-07-29 |
Family
ID=48589699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310064160.8A Active CN103166959B (zh) | 2013-02-28 | 2013-02-28 | 一种多径实时传输控制系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103166959B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104023006B (zh) * | 2014-05-09 | 2017-02-15 | 东北大学 | 一种基于应用层中继的多径传输系统及方法 |
CN104135468B (zh) * | 2014-07-01 | 2017-04-05 | 东北大学 | 支持多径中继传输的ims会话协商控制系统、装置及方法 |
CN104219090B (zh) * | 2014-08-28 | 2017-05-17 | 东北大学 | 一种媒体多径中继传输业务体验质量协同评价系统及方法 |
US10491525B2 (en) * | 2015-03-10 | 2019-11-26 | Huawei Technologies Co., Ltd. | Traffic engineering feeder for packet switched networks |
CN104836811A (zh) * | 2015-05-26 | 2015-08-12 | 武汉兴图新科电子股份有限公司 | 一种保持传输数据完整的通信端口复用方法 |
CN106506438A (zh) * | 2015-09-08 | 2017-03-15 | 华为技术有限公司 | 一种获取服务质量信息的方法及装置 |
CN105827527B (zh) * | 2016-03-14 | 2019-04-02 | 清华大学 | Sdn网络mptcp子流共享瓶颈路径的发现调整方法 |
CN107370672A (zh) * | 2016-05-11 | 2017-11-21 | 华为技术有限公司 | 路径选择的方法及装置 |
CN106656856B (zh) * | 2016-12-16 | 2019-07-26 | 浙江大学 | 一种抵抗mptcp接收缓冲区阻塞的数据包调度方法 |
CN108366104B (zh) * | 2018-01-29 | 2020-11-13 | 北京奇艺世纪科技有限公司 | 一种数据下载控制方法和装置 |
CN110784402B (zh) * | 2018-07-30 | 2023-07-04 | 中兴通讯股份有限公司 | 路径标识传输方法、装置和计算机可读存储介质 |
CN108965138B (zh) * | 2018-09-14 | 2020-08-25 | 常熟理工学院 | 一种新一代多媒体传感网的实现方法 |
CN110809054B (zh) * | 2019-11-11 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 数据传输方法、装置、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079807A (zh) * | 2007-07-06 | 2007-11-28 | 中国科学院沈阳计算技术研究所有限公司 | 一种控制媒体传输路径的网状中继方法及ip通信系统 |
-
2013
- 2013-02-28 CN CN201310064160.8A patent/CN103166959B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101079807A (zh) * | 2007-07-06 | 2007-11-28 | 中国科学院沈阳计算技术研究所有限公司 | 一种控制媒体传输路径的网状中继方法及ip通信系统 |
Non-Patent Citations (3)
Title |
---|
A New Mechanism of QoS Dynamic Evaluation in Real-time Media Multipath Transmission;Chen Xiao 等;《IEEE》;20121024;第100-104页 * |
基于实时传输协议的QOS研究;刘春华;《计算机与网络》;20100126(第2期);第43-45页 * |
视频会议终端实时传输子系统及其QoS保障的研究与实现;邱宏丰;《中国优秀硕士学位论文全文数据库信息科技辑》;20111215(第12期);第I139-181页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103166959A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103166959B (zh) | 一种多径实时传输控制系统及方法 | |
CN104023006B (zh) | 一种基于应用层中继的多径传输系统及方法 | |
KR100579321B1 (ko) | 가상 멀티캐스트 네트워킹 방법 및 그 시스템 | |
CN101068236B (zh) | 流媒体码率控制方法、系统和设备 | |
US7606227B2 (en) | Method, apparatus and system for distributing multicast data | |
US7564817B2 (en) | Multicast communication method, home agent, and mobile node | |
CN102546382B (zh) | IPv4overIPv6隧道中实现组播的方法和系统 | |
CN106878310B (zh) | 命名数据网络下一种实时流数据分发的方法 | |
CN102027711A (zh) | 多播组管理的方法与设备 | |
JP2006019785A (ja) | 仮想ルータ対応マルチキャストパケット中継装置 | |
CN106454414B (zh) | 一种多径网络实时视频传输方法 | |
MXPA06000670A (es) | Metodo y sistema para proporcionar un enlace de transmision para trafico de emision continua. | |
CN101572650A (zh) | Iptv资源分配方法、装置及系统 | |
CN105262836A (zh) | 服务器推送信息的方法及客户端接收推送信息的方法 | |
CN103916253A (zh) | 一种基于信息中心网络的信息传输方法及其系统 | |
JP2006279937A (ja) | 無線基地局、無線端末および無線アクセスネットワーク | |
CN101572715A (zh) | 多媒体服务创建方法及系统 | |
CN105262682A (zh) | 一种用于电力数据通信的软件定义网络及其流量疏导方法 | |
CN106375222A (zh) | 环型组网组播线路切换的方法及装置 | |
CN100508467C (zh) | 一种转发层代理pim的方法及路由设备 | |
CN100542354C (zh) | 终端配置方法和终端配置系统 | |
WO2021005756A1 (ja) | コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム | |
Lyu et al. | Ndn-based multimedia content distribution in space-ground integration network | |
CN109936603B (zh) | 一种基于http非直联网络通信方法 | |
CN103442286A (zh) | 一种机顶盒文件共享方法及系统 |
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 |