CN105933232A - 支持多业务数据传输需求的多径传输控制终端及方法 - Google Patents
支持多业务数据传输需求的多径传输控制终端及方法 Download PDFInfo
- Publication number
- CN105933232A CN105933232A CN201610187763.0A CN201610187763A CN105933232A CN 105933232 A CN105933232 A CN 105933232A CN 201610187763 A CN201610187763 A CN 201610187763A CN 105933232 A CN105933232 A CN 105933232A
- Authority
- CN
- China
- Prior art keywords
- subflow
- transmission
- stream
- path
- packet
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/825—Involving tunnels, e.g. MPLS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
支持多业务数据传输需求的多径传输控制终端及方法,属于网络通信技术领域。终端设置在数据传输的端点,包括多径会话管理模块、路径管理模块、流划分模块、路径选择模块、子流发送控制模块、子流接收控制模块、整流重组模块、路径传输质量报告模块和路径评价模块。接收到上层应用的数据流时,将数据流划分成流块,为每个流块选取一条路径,调度到同一路径的流块组成一个子流,流块进一步划分成传输单元,并封装成多径传输数据包后传送至对端,并根据对端反馈的路径传输质量,动态调整路径选择策略;接收多径传输数据包时,重组子流数据,进而重组为数据流后传至上层应用。本发明可满足多种业务类型的不同传输需求,且提高了多径传输效率。
Description
技术领域
本发明属于网络通信技术领域,具体涉及一种支持多业务数据传输需求的多径传输控制终端及方法。
背景技术
若业务数据满足并发传输条件,相比单径传输模式,多径传输模式不仅可以减少对单一路径传输质量条件的依赖,拓展端到端的传输能力,而且通过路径冗余和动态负载分发等机制,可实现容错通信,提高传输可靠性。对于文件共享、高清音视频通信等应用,多径传输技术能够有效提高数据传输效率,增加系统伸缩性。
为了实现业务数据的多径传输,除了多条可用的传输路径,还需要相应的多径传输控制机制,完成业务负载的分发、打包、拆包、重组、流控等功能。设计一种高效的多径传输控制机制是至关重要的。低效的多径传输控制机制将导致很多问题,包括负载失衡、数据包乱序、低效的带宽使用等。如果分配到一条路径的负载与路径的带宽和缓存大小等能力不匹配将导致负载失衡问题,从而降低网络性能。数据包乱序是一种数据包到达顺序与发送顺序不一致的网络现象。在多径传输中,由于各条路径的传输性能比如网络带宽、传输延时、延时时延抖动、丢包率等存在一定差异,连续数据包经由不同路径到达接收端之后将面临着更高概率的数据包乱序现象。较早到达的数据包需要缓存在重排序缓冲区,等待较晚到达的数据包,若迟到数据包能够在接收超时之前到达,此数据包的传输是成功的,但是等待时间增加了相应的数据包延时;若迟到数据包没有在接收超时之前到达,此数据包的传输是失败的,按照数据包丢失处理,因而数据包乱序导致更大的丢包率和延时,严重降低多径传输性能。无论是需要可靠传输的数据流还是需要实时传输的数据流,数据包乱序对端到端的用户通信体验均会产生很大影响。
目前的多径传输控制机制具有流量粒度和数据包乱序之间的矛盾。按照数据包粒度对流量进行划分,可以快速和精确地为每条路径分配所期望的流量,但是,当并发路径具有较大的延时差异时,基于数据包的数据流划分策略导致大量的数据包乱序。按照流粒度对流量进行划分,将每个流分配到一个指定路径,虽然可以避免数据包乱序,但是由于流在大小和速率方面通常存在很大差异,很可能为路径分配了不匹配的流量,或者在动态环境下不能快速重新均衡各路径流量,从而导致部分链路发生拥塞降低网络的使用效率。另外,目前已有的多径传输控制机制大多用于骨干网,比如网络中的支持ECMP(Equal-Cost Multi-Path,等价多径路由)的OSPF(Open Shortest Path First,开放最短路径优先)路由器或者MPLS(Multi-Protocol Label Switching,多协议标签交换)入口路由器等,这些路由器将由多个独立流组成的聚合流量进行负载分发,无法满足基于应用层中继的多径传输控制需求。
发明内容
针对现有技术存在的不足,本发明提供一种支持多业务数据传输需求的多径传输控制终端及方法。
本发明的技术方案:
一种支持多业务数据传输需求的多径传输控制终端,设置在数据传输的两端,其包括:
多径会话管理模块,用于处理来自于上层应用的多径传输建立请求,从多径传输建立请求中获得会话信息,创建一个多径传输会话,向路径管理模块发送路径收集请求,向流划分模块和路径选择模块发送会话初始化请求;用于处理来自于上层应用的多径传输拆除请求,向流划分模块发送会话结束请求,向路径管理模块发送路径释放请求,释放多径传输会话;所述会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口;
路径管理模块,用于在接收到路径收集请求时,根据路径收集请求中携带的业务类型、对端数据传输地址和端口、本端数据传输地址和端口,收集本端与对端之间的多条路径信息;用于在接收到路径释放请求时,释放收集到的多条路径;用于在数据传输过程中,周期性地保活多条路径;
流划分模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的业务类型,选定数据流划分策略;用于将上层应用传递过来的数据流按照数据流划分策略划分成流块;用于在接收到结束请求时,生成流结束流块;用于为每个流块分配一个唯一的单调递增的整流序列号,并传递至路径选择模块;
路径选择模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的业务类型,选定路径选择策略;用于按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成一个子流;
子流发送控制模块,用于根据子流中的流块长度,将流块划分成多个传输分组,且将每个传输分组封装成多径传输数据包,并将多径传输数据包通过传输层经由选定路径传送至对端多径传输控制终端;并为每个子流统计相应的子流发送信息;所述子流发送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数;
子流接收控制模块,用于在接收到由传输层传递过来的来自于对端多径传输控制终端的多径传输数据包时,接收并重组子流数据;并为每个子流统计相应的子流接收信息;所述子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动;
整流重组模块,用于按照整流重组策略将不同子流中的流块以整流序列号递增顺序重组为数据流,并传递至上层应用;所述整流重组策略,与业务类型有关,对于面向可靠传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型,若流块按照整流序列号顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓存在接收缓冲区,并为其设置一个定时器:若在定时器超时之前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用,否则在定时器超时之时,将该流块传递至上层应用。
根据所述的支持多业务数据传输需求的多径传输控制终端,该终端还包括:
路径传输质量报告模块,用于根据子流发送控制模块产生的子流发送信息,为每个子流生成子流发送者报告数据包,传送至路径评价模块和对端多径传输控制终端;用于根据子流接收控制模块产生的子流接收信息,为每个子流生成子流接收者报告数据包,传送至对端多径传输控制终端;所述子流发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和子流发送字节数;所述子流接收者报告数据包包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延、接收多径传输数据包的时延抖动;
路径评价模块,用于根据子流发送信息和子流接收者报告数据包,计算每条路径的路径传输质量;用于根据计算出来的路径传输质量生成路径选择策略调整请求,发送至路径选择模块;所述路径传输质量包括传输时延、丢包率和时延抖动;
路径选择模块,用于在接收到来自于路径评价模块的路径选择策略调整请求时,按照业务传输需求调整路径选择策略。
根据所述的支持多业务数据传输需求的多径传输控制终端,所述子流发送控制模块,进一步包括:
流块分片子模块,用于将子流中的流块与最大传输单元MTU进行长度比较,若流块长度大于最大传输单元的长度,则将子流中的流块分成IP层可独立传输的多个传输分组,否则,将流块作为一个传输分组;将传输分组传递至多径传输封装子模块;
多径传输封装子模块,用于将传输分组封装成多径传输数据包,并传递至发送队列控制子模块;所述多径传输数据包头域部分包含子流控制信息;所述子流控制信息包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记;所述子流序列号是多径传输数据包在子流中的顺序号;
发送队列控制子模块,用于将多径传输数据包存放至发送队列,按照发送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端;所述发送控制策略与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,无状态地发送多径传输数据包;
子流发送统计子模块,用于为每个子流统计相应的子流发送信息。
根据所述的支持多业务数据传输需求的多径传输控制终端,所述子流接收控制模块,进一步包括:
接收队列控制子模块,用于将由传输层传递过来的来自于对端多径传输控制终端的的多径传输数据包存放至接收队列,按照接收控制策略逐个接收子流中的多径传输数据包;所述接收控制策略与业务类型有关:对于面向可靠传输的业务类型,利用滑动窗口机制可靠地接收子流中的每个多径传输数据包,并按照子流序列号递增的顺序将多径传输数据包传递至多径传输解封装子模块;对于面向实时传输的业务类型,无状态地接收子流中的多径传输数据包,直接将接收到的多径传输数据包传递至多径传输解封装子模块;
多径传输解封装子模块,用于从多径传输数据包中提取出子流控制信息和传输分组,并将子流控制信息和传输分组传递至流块重组子模块;
流块重组子模块,用于根据流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块,并将流块和子流控制信息传递至整流重组模块;
子流接收统计子模块,用于为每个子流统计相应的子流接收信息。
采用所述的支持多业务数据传输需求的多径传输控制终端的多径传输控制方法,包括:
(1)在接收到来自于上层应用的多径传输建立请求时,从该多径传输建立请求中获得会话信息,创建一个多径传输会话,收集本端与对端之间的多条路径信息;选定数据流划分策略,选定路径选择策略;所述会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口;
(2)在接收到来自于上层应用的数据流时,按照数据流划分策略将该数据流划分成流块,为每个流块分配一个唯一的单调递增的整流序列号,按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成一个子流;将子流数据沿着选定路径传送至对端多径传输控制终端;周期性地保活多条路径;所述将子流数据沿着选定路径传送至对端多径传输控制终端,方法如下:
将流块与最大传输单元MTU进行长度比较,若流块长度大于最大传输单元的长度,则将流块分成IP层可独立传输的多个传输分组;否则,将流块作为一个传输分组;
将传输分组封装成多径传输数据包,所述多径传输数据包头域部分包含子流控制信息;所述子流控制信息包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记;所述子流序列号是多径传输数据包在子流中的顺序号;
将多径传输数据包存放至发送队列,按照发送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端;所述发送控制策略,与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,无状态地发送多径传输数据包;
为每个子流统计相应的子流发送信息;所述子流发送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数;
(3)在接收到由传输层传递过来的来自于对端多径传输控制终端的多径传输数据包时,接收并重组子流数据,按照整流重组策略将流块以整流序列号递增顺序重组为数据流,并传递至上层应用;所述接收并重组子流数据,方法如下:
将接收到的多径传输数据包存放至接收队列,按照接收控制策略逐个接收多径传输数据包;所述接收控制策略与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制可靠地接收每个多径传输数据包;对于面向实时传输的业务类型,无状态地接收多径传输数据包;
从多径传输数据包中提取出子流控制信息和传输分组,根据子流控制信息中的流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块;
为每个子流统计相应的子流接收信息;所述子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动;
所述整流重组策略,与业务类型有关,对于面向可靠传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型,若流块按照整流序列号有序顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓存在接收缓冲区,并为其设置一个定时器,若在定时器超时之前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用;否则在定时器超时之时,将该流块传递至上层应用;
(4)在接收到来自于上层应用的多径传输拆除请求时,生成流结束流块传送至对端多径传输控制终端,释放收集到的多条路径,释放多径传输会话。
根据所述的支持多业务数据传输需求的多径传输控制方法,还包括如下过程:
根据子流发送信息,为每个子流生成子流发送者报告数据包,传送至对端多径传输控制终端;所述子流发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和子流发送字节数;
在接收到由传输层传递过来的来自于对端多径传输控制终端的子流发送者报告数据包时,提取子流发送信息,并结合本端统计的子流接收信息,为每个子流生成子流接收者报告数据包,传送至对端多径传输控制终端;所述子流接收者报告数据包包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延、接收多径传输数据包的时延抖动;
在接收到由传输层传递过来的来自于对端多径传输控制终端的子流接收者报告数据包时,提取子流接收信息,并结合本端统计的子流发送信息,计算每条路径的路径传输质量;根据路径传输质量,调整路径选择策略;所述路径传输质量包括传输时延、丢包率和时延抖动。
根据所述的支持多业务数据传输需求的多径传输控制方法,所述数据流划分策略的选定方法为:对于面向可靠传输的业务类型,流块对应数据流中一段定长的连续的数据,流块大小可以固定,也可以根据数据流大小来确定;对于面向实时传输的业务类型,数据流中的每个数据包对应一个流块。
根据所述的支持多业务数据传输需求的多径传输控制方法,所述路径选择策略的选定方法为:对于面向可靠传输的业务类型,采用最早空闲路径优先的策略,设流块个数为M,路径个数为N,当M≤N时,将流块Bj(1≤j≤M)分配给路径Pj;当M>N时,依次将流块Bj(1≤j≤M)分配给当前空闲的路径;对于面向实时传输的业务类型,若采用多流编码技术,数据流被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,属于同一个编码子流的流块分配至同一条路径;否则,为每个流块独立选择路径;所述多流编码技术,包括分层编码、多描述编码或者面向对象编码。
根据所述的支持多业务数据传输需求的多径传输控制方法,所述为每个流块独立选择路径,方法为:
设路径个数为N,相应的负载划分向量为F=(F1,F2,...,FN),其中Fk(1≤k≤N)表示路径Pk上的负载份额,负载划分向量满足以下条件:
为每条路径设置一个基于字节的赤字计数器,用于记录路径的期望负载和实际负载之间的差值,根据赤字计数器进行路径选择的过程为:
(1)初始化各条路径Pk的赤字计数器DCk=0(1≤k≤N);
(2)在每轮循环的开始,路径的赤字计数器按照相应的负载份额进行增加:
DCk=DCk+Fk×NUMrcvd×PSmean(1≤k≤N)
其中NUMrcvd为一轮循环内发送流块个数的均值;PSmean为流块字节长度的均值;
(3)随机选择一条赤字计数器大于0的路径Pk,当有流块p等待发送时,该流块分配至路径Pk,赤字计数器DCk=DCk-PSp,其中PSp为流块p的长度;只要赤字计数器DCk>0,后续流块仍然分配至路径Pk,即不切换路径;否则,重复步骤(3)随机选取下一个赤字计数器大于0的路径;当所有路径的赤字计数器均不大于0时,重复步骤(2)开启新一轮循环。
本发明的有益效果:通过引入一种新的划分粒度—流块,用于满足多种业务类型的不同传输需求,对于面向可靠传输的业务类型,最大化用户终端的数据吞吐量,缩短数据流的传输时间,而对于面向实时传输的业务类型,减小端到端传输延时和丢包率;通过对路径传输质量的评估动态调整各条路径上的负载份额,不仅能够按照各条路径的实际传输能力进行负载均衡,而且尽量减少由各路径传输性能差异导致的数据包乱序。
附图说明
图1为本发明实施例一的支持多业务数据传输需求的多径传输控制终端功能结构示意图;
图2为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传输建立过程中的流程图;
图3为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传输发送过程中的流程图;
图4为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传输接收过程中的流程图;
图5为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在路径传输质量反馈过程中的流程图;
图6为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传输结束过程中的流程图。
具体实施方式
下面结合附图对本发明作详细说明。
实施例一
本发明实施例一提供的支持多业务数据传输需求的多径传输控制终端,如图1所示,其包括:多径会话管理模块、路径管理模块、流划分模块、路径选择模块、子流发送控制模块、子流接收控制模块、整流重组模块、路径传输质量报告模块和路径评价模块。
多径会话管理模块:(a)用于处理来自于上层应用的多径传输建立请求,从多径传输建立请求中获得会话信息,为即将进行的多径传输创建一个多径传输会话,向路径管理模块发送路径收集请求,向流划分模块和路径选择模块发送会话初始化请求。路径收集请求和会话初始化请求中携带会话信息。会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口。(b)用于处理来自于上层应用的多径传输拆除请求,向流划分模块发送会话结束请求,向路径管理模块发送路径释放请求,最后释放多径传输会话。
路径管理模块:(a)用于在接收到路径收集请求时,根据路径收集请求中携带的业务类型、对端数据传输地址和端口、本端数据传输地址和端口,收集与对端之间的多条路径信息。(b)用于在接收到路径释放请求时,释放收集到的多条路径。(c)用于在数据传输过程中,周期性地保活多条路径。如果一条路径在规定的时间内没有传输数据,中继服务系统将收回分配给该路径的资源,因此,所有路径需要周期性地保活。
流划分模块:(a)用于在接收到会话初始化请求时,根据会话初始化请求中携带的业务类型,选定数据流划分策略。(b)用于在接收到会话结束请求时,生成流结束流块。(c)用于将上层应用传递过来的数据流按照数据流划分策略划分成流块,为每个流块分配一个唯一的单调递增的整流序列号,并传递至路径选择模块。流块是路径选择的基本单元,即流块中的所有数据沿着同一路径传送。流划分模块选用的数据流划分策略跟业务类型有关,对于面向可靠传输的业务类型,比如文件传送等,流块对应输入流中一段定长连续的数据,流块大小可以根据输入流大小等来制定,比如设置为1/4MB或者1MB。对于面向实时传输的业务类型,流划分模块将最小可能的粒度即单个数据包作为流块。每个流块对应一个唯一的单调递增的整流序列号。整流序列号是该流块在数据流中的顺序号,初始值是在多径传输会话建立时由发送端随机产生。
路径选择模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的业务类型,选定路径选择策略。按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成一个子流。对于面向可靠传输的业务类型,可以采用最早空闲路径优先的策略依次将流块分配给当前空闲的路径。对于面向实时传输的业务类型,若采用多流编码技术,比如采用分层编码、多描述编码或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,即属于同一个编码子流的流块分配至同一条路径;否则,为每个流块独立选择路径。在接收到来自于路径评价模块的路径选择策略调整请求时,按照业务传输需求调整路径选择策略。
子流发送控制模块,用于将子流数据沿着选定路径传送,其包括:流块分片子模块、多径传输封装子模块、发送队列控制子模块以及子流发送统计子模块。
流块分片子模块,用于将流块长度与最大传输单元(Maximum Transmission Unit,MTU)大小进行比较,若流块长度大于最大传输单元,则将流块分成IP层可独立传输的多个传输分组;否则,将流块作为一个传输分组;将传输分组传递至多径传输封装子模块;例如,对于面向可靠传输的业务类型,流块大小一般远远大于MTU,需要将其划分成长度为L的传输分组,L设置为MTU减去IP首部20字节、UDP首部8字节以及多径传输数据包首部;对于面向实时传输的业务类型,流块即为离散的数据包,通常情况无需进一步分片,即一个流块对应一个传输分组。
多径传输封装子模块,用于将传输分组封装成多径传输数据包,并传递至发送队列控制子模块。多径传输数据包头域部分包含子流控制信息,包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记。子流序列号是多径传输数据包在子流中的顺序号。不仅用于接收端的流块重组,还用于计算每条路径的传送质量,比如丢包率、时延抖动、往返时间RTT等,子流序列号的初始值是在子流建立时由发送端随机产生。
发送队列控制子模块,用于将多径传输数据包存放至发送队列等待发送,按照发送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端。发送控制策略应该与业务类型有关,对于面向可靠传输的业务类型,发送队列控制过程模仿TCP的发送过程,即利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,发送队列控制过程非常简单,类似传输层UDP协议一样,只需无状态地发送多径传输数据包。
子流发送统计子模块,用于为每个子流统计相应的子流发送信息。子流发送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数等。
子流接收控制模块,用于在接收到由传输层传递过来的来自于对端多径传输控制终端的多径传输数据包时,接收并重组子流数据,其包括:接收队列控制子模块、多径传输解封装子模块、流块重组子模块、子流接收统计子模块。
接收队列控制子模块,用于将通过传输层及网络接收到的来自于对端多径传输控制终端的多径传输数据包存放至接收队列,按照接收控制策略逐个接收多径传输数据包。接收控制策略应该与业务类型有关,对于面向可靠传输的业务类型,模仿TCP的接收过程,即利用滑动窗口机制可靠地接收每个多径传输数据包,并按照子流序列号递增的顺序将多径传输数据包传递至多径传输解封装子模块;对于面向实时传输的业务类型,无状态地接收多径传输数据包,直接将接收到的多径传输数据包传递至多径传输解封装子模块。
多径传输解封装子模块,用于从多径传输数据包中提取出子流控制信息和传输分组,并将子流控制信息和传输分组传递至流块重组子模块。
流块重组子模块,用于根据子流控制信息中的流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块,并将流块和子流控制信息传递至整流重组模块。流块的第一个分组其流块起始标记为1;最后一个分组其流块结束标记为1。每个流块一旦被接收成功,即可提交至整流重组模块。
子流接收统计子模块,用于为每个子流统计相应的子流接收信息。子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动。
整流重组模块,用于按照整流重组策略将流块以整流序列号递增顺序重组为数据流,并传递至上层应用。整流重组策略应该与业务类型有关,对于面向可靠传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型,若流块按照整流序列号有序顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓存在接收缓冲区,并为其设置一个定时器,若在定时器超时之前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用;否则在定时器超时之时,将该流块传递至上层应用。
路径传输质量报告模块,用于根据子流发送控制模块产生的子流发送信息,为每个子流生成子流发送者报告数据包,传送至路径评价模块和对端多径传输控制终端。子流发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和子流发送字节数。用于根据子流接收控制模块产生的子流接收信息,为每个子流生成子流接收者报告数据包,传送至对端多径传输控制终端。子流接收者报告数据包包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延和时延抖动。何时生成子流发送者报告数据包和子流接收者报告数据包也应该与业务类型有关。及时的子流报告可以使得多径传输控制终端能够快速应对路径传送质量的波动以及传输故障等,另外,子流报告数据包所带来的流量开销也是应该被考虑的。
路径评价模块,用于根据子流发送信息和子流接收者报告数据包,计算每条路径的路径传输质量。路径传输质量包括传输时延、丢包率和时延抖动。用于根据计算出来的路径传输质量生成路径选择策略调整请求,发送至路径选择模块。
从图1中可以看出,路径选择模块、子流发送控制模块、子流接收控制模块、整流重组模块、路径传输质量报告模块和路径评价模块形成一个闭环结构,发送端可以根据路径的传输质量反馈和评价信息,重新制定路径选择的调度策略,调整各条路径的负载份额,使得各条路径的负载份额与其传输能力趋于匹配。
实施例二
本发明实施例二提供的采用所述的多业务数据传输需求的多径传输控制终端的多径传输控制方法,该方法的流程如图2、图3、图4、图5和图6所示。
A.在接收到来自于上层应用的多径传输建立请求时,如图2所示,包括如下步骤:
S201、从多径传输建立请求中获得会话信息。
上层应用可以在数据传输之前向多径传输控制终端发送多径传输建立请求,请求采用多条路径传输数据流,也可以在数据传输进行过程中的任何时刻发送多径传输建立请求,由单径传输更新为多径传输。多径传输建立请求中携带着本次通信相关的信息,比如业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口。
S202、创建一个多径传输会话。
在多径传输数据流之前,作为数据流发送方和接收方的两个多径传输控制终端之间需要建立一个多径传输会话,会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口、路径条数、多径传输方式等。
S203、收集本端与对端之间的多条路径信息。
作为数据流发送方的多径传输控制终端负责收集路径。多径传输控制终端向中继传输系统请求分配路径,请求中携带业务类型、数据编码类型、发送方和接收方的数据传输地址和端口等。中继传输系统根据业务类型、双方传输地址等信息分配最优的中继路径,并返回至多径传输控制终端。
S204、选定数据流划分策略。
根据业务类型选定数据流划分策略。对于面向可靠传输的业务类型,比如文件传送等,流块对应数据流中一段定长的连续的数据,流块大小可以固定,也可以根据数据流大小来确定,比如设置为连续的一段1/4MB或者1MB的数据作为一个流块。对于面向实时传输的业务类型,数据流划分策略将最小可能的粒度即数据流中的每个数据包作为一个流块。
S205、选定路径选择策略。
根据业务类型选定路径选择策略。对于面向可靠传输的业务类型,采用最早空闲路径优先的策略,设流块个数为M,路径个数为N,当M≤N时,将流块Bj(1≤j≤M)分配给路径Pj;当M>N时,依次将流块Bj(1≤j≤M)分配给当前空闲的路径;
对于面向实时传输的业务类型,若采用多流编码技术,比如采用分层编码、多描述编码或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,即属于同一个编码子流的流块分配至同一条路径;否则,为每个流块独立选择路径。
B.在接收到来自于上层应用的数据流时,如图3所示,包括如下步骤:
S301、按照数据流划分策略将该数据流划分成流块,为每个流块分配一个唯一的单调递增的整流序列号。
多径传输控制终端中的流划分模块按照数据流划分策略将上层应用传递过来的数据流划分成流块,流块是路径选择的基本单元,即流块中的所有数据沿着同一路径传送。对于面向可靠传输的业务类型,比如文件传送等,流块对应数据流中一段定长的连续的数据,比如设置为连续的一段1/4MB或者1MB的数据作为一个流块;对于面向实时传输的业务类型,待发送数据流通常为由RTP协议封装好的携带有时间戳等信息的离散数据包,流划分模块将最小可能的粒度即单个数据包作为流块。同时,为每个流块分配一个唯一的单调递增的整流序列号。整流序列号是该流块在输入数据流中的顺序号,初始值是在多径传输会话建立时随机产生。
S302、按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成一个子流。
多径传输控制终端中的路径选择模块按照路径选择策略为每个流块独立地选取一条路径。路径选择策略与业务类型、各条路径的传输质量等因素有关。子流由调度到同一路径的流块组成。
对于面向可靠传输的业务类型,采用最早空闲路径优先的策略,设流块个数为M,路径个数为N,当M≤N时,将流块Bj(1≤j≤M)分配给路径Pj;当M>N时,依次将流块Bj(1≤j≤M)分配给当前空闲的路径;
对于采用特定编码的面向实时传输的应用类型,比如采用分层编码、多描述编码或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解码的编码子流,每个编码子流可对应一个流块。对于其它的面向实时传输的应用类型,根据业务类型选定路径选择策略。
对于面向实时传输的业务类型,若采用多流编码技术,比如采用分层编码、多描述编码或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,比如为重要的基础子流分配传输质量最优的路径,属于同一个编码子流的流块分配至同一条路径;否则,为每个流块即每个数据包独立选择路径,方法如下:
设路径个数为N,相应的负载划分向量为F=(F1,F2,...,FN),其中Fk(1≤k≤N)表示路径Pk上的负载份额,负载划分向量满足以下条件:
为每条路径设置一个基于字节的赤字计数器,用于记录路径的期望负载和实际负载之间的差值,根据赤字计数器进行路径选择:
(1)初始化各条路径Pk的赤字计数器DCk=0(1≤k≤N);
(2)在每轮循环的开始,路径的赤字计数器按照相应的负载份额进行增加:
DCk=DCk+Fk×NUMrcvd×PSmean(1≤k≤N)
其中NUMrcvd为一轮循环内发送流块个数的均值,PSmean为流块字节长度的均值
(3)随机选择一条赤字计数器大于0的路径Pk,当有流块p等待发送时,该流块分配至路径Pk,赤字计数器DCk=DCk-PSp,其中PSp为流块p的长度。只要赤字计数器DCk>0,后续流块仍然分配至路径Pk,即不切换路径;否则,重复步骤(3)随机选取下一个赤字计数器大于0的路径。当所有路径的赤字计数器均不大于0时,重复步骤(2)开启新一轮循环。
S303、将子流数据沿着选定路径传送至对端多径传输控制终端。
多径传输控制终端中的子流发送控制模块将流块长度与最大传输单元(MaximumTransmission Unit,MTU)大小进行比较,若流块长度大于最大传输单元,则将流块分成IP层可独立传输的多个传输分组。例如,对于面向可靠传输的业务类型,流块大小一般远远大于MTU,需要将其划分成长度为L的分组,L设置为MTU减去IP首部20字节、UDP首部8字节以及多径传输数据包首部;对于面向实时传输的应用类型,流块即为离散的RTP数据包,通常情况无需进一步分片,即一个流块对应一个分组。
子流发送控制模块将分组按照相应的应用特定的多径传输协议封装成多径传输数据包。多径传输数据包头域部分包含子流控制信息,包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记。路径标识符对应唯一的一条路径,在路径收集过程中由中继服务系统生成,中继服务系统和数据流接收端利用此字段识别一条特定路径以及一条特定子流。子流序列号是多径传输数据包在子流中的顺序号,不仅用于接收端的流块重组,还用于计算每条路径的传送质量,比如丢包率、时延抖动、往返时间RTT等,子流序列号的初始值是在子流建立时随机产生。
子流发送控制模块将多径传输数据包存放至发送队列,按照发送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端。
发送控制策略与业务类型有关,对于面向可靠传输的业务类型,模仿TCP的发送过程,即利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,发送队列控制过程非常简单,类似传输层UDP协议一样,只需无状态地发送多径传输数据包即可。
在发送过程中,子流发送控制模块为每个子流统计相应的子流发送信息。子流发送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数等。
S304、为每个子流生成子流发送者报告,传送至对端多径传输控制终端。
根据子流发送信息,多径传输控制终端中的路径传输质量报告模块为每个子流生成子流发送者报告,传送至对端多径传输控制终端。子流发送者报告包含该报告产生的时间戳、子流发送数据包数和子流发送字节数。
S305、周期性地保活多条路径。
如果一条路径在规定的时间内没有传输数据,中继服务系统将收回分配给该路径的资源,因此,多径传输控制终端需要周期性地保活所有中继路径。
C.在接收到由传输层传递过来的来自于对端多径传输控制终端的数据包时,如图4所示,包括如下步骤:
S401、判断该数据包是否为多径传输数据包,若是,到S402,否则,到S404。
S402、接收并重组子流数据。
子流接收控制模块将接收到的多径传输数据包存放至接收队列,按照接收控制策略逐个接收多径传输数据包。接收控制策略与业务类型有关,对于面向可靠传输的业务类型,模仿TCP的接收过程,即利用滑动窗口机制可靠地接收每个多径传输数据包;对于面向实时传输的业务类型,无状态地接收多径传输数据包;
子流接收控制模块从多径传输数据包中提取出子流控制信息和传输分组,子流控制信息包含流块分片信息即流块起始标记和流块结束标记,以及子流序列号。流块的第一个分组其流块起始标记置为1;最后一个分组其流块结束标记置为1。子流接收控制模块根据流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块。每个流块一旦被接收成功,即可提交至整流重组模块。
在接收过程中,子流接收控制模块为每个子流统计相应的子流接收信息。子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动和往返时延等。
S403、按照整流重组策略将流块以整流序列号递增顺序重组为数据流,并传递至上层应用。
整流重组模块将接收到的流块按照整流序列号重组为原始数据流并传递给上层应用,其行为与业务类型有关。对于面向可靠传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用。对于面向实时传输的业务类型,端到端的传输时延是至关重要的,若流块按照整流序列号有序顺序到达,则将该流块直接传递至上层应用,尽可能地减小缓冲区处理时间,否则,将较早达到的该流块缓存在接收缓冲区,等待较晚到达的流块,由于流块滞留在接收缓冲区的时间是有限的,因为为其设置一个定时器,若在定时器超时之前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用;否则在定时器超时之时,将该流块传递至上层应用。过程结束。
S404、提取子流发送信息。
在接收到由传输层传递过来的来自于对端多径传输控制终端的子流发送者报告数据包时,提取子流发送信息,包括该子流发送者报告产生的时间戳、子流发送数据包数和子流发送字节数。
S405、为每个子流生成子流接收者报告,传送至对端多径传输控制终端。
根据最新接收到的子流发送信息,以及本端最新统计的子流接收信息,为每个子流生成子流接收者报告数据包,并传送至对端多径传输控制终端。子流接收者报告数据包包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延和时延抖动。过程结束。
D.在接收到由传输层传递过来的来自于对端多径传输控制终端的子流接收者报告数据包时,如图5所示,包括如下步骤:
S501、提取子流接收信息。
多径传输控制终端中的路径评价模块从接收到的最新的子流接收者报告数据包中,提取出子流接收信息,包括子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延和时延抖动。
S502、计算每条路径的路径传输质量。
根据子流接收信息中的最新子流发送者报告时间戳和最新子流发送者报告处理时延等信息,计算传输往返时延;根据子流接收信息中的子流接收最高子流序列号和子流接收丢包累积数等信息,计算丢包率。从而计算获得每条路径的路径传输质量,包括传输时延、丢包率和时延抖动。
S503、调整路径选择策略。
根据每条路径的传输质量,动态调整路径选择策略。在实际应用中,可以选择单一传输质量参数比如传输时延作为评价指标,也可以联合选择多个参数比如传输时延和丢包率作为评价指标。为了避免单次测量误差导致路径选择策略的较大幅度波动,在获得新的传输质量参数时,采用加权公式更新,比如,在获得路径p的新的传输时延值dp时,可通过Dp=wDp+(1-w)dp公式更新路径的时延估计值Dp,其中,w为加权系数,默认值设置为15/16。以面向实时传输的业务类型为例,此类应用对数据传送具有时延和时序限制,不仅要求单条路径具有较高的传输性能,而且多条路径之间的传输性能应该是相近的。在多径传输过程中,应该避免使用传输时延以及丢包率过大的路径。当路径p的时延估计值Dp超过了阈值Tdelay,路径p被挂起,p原有承担的负载份额分摊至其它活跃路径。
E.在接收到来自于上层应用的多径传输拆除请求时,如图6所示,包括如下步骤:
S601、生成流结束流块传送至对端多径传输控制终端。
多径传输控制终端中的流划分模块,将数据流中的最后一个流块的最后一个多径传输数据包,或者生成一个负载为空的多径传输数据包,流结束标记置为1,按照相同的发送控制过程传送至对端多径传输控制终端。
S602、释放收集到的多条路径。
作为数据流发送方的多径传输控制终端负责释放路径。多径传输控制终端向中继传输系统请求释放路径,请求中携带路径标识符等。
S603、释放多径传输会话。
在多径传输数据流之后,多径传输控制终端释放为本次数据流传输所分配的多径传输会话资源。
虽然以上描述了本发明的具体实施方式,但是本领域内的熟练的技术人员应当理解,这些仅是举例说明,可以对这些实施方式做出多种变更或修改,而不背离本发明的原理和实质。本发明的范围仅由所附权利要求书限定。
Claims (9)
1.一种支持多业务数据传输需求的多径传输控制终端,其特征在于:设置在数据传输的两端,其包括:
多径会话管理模块,用于处理来自于上层应用的多径传输建立请求,从多径传输建立请求中获得会话信息,创建一个多径传输会话,向路径管理模块发送路径收集请求,向流划分模块和路径选择模块发送会话初始化请求;用于处理来自于上层应用的多径传输拆除请求,向流划分模块发送会话结束请求,向路径管理模块发送路径释放请求,释放多径传输会话;所述会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口;
路径管理模块,用于在接收到路径收集请求时,根据路径收集请求中携带的业务类型、对端数据传输地址和端口、本端数据传输地址和端口,收集本端与对端之间的多条路径信息;用于在接收到路径释放请求时,释放收集到的多条路径;用于在数据传输过程中,周期性地保活多条路径;
流划分模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的业务类型,选定数据流划分策略;用于将上层应用传递过来的数据流按照数据流划分策略划分成流块;用于在接收到结束请求时,生成流结束流块;用于为每个流块分配一个唯一的单调递增的整流序列号,并传递至路径选择模块;
路径选择模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的业务类型,选定路径选择策略;用于按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成一个子流;
子流发送控制模块,用于根据子流中的流块长度,将流块划分成多个传输分组,且将每个传输分组封装成多径传输数据包,并将多径传输数据包通过传输层经由选定路径传送至对端多径传输控制终端;并为每个子流统计相应的子流发送信息;所述子流发送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数;
子流接收控制模块,用于在接收到由传输层传递过来的来自于对端多径传输控制终端的多径传输数据包时,接收并重组子流数据;并为每个子流统计相应的子流接收信息;所述子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动;
整流重组模块,用于按照整流重组策略将不同子流中的流块以整流序列号递增顺序重组为数据流,并传递至上层应用;所述整流重组策略,与业务类型有关,对于面向可靠传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型,若流块按照整流序列号顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓存在接收缓冲区,并为其设置一个定时器:若在定时器超时之前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用,否则在定时器超时之时,将该流块传递至上层应用。
2.根据权利要求1所述的支持多业务数据传输需求的多径传输控制终端,其特征在于:该终端还包括:
路径传输质量报告模块,用于根据子流发送控制模块产生的子流发送信息,为每个子流生成子流发送者报告数据包,传送至路径评价模块和对端多径传输控制终端;用于根据子流接收控制模块产生的子流接收信息,为每个子流生成子流接收者报告数据包,传送至对端多径传输控制终端;所述子流发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和子流发送字节数;所述子流接收者报告数据包包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延、接收多径传输数据包的时延抖动;
路径评价模块,用于根据子流发送信息和子流接收者报告数据包,计算每条路径的路径传输质量;用于根据计算出来的路径传输质量生成路径选择策略调整请求,发送至路径选择模块;所述路径传输质量包括传输时延、丢包率和时延抖动;
路径选择模块,用于在接收到来自于路径评价模块的路径选择策略调整请求时,按照业务传输需求调整路径选择策略。
3.根据权利要求1或2所述的支持多业务数据传输需求的多径传输控制终端,其特征在于:所述子流发送控制模块,进一步包括:
流块分片子模块,用于将子流中的流块与最大传输单元MTU进行长度比较,若流块长度大于最大传输单元的长度,则将子流中的流块分成IP层可独立传输的多个传输分组,否则,将流块作为一个传输分组;将传输分组传递至多径传输封装子模块;
多径传输封装子模块,用于将传输分组封装成多径传输数据包,并传递至发送队列控制子模块;所述多径传输数据包头域部分包含子流控制信息;所述子流控制信息包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记;所述子流序列号是多径传输数据包在子流中的顺序号;
发送队列控制子模块,用于将多径传输数据包存放至发送队列,按照发送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端;所述发送控制策略与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,无状态地发送多径传输数据包;
子流发送统计子模块,用于为每个子流统计相应的子流发送信息。
4.根据权利要求1或2所述的支持多业务数据传输需求的多径传输控制终端,其特征在于:所述子流接收控制模块,进一步包括:
接收队列控制子模块,用于将由传输层传递过来的来自于对端多径传输控制终端的多径传输数据包存放至接收队列,按照接收控制策略逐个接收子流中的多径传输数据包;所述接收控制策略与业务类型有关:对于面向可靠传输的业务类型,利用滑动窗口机制可靠地接收子流中的每个多径传输数据包,并按照子流序列号递增的顺序将多径传输数据包传递至多径传输解封装子模块;对于面向实时传输的业务类型,无状态地接收子流中的多径传输数据包,直接将接收到的多径传输数据包传递至多径传输解封装子模块;
多径传输解封装子模块,用于从多径传输数据包中提取出子流控制信息和传输分组,并将子流控制信息和传输分组传递至流块重组子模块;
流块重组子模块,用于根据流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块,并将流块和子流控制信息传递至整流重组模块;
子流接收统计子模块,用于为每个子流统计相应的子流接收信息。
5.采用权利要求1所述的支持多业务数据传输需求的多径传输控制终端的多径传输控制方法,其特征在于:包括:
(1)在接收到来自于上层应用的多径传输建立请求时,从该多径传输建立请求中获得会话信息,创建一个多径传输会话,收集本端与对端之间的多条路径信息;选定数据流划分策略,选定路径选择策略;所述会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口;
(2)在接收到来自于上层应用的数据流时,按照数据流划分策略将该数据流划分成流块,为每个流块分配一个唯一的单调递增的整流序列号,按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成一个子流;将子流数据沿着选定路径传送至对端多径传输控制终端;周期性地保活多条路径;所述将子流数据沿着选定路径传送至对端多径传输控制终端,方法如下:
将流块与最大传输单元MTU进行长度比较,若流块长度大于最大传输单元的长度,则将流块分成IP层可独立传输的多个传输分组;否则,将流块作为一个传输分组;
将传输分组封装成多径传输数据包,所述多径传输数据包头域部分包含子流控制信息;所述子流控制信息包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记;所述子流序列号是多径传输数据包在子流中的顺序号;
将多径传输数据包存放至发送队列,按照发送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端;所述发送控制策略,与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,无状态地发送多径传输数据包;
为每个子流统计相应的子流发送信息;所述子流发送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数;
(3)在接收到由传输层传递过来的来自于对端多径传输控制终端的多径传输数据包时,接收并重组子流数据,按照整流重组策略将流块以整流序列号递增顺序重组为数据流,并传递至上层应用;所述接收并重组子流数据,方法如下:
将接收到的多径传输数据包存放至接收队列,按照接收控制策略逐个接收多径传输数据包;所述接收控制策略与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制可靠地接收每个多径传输数据包;对于面向实时传输的业务类型,无状态地接收多径传输数据包;
从多径传输数据包中提取出子流控制信息和传输分组,根据子流控制信息中的流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块;
为每个子流统计相应的子流接收信息;所述子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动;
所述整流重组策略,与业务类型有关,对于面向可靠传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型,若流块按照整流序列号有序顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓存在接收缓冲区,并为其设置一个定时器,若在定时器超时之前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用;否则在定时器超时之时,将该流块传递至上层应用;
(4)在接收到来自于上层应用的多径传输拆除请求时,生成流结束流块传送至对端多径传输控制终端,释放收集到的多条路径,释放多径传输会话。
6.根据权利要求5所述的支持多业务数据传输需求的多径传输控制方法,其特征在于:还包括如下过程:
根据子流发送信息,为每个子流生成子流发送者报告数据包,传送至对端多径传输控制终端;所述子流发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和子流发送字节数;
在接收到由传输层传递过来的来自于对端多径传输控制终端的子流发送者报告数据包时,提取子流发送信息,并结合本端统计的子流接收信息,为每个子流生成子流接收者报告数据包,传送至对端多径传输控制终端;所述子流接收者报告数据包包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延、接收多径传输数据包的时延抖动;
在接收到由传输层传递过来的来自于对端多径传输控制终端的子流接收者报告数据包时,提取子流接收信息,并结合本端统计的子流发送信息,计算每条路径的路径传输质量;根据路径传输质量,调整路径选择策略;所述路径传输质量包括传输时延、丢包率和时延抖动。
7.根据权利要求5所述的支持多业务数据传输需求的多径传输控制方法,其特征在于:所述数据流划分策略的选定方法为:对于面向可靠传输的业务类型,流块对应数据流中一段定长的连续的数据,流块大小可以固定,也可以根据数据流大小来确定;对于面向实时传输的业务类型,数据流中的每个数据包对应一个流块。
8.根据权利要求5或6所述的支持多业务数据传输需求的多径传输控制方法,其特征在于:所述路径选择策略的选定方法为:对于面向可靠传输的业务类型,采用最早空闲路径优先的策略,设流块个数为M,路径个数为N,当M≤N时,将流块Bj(1≤j≤M)分配给路径Pj;当M>N时,依次将流块Bj(1≤j≤M)分配给当前空闲的路径;对于面向实时传输的业务类型,若采用多流编码技术,数据流被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,属于同一个编码子流的流块分配至同一条路径;否则,为每个流块独立选择路径;所述多流编码技术,包括分层编码、多描述编码或者面向对象编码。
9.根据权利要求8所述的支持多业务数据传输需求的多径传输控制方法,其特征在于:所述为每个流块独立选择路径,方法为:
设路径个数为N,相应的负载划分向量为F=(F1,F2,...,FN),其中Fk(1≤k≤N)表示路径Pk上的负载份额,负载划分向量满足以下条件:
为每条路径设置一个基于字节的赤字计数器,用于记录路径的期望负载和实际负载之间的差值,根据赤字计数器进行路径选择的过程为:
(1)初始化各条路径Pk的赤字计数器DCk=0(1≤k≤N);
(2)在每轮循环的开始,路径的赤字计数器按照相应的负载份额进行增加:
DCk=DCk+Fk×NUMrcvd×PSmean(1≤k≤N)
其中NUMrcvd为一轮循环内发送流块个数的均值;PSmean为流块字节长度的均值;
(3)随机选择一条赤字计数器大于0的路径Pk,当有流块p等待发送时,该流块分配至路径Pk,赤字计数器DCk=DCk-PSp,其中PSp为流块p的长度;只要赤字计数器DCk>0,后续流块仍然分配至路径Pk,即不切换路径;否则,重复步骤(3)随机选取下一个赤字计数器大于0的路径;当所有路径的赤字计数器均不大于0时,重复步骤(2)开启新一轮循环。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610187763.0A CN105933232B (zh) | 2016-03-29 | 2016-03-29 | 支持多业务数据传输需求的多径传输控制终端及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610187763.0A CN105933232B (zh) | 2016-03-29 | 2016-03-29 | 支持多业务数据传输需求的多径传输控制终端及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105933232A true CN105933232A (zh) | 2016-09-07 |
CN105933232B CN105933232B (zh) | 2018-10-23 |
Family
ID=56840389
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610187763.0A Active CN105933232B (zh) | 2016-03-29 | 2016-03-29 | 支持多业务数据传输需求的多径传输控制终端及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105933232B (zh) |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656676A (zh) * | 2017-01-05 | 2017-05-10 | 国网新疆电力公司信息通信公司 | 存储链路的选择方法及装置 |
CN106656852A (zh) * | 2016-12-30 | 2017-05-10 | 国网浙江省电力公司绍兴供电公司 | 一种实现报文二选一的电路结构 |
CN106713170A (zh) * | 2016-12-30 | 2017-05-24 | 杭州迪普科技股份有限公司 | 一种vsm通道的报文分片方法及装置 |
CN106850426A (zh) * | 2017-01-10 | 2017-06-13 | 北京交通大学 | 基于部分数据重叠的多路径数据传输方法和装置 |
CN108206781A (zh) * | 2016-12-16 | 2018-06-26 | 华为技术有限公司 | 选择转发路径的方法和设备 |
WO2018133496A1 (zh) * | 2017-01-20 | 2018-07-26 | 华为技术有限公司 | 一种报负载分担方法及网络设备 |
CN108377254A (zh) * | 2017-02-01 | 2018-08-07 | 瞻博网络公司 | 负载均衡中的一致流指派 |
CN108965121A (zh) * | 2017-05-19 | 2018-12-07 | 华为技术有限公司 | 传输数据的方法、主机和交换机 |
CN109120534A (zh) * | 2018-08-23 | 2019-01-01 | 北京理工大学 | 一种求解多商品流最大并发流的流偏差算法 |
CN109714793A (zh) * | 2017-10-26 | 2019-05-03 | 中国移动通信集团四川有限公司 | 负荷调整方法、装置、设备及存储介质 |
WO2019084822A1 (zh) * | 2017-10-31 | 2019-05-09 | 华为技术有限公司 | 通信方法、设备及系统 |
CN110113142A (zh) * | 2019-04-28 | 2019-08-09 | 天通畅达(深圳)科技有限公司 | 基于多个数据通道并发捆绑承载大数据量业务的传输方法及系统 |
CN110233705A (zh) * | 2019-06-11 | 2019-09-13 | 北京深蓝航天科技有限公司 | 基于无线通信方式的信号传输系统 |
CN110311756A (zh) * | 2019-07-08 | 2019-10-08 | 山东省地质矿产勘查开发局八〇一水文地质工程地质大队 | 一种地下物质探测监控系统及探测监控方法 |
CN110418168A (zh) * | 2019-08-05 | 2019-11-05 | 黄颖 | 一种流媒体传输方法 |
CN110708377A (zh) * | 2019-09-30 | 2020-01-17 | 联想(北京)有限公司 | 一种数据传输方法、装置和存储介质 |
CN111225021A (zh) * | 2019-11-13 | 2020-06-02 | 北京连山时代科技有限公司 | 一种基于文件破碎与重组的多链路并发传输方法和系统 |
CN111464340A (zh) * | 2020-03-19 | 2020-07-28 | 北京大学深圳研究生院 | 一种网络控制方法、数据转发方法及软件定义网络 |
CN111740903A (zh) * | 2017-04-11 | 2020-10-02 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN111787580A (zh) * | 2019-01-14 | 2020-10-16 | Oppo广东移动通信有限公司 | 一种数据流处理方法、设备及存储介质 |
CN111817886A (zh) * | 2020-06-29 | 2020-10-23 | 新华三信息安全技术有限公司 | 一种获取管理对象数据的方法及设备 |
WO2021129763A1 (zh) * | 2019-12-24 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 业务传输方法及装置、计算机可读的存储介质、电子装置 |
CN113169935A (zh) * | 2018-10-01 | 2021-07-23 | 思杰系统有限公司 | 用于saas应用的多链路广域网连接的系统和方法 |
CN113328940A (zh) * | 2020-02-28 | 2021-08-31 | 中国电信股份有限公司 | 路径选择方法和装置、接入网关和通信系统 |
CN113407652A (zh) * | 2021-05-24 | 2021-09-17 | 北京建筑大学 | 一种基于3dps的时空数据模型 |
WO2022143468A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 数据传输方法、装置、系统及存储介质 |
CN114785757A (zh) * | 2022-03-31 | 2022-07-22 | 东北大学 | 一种面向实时会话类业务的多径传输控制方法 |
WO2024098815A1 (zh) * | 2022-11-08 | 2024-05-16 | 中兴通讯股份有限公司 | 一种数据传输处理方法、装置、存储介质及电子装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895466A (zh) * | 2010-07-02 | 2010-11-24 | 北京交通大学 | 一种降低sctp多路径传输数据包乱序影响的方法 |
CN102185771A (zh) * | 2011-05-05 | 2011-09-14 | 清华大学 | Mptcp中发送方数据包调度方法及系统 |
US20150100858A1 (en) * | 2012-11-08 | 2015-04-09 | Q Factor Communications Corp. | Method & apparatus for improving the performance of tcp and other network protocols in a communication network |
-
2016
- 2016-03-29 CN CN201610187763.0A patent/CN105933232B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895466A (zh) * | 2010-07-02 | 2010-11-24 | 北京交通大学 | 一种降低sctp多路径传输数据包乱序影响的方法 |
CN102185771A (zh) * | 2011-05-05 | 2011-09-14 | 清华大学 | Mptcp中发送方数据包调度方法及系统 |
US20150100858A1 (en) * | 2012-11-08 | 2015-04-09 | Q Factor Communications Corp. | Method & apparatus for improving the performance of tcp and other network protocols in a communication network |
Non-Patent Citations (2)
Title |
---|
刘少伟等: "多径中继传输系统网络仿真设计与实现", 《北京邮电大学学报》 * |
张伟等: "基于应用层流量优化的中继路径选择方案", 《计算机工程与科学》 * |
Cited By (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108206781A (zh) * | 2016-12-16 | 2018-06-26 | 华为技术有限公司 | 选择转发路径的方法和设备 |
US10917341B2 (en) | 2016-12-16 | 2021-02-09 | Huawei Technologies Co., Ltd. | Forwarding path selection method and device |
CN106656852B (zh) * | 2016-12-30 | 2019-02-15 | 国网浙江省电力公司绍兴供电公司 | 一种实现报文二选一的电路结构 |
CN106656852A (zh) * | 2016-12-30 | 2017-05-10 | 国网浙江省电力公司绍兴供电公司 | 一种实现报文二选一的电路结构 |
CN106713170A (zh) * | 2016-12-30 | 2017-05-24 | 杭州迪普科技股份有限公司 | 一种vsm通道的报文分片方法及装置 |
CN106656676A (zh) * | 2017-01-05 | 2017-05-10 | 国网新疆电力公司信息通信公司 | 存储链路的选择方法及装置 |
CN106850426A (zh) * | 2017-01-10 | 2017-06-13 | 北京交通大学 | 基于部分数据重叠的多路径数据传输方法和装置 |
CN106850426B (zh) * | 2017-01-10 | 2020-09-29 | 北京交通大学 | 基于部分数据重叠的多路径数据传输方法和装置 |
CN108337182A (zh) * | 2017-01-20 | 2018-07-27 | 华为技术有限公司 | 一种报负载分担方法及网络设备 |
US10999210B2 (en) | 2017-01-20 | 2021-05-04 | Huawei Technologies Co., Ltd. | Load sharing method and network device |
CN108337182B (zh) * | 2017-01-20 | 2020-06-02 | 华为技术有限公司 | 一种报负载分担方法及网络设备 |
WO2018133496A1 (zh) * | 2017-01-20 | 2018-07-26 | 华为技术有限公司 | 一种报负载分担方法及网络设备 |
CN108377254A (zh) * | 2017-02-01 | 2018-08-07 | 瞻博网络公司 | 负载均衡中的一致流指派 |
CN111740903A (zh) * | 2017-04-11 | 2020-10-02 | 华为技术有限公司 | 一种数据传输方法及装置 |
CN108965121A (zh) * | 2017-05-19 | 2018-12-07 | 华为技术有限公司 | 传输数据的方法、主机和交换机 |
CN109714793A (zh) * | 2017-10-26 | 2019-05-03 | 中国移动通信集团四川有限公司 | 负荷调整方法、装置、设备及存储介质 |
CN109714793B (zh) * | 2017-10-26 | 2022-04-01 | 中国移动通信集团四川有限公司 | 负荷调整方法、装置、设备及存储介质 |
WO2019084822A1 (zh) * | 2017-10-31 | 2019-05-09 | 华为技术有限公司 | 通信方法、设备及系统 |
US12058561B2 (en) | 2017-10-31 | 2024-08-06 | Huawei Technologies Co., Ltd. | Communication method, device, and system |
US11689958B2 (en) | 2017-10-31 | 2023-06-27 | Huawei Technologies Co., Ltd. | Communication method, device, and system |
CN109120534B (zh) * | 2018-08-23 | 2020-07-28 | 北京理工大学 | 一种求解多商品流最大并发流的流偏差方法 |
CN109120534A (zh) * | 2018-08-23 | 2019-01-01 | 北京理工大学 | 一种求解多商品流最大并发流的流偏差算法 |
CN113169935A (zh) * | 2018-10-01 | 2021-07-23 | 思杰系统有限公司 | 用于saas应用的多链路广域网连接的系统和方法 |
US11533138B2 (en) | 2019-01-14 | 2022-12-20 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | Method, device, and storage medium for processing data flow |
CN111787580A (zh) * | 2019-01-14 | 2020-10-16 | Oppo广东移动通信有限公司 | 一种数据流处理方法、设备及存储介质 |
CN110113142A (zh) * | 2019-04-28 | 2019-08-09 | 天通畅达(深圳)科技有限公司 | 基于多个数据通道并发捆绑承载大数据量业务的传输方法及系统 |
CN110233705B (zh) * | 2019-06-11 | 2022-04-26 | 江苏深蓝航天有限公司 | 基于无线通信方式的信号传输系统 |
CN110233705A (zh) * | 2019-06-11 | 2019-09-13 | 北京深蓝航天科技有限公司 | 基于无线通信方式的信号传输系统 |
CN110311756A (zh) * | 2019-07-08 | 2019-10-08 | 山东省地质矿产勘查开发局八〇一水文地质工程地质大队 | 一种地下物质探测监控系统及探测监控方法 |
CN110311756B (zh) * | 2019-07-08 | 2022-06-07 | 山东省地质矿产勘查开发局八〇一水文地质工程地质大队 | 一种地下物质探测监控系统及探测监控方法 |
CN110418168A (zh) * | 2019-08-05 | 2019-11-05 | 黄颖 | 一种流媒体传输方法 |
CN110418168B (zh) * | 2019-08-05 | 2020-11-20 | 北京神州数码云科信息技术有限公司 | 一种流媒体传输方法 |
CN110708377A (zh) * | 2019-09-30 | 2020-01-17 | 联想(北京)有限公司 | 一种数据传输方法、装置和存储介质 |
CN111225021A (zh) * | 2019-11-13 | 2020-06-02 | 北京连山时代科技有限公司 | 一种基于文件破碎与重组的多链路并发传输方法和系统 |
WO2021129763A1 (zh) * | 2019-12-24 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 业务传输方法及装置、计算机可读的存储介质、电子装置 |
CN113328940A (zh) * | 2020-02-28 | 2021-08-31 | 中国电信股份有限公司 | 路径选择方法和装置、接入网关和通信系统 |
CN113328940B (zh) * | 2020-02-28 | 2022-06-03 | 中国电信股份有限公司 | 路径选择方法和装置、接入网关和通信系统 |
CN111464340A (zh) * | 2020-03-19 | 2020-07-28 | 北京大学深圳研究生院 | 一种网络控制方法、数据转发方法及软件定义网络 |
CN111817886A (zh) * | 2020-06-29 | 2020-10-23 | 新华三信息安全技术有限公司 | 一种获取管理对象数据的方法及设备 |
CN111817886B (zh) * | 2020-06-29 | 2023-12-26 | 新华三信息安全技术有限公司 | 一种获取管理对象数据的方法及设备 |
WO2022143468A1 (zh) * | 2020-12-31 | 2022-07-07 | 华为技术有限公司 | 数据传输方法、装置、系统及存储介质 |
CN113407652A (zh) * | 2021-05-24 | 2021-09-17 | 北京建筑大学 | 一种基于3dps的时空数据模型 |
CN114785757A (zh) * | 2022-03-31 | 2022-07-22 | 东北大学 | 一种面向实时会话类业务的多径传输控制方法 |
CN114785757B (zh) * | 2022-03-31 | 2023-10-20 | 东北大学 | 一种面向实时会话类业务的多径传输控制方法 |
WO2024098815A1 (zh) * | 2022-11-08 | 2024-05-16 | 中兴通讯股份有限公司 | 一种数据传输处理方法、装置、存储介质及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105933232B (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105933232A (zh) | 支持多业务数据传输需求的多径传输控制终端及方法 | |
KR102318021B1 (ko) | 이동 통신 네트워크 내 다중 링크 상에서의 패킷 분배 방법 및 장치 | |
US9385960B2 (en) | TCP congestion control for heterogeneous networks | |
Matsuzono et al. | Low latency low loss streaming using in-network coding and caching | |
US9813933B2 (en) | Multi-stream service concurrent transmission method, subsystem, system and multi-interface terminal | |
CN104954206A (zh) | 一种多路径并行传输系统的乱序分析方法 | |
CN101404622A (zh) | 基于多径负载均衡的无线互联网拥塞控制方法及控制器 | |
Zhang et al. | Congestion control and packet scheduling for multipath real time video streaming | |
CN104782091A (zh) | 通信系统、接收终端、发送终端及流量控制方法 | |
US20200120152A1 (en) | Edge node control | |
Zhang et al. | A general framework of multipath transport system based on application-level relay | |
Audah et al. | QoS based Admission Control using Multipath Scheduler for IP over Satellite Networks. | |
Papageorge et al. | Passive aggressive measurement with MGRP | |
Halepoto et al. | Scheduling over dissimilar paths using CMT-SCTP | |
Khan et al. | Exploiting QUIC multi-streaming over NTN: Delay-based scheduling policies | |
CN107302504B (zh) | 一种基于虚拟发送队列的多路传输调度方法及系统 | |
Sahu et al. | Traffic splitting for end-to-end delay jitter control in uplink multi-access systems | |
Kim et al. | ECLAT: An ECN marking system for latency guarantee in cellular networks | |
Amend et al. | In-network Support for Packet Reordering for Multiaccess Transport Layer Tunneling | |
Malkowski et al. | Interaction between UMTS MAC scheduling and TCP flow control mechanisms | |
Tsai et al. | A concurrent multi-path transmission control scheme to reduce packet reordering latency at the receiver | |
Sarwar et al. | Mitigating the impact of packet reordering to maximize performance of multimedia applications | |
Zhang et al. | An optimized BBR for multipath real time video streaming | |
Rajiullah et al. | Optimizing PR-SCTP performance using NR-SACKs | |
Khan Blanco et al. | Exploiting QUIC multi-streaming over NTN: delay-based scheduling policies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |