支持多业务数据传输需求的多径传输控制终端及方法

文档序号:10572589阅读:578来源:国知局
支持多业务数据传输需求的多径传输控制终端及方法
【专利摘要】支持多业务数据传输需求的多径传输控制终端及方法,属于网络通信技术领域。终端设置在数据传输的端点,包括多径会话管理模块、路径管理模块、流划分模块、路径选择模块、子流发送控制模块、子流接收控制模块、整流重组模块、路径传输质量报告模块和路径评价模块。接收到上层应用的数据流时,将数据流划分成流块,为每个流块选取一条路径,调度到同一路径的流块组成一个子流,流块进一步划分成传输单元,并封装成多径传输数据包后传送至对端,并根据对端反馈的路径传输质量,动态调整路径选择策略;接收多径传输数据包时,重组子流数据,进而重组为数据流后传至上层应用。本发明可满足多种业务类型的不同传输需求,且提高了多径传输效率。
【专利说明】
支持多业务数据传输需求的多径传输控制终端及方法
技术领域
[0001] 本发明属于网络通信技术领域,具体涉及一种支持多业务数据传输需求的多径传 输控制终端及方法。
【背景技术】
[0002] 若业务数据满足并发传输条件,相比单径传输模式,多径传输模式不仅可以减少 对单一路径传输质量条件的依赖,拓展端到端的传输能力,而且通过路径冗余和动态负载 分发等机制,可实现容错通信,提高传输可靠性。对于文件共享、高清音视频通信等应用,多 径传输技术能够有效提高数据传输效率,增加系统伸缩性。
[0003] 为了实现业务数据的多径传输,除了多条可用的传输路径,还需要相应的多径传 输控制机制,完成业务负载的分发、打包、拆包、重组、流控等功能。设计一种高效的多径传 输控制机制是至关重要的。低效的多径传输控制机制将导致很多问题,包括负载失衡、数据 包乱序、低效的带宽使用等。如果分配到一条路径的负载与路径的带宽和缓存大小等能力 不匹配将导致负载失衡问题,从而降低网络性能。数据包乱序是一种数据包到达顺序与发 送顺序不一致的网络现象。在多径传输中,由于各条路径的传输性能比如网络带宽、传输延 时、延时时延抖动、丢包率等存在一定差异,连续数据包经由不同路径到达接收端之后将面 临着更高概率的数据包乱序现象。较早到达的数据包需要缓存在重排序缓冲区,等待较晚 到达的数据包,若迟到数据包能够在接收超时之前到达,此数据包的传输是成功的,但是等 待时间增加了相应的数据包延时;若迟到数据包没有在接收超时之前到达,此数据包的传 输是失败的,按照数据包丢失处理,因而数据包乱序导致更大的丢包率和延时,严重降低多 径传输性能。无论是需要可靠传输的数据流还是需要实时传输的数据流,数据包乱序对端 到端的用户通信体验均会产生很大影响。
[0004] 目前的多径传输控制机制具有流量粒度和数据包乱序之间的矛盾。按照数据包粒 度对流量进行划分,可以快速和精确地为每条路径分配所期望的流量,但是,当并发路径具 有较大的延时差异时,基于数据包的数据流划分策略导致大量的数据包乱序。按照流粒度 对流量进行划分,将每个流分配到一个指定路径,虽然可以避免数据包乱序,但是由于流在 大小和速率方面通常存在很大差异,很可能为路径分配了不匹配的流量,或者在动态环境 下不能快速重新均衡各路径流量,从而导致部分链路发生拥塞降低网络的使用效率。另外, 目前已有的多径传输控制机制大多用于骨干网,比如网络中的支持ECMP(Equa 1 -Cost Multi-Path,等价多径路由)的0SPF(0pen Shortest Path First,开放最短路径优先)路由 器或者MPLS(Multi_Protocol Label Switching,多协议标签交换)入口路由器等,这些路 由器将由多个独立流组成的聚合流量进行负载分发,无法满足基于应用层中继的多径传输 控制需求。

【发明内容】

[0005] 针对现有技术存在的不足,本发明提供一种支持多业务数据传输需求的多径传输 控制终端及方法。
[0006] 本发明的技术方案:
[0007] -种支持多业务数据传输需求的多径传输控制终端,设置在数据传输的两端,其 包括:
[0008] 多径会话管理模块,用于处理来自于上层应用的多径传输建立请求,从多径传输 建立请求中获得会话信息,创建一个多径传输会话,向路径管理模块发送路径收集请求,向 流划分模块和路径选择模块发送会话初始化请求;用于处理来自于上层应用的多径传输拆 除请求,向流划分模块发送会话结束请求,向路径管理模块发送路径释放请求,释放多径传 输会话;所述会话信息包括业务类型、数据编码类型、对端数据传输地址和端口、本端数据 传输地址和端口;
[0009] 路径管理模块,用于在接收到路径收集请求时,根据路径收集请求中携带的业务 类型、对端数据传输地址和端口、本端数据传输地址和端口,收集本端与对端之间的多条路 径信息;用于在接收到路径释放请求时,释放收集到的多条路径;用于在数据传输过程中, 周期性地保活多条路径;
[0010] 流划分模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的业 务类型,选定数据流划分策略;用于将上层应用传递过来的数据流按照数据流划分策略划 分成流块;用于在接收到结束请求时,生成流结束流块;用于为每个流块分配一个唯一的单 调递增的整流序列号,并传递至路径选择模块;
[0011] 路径选择模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的 业务类型,选定路径选择策略;用于按照路径选择策略为每个流块选取一条路径,调度到同 一路径的流块组成一个子流;
[0012] 子流发送控制模块,用于根据子流中的流块长度,将流块划分成多个传输分组,且 将每个传输分组封装成多径传输数据包,并将多径传输数据包通过传输层经由选定路径传 送至对端多径传输控制终端;并为每个子流统计相应的子流发送信息;所述子流发送信息 包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数;
[0013] 子流接收控制模块,用于在接收到由传输层传递过来的来自于对端多径传输控制 终端的多径传输数据包时,接收并重组子流数据;并为每个子流统计相应的子流接收信息; 所述子流接收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动;
[0014] 整流重组模块,用于按照整流重组策略将不同子流中的流块以整流序列号递增顺 序重组为数据流,并传递至上层应用;所述整流重组策略,与业务类型有关,对于面向可靠 传输的业务类型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序 列号、流起始标记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传 输的业务类型,若流块按照整流序列号顺序到达,则将该流块直接传递至上层应用,否则, 将该流块缓存在接收缓冲区,并为其设置一个定时器:若在定时器超时之前接收到了整流 序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用,否则在定时器超时 之时,将该流块传递至上层应用。
[0015] 根据所述的支持多业务数据传输需求的多径传输控制终端,该终端还包括:
[0016] 路径传输质量报告模块,用于根据子流发送控制模块产生的子流发送信息,为每 个子流生成子流发送者报告数据包,传送至路径评价模块和对端多径传输控制终端;用于 根据子流接收控制模块产生的子流接收信息,为每个子流生成子流接收者报告数据包,传 送至对端多径传输控制终端;所述子流发送者报告数据包包含该报告产生的时间戳、子流 发送数据包数和子流发送字节数;所述子流接收者报告数据包包含子流接收最高子流序列 号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延、接 收多径传输数据包的时延抖动;
[0017] 路径评价模块,用于根据子流发送信息和子流接收者报告数据包,计算每条路径 的路径传输质量;用于根据计算出来的路径传输质量生成路径选择策略调整请求,发送至 路径选择模块;所述路径传输质量包括传输时延、丢包率和时延抖动;
[0018] 路径选择模块,用于在接收到来自于路径评价模块的路径选择策略调整请求时, 按照业务传输需求调整路径选择策略。
[0019] 根据所述的支持多业务数据传输需求的多径传输控制终端,所述子流发送控制模 块,进一步包括:
[0020] 流块分片子模块,用于将子流中的流块与最大传输单元MTU进行长度比较,若流块 长度大于最大传输单元的长度,则将子流中的流块分成IP层可独立传输的多个传输分组, 否则,将流块作为一个传输分组;将传输分组传递至多径传输封装子模块;
[0021] 多径传输封装子模块,用于将传输分组封装成多径传输数据包,并传递至发送队 列控制子模块;所述多径传输数据包头域部分包含子流控制信息;所述子流控制信息包括 整流序列号、路径标识符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束 标记;所述子流序列号是多径传输数据包在子流中的顺序号;
[0022] 发送队列控制子模块,用于将多径传输数据包存放至发送队列,按照发送控制策 略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端;所述 发送控制策略与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗口机制发送多 径传输数据包,并实现流量控制、差错控制和重传控制;对于面向实时传输的业务类型,无 状态地发送多径传输数据包;
[0023] 子流发送统计子模块,用于为每个子流统计相应的子流发送信息。
[0024] 根据所述的支持多业务数据传输需求的多径传输控制终端,所述子流接收控制模 块,进一步包括:
[0025] 接收队列控制子模块,用于将由传输层传递过来的来自于对端多径传输控制终端 的的多径传输数据包存放至接收队列,按照接收控制策略逐个接收子流中的多径传输数据 包;所述接收控制策略与业务类型有关:对于面向可靠传输的业务类型,利用滑动窗口机制 可靠地接收子流中的每个多径传输数据包,并按照子流序列号递增的顺序将多径传输数据 包传递至多径传输解封装子模块;对于面向实时传输的业务类型,无状态地接收子流中的 多径传输数据包,直接将接收到的多径传输数据包传递至多径传输解封装子模块;
[0026] 多径传输解封装子模块,用于从多径传输数据包中提取出子流控制信息和传输分 组,并将子流控制信息和传输分组传递至流块重组子模块;
[0027] 流块重组子模块,用于根据流块起始标记、流块结束标记以及子流序列号,将传输 分组重组成流块,并将流块和子流控制信息传递至整流重组模块;
[0028] 子流接收统计子模块,用于为每个子流统计相应的子流接收信息。
[0029] 采用所述的支持多业务数据传输需求的多径传输控制终端的多径传输控制方法, 包括:
[0030] (1)在接收到来自于上层应用的多径传输建立请求时,从该多径传输建立请求中 获得会话信息,创建一个多径传输会话,收集本端与对端之间的多条路径信息;选定数据流 划分策略,选定路径选择策略;所述会话信息包括业务类型、数据编码类型、对端数据传输 地址和端口、本端数据传输地址和端口;
[0031 ] (2)在接收到来自于上层应用的数据流时,按照数据流划分策略将该数据流划分 成流块,为每个流块分配一个唯一的单调递增的整流序列号,按照路径选择策略为每个流 块选取一条路径,调度到同一路径的流块组成一个子流;将子流数据沿着选定路径传送至 对端多径传输控制终端;周期性地保活多条路径;所述将子流数据沿着选定路径传送至对 端多径传输控制终端,方法如下:
[0032] 将流块与最大传输单元MTU进行长度比较,若流块长度大于最大传输单元的长度, 则将流块分成IP层可独立传输的多个传输分组;否则,将流块作为一个传输分组;
[0033] 将传输分组封装成多径传输数据包,所述多径传输数据包头域部分包含子流控制 信息;所述子流控制信息包括整流序列号、路径标识符、流起始标记、流结束标记、子流序列 号、流块起始标记、流块结束标记;所述子流序列号是多径传输数据包在子流中的顺序号;
[0034] 将多径传输数据包存放至发送队列,按照发送控制策略将多径传输数据包传递至 传输层,并经由多条路径发送至对端多径传输控制终端;所述发送控制策略,与业务类型有 关,对于面向可靠传输的业务类型,利用滑动窗口机制发送多径传输数据包,并实现流量控 制、差错控制和重传控制;对于面向实时传输的业务类型,无状态地发送多径传输数据包;
[0035] 为每个子流统计相应的子流发送信息;所述子流发送信息包括子流发送最高子流 序列号、子流发送数据包数和子流发送字节数;
[0036] (3)在接收到由传输层传递过来的来自于对端多径传输控制终端的多径传输数据 包时,接收并重组子流数据,按照整流重组策略将流块以整流序列号递增顺序重组为数据 流,并传递至上层应用;所述接收并重组子流数据,方法如下:
[0037] 将接收到的多径传输数据包存放至接收队列,按照接收控制策略逐个接收多径传 输数据包;所述接收控制策略与业务类型有关,对于面向可靠传输的业务类型,利用滑动窗 口机制可靠地接收每个多径传输数据包;对于面向实时传输的业务类型,无状态地接收多 径传输数据包;
[0038] 从多径传输数据包中提取出子流控制信息和传输分组,根据子流控制信息中的流 块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块;
[0039] 为每个子流统计相应的子流接收信息;所述子流接收信息包括子流接收最高子流 序列号、子流接收丢包累积数、时延抖动;
[0040] 所述整流重组策略,与业务类型有关,对于面向可靠传输的业务类型,根据整流序 列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标 记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型,若流块按照整 流序列号有序顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓存在接收缓冲 区,并为其设置一个定时器,若在定时器超时之前接收到了整流序列号小于该流块的所有 其它流块,则立即将该流块传递至上层应用;否则在定时器超时之时,将该流块传递至上层 应用;
[0041] (4)在接收到来自于上层应用的多径传输拆除请求时,生成流结束流块传送至对 端多径传输控制终端,释放收集到的多条路径,释放多径传输会话。
[0042] 根据所述的支持多业务数据传输需求的多径传输控制方法,还包括如下过程:
[0043] 根据子流发送信息,为每个子流生成子流发送者报告数据包,传送至对端多径传 输控制终端;所述子流发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和 子流发送字节数;
[0044] 在接收到由传输层传递过来的来自于对端多径传输控制终端的子流发送者报告 数据包时,提取子流发送信息,并结合本端统计的子流接收信息,为每个子流生成子流接收 者报告数据包,传送至对端多径传输控制终端;所述子流接收者报告数据包包含子流接收 最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告 处理时延、接收多径传输数据包的时延抖动;
[0045] 在接收到由传输层传递过来的来自于对端多径传输控制终端的子流接收者报告 数据包时,提取子流接收信息,并结合本端统计的子流发送信息,计算每条路径的路径传输 质量;根据路径传输质量,调整路径选择策略;所述路径传输质量包括传输时延、丢包率和 时延抖动。
[0046] 根据所述的支持多业务数据传输需求的多径传输控制方法,所述数据流划分策略 的选定方法为:对于面向可靠传输的业务类型,流块对应数据流中一段定长的连续的数据, 流块大小可以固定,也可以根据数据流大小来确定;对于面向实时传输的业务类型,数据流 中的每个数据包对应一个流块。
[0047] 根据所述的支持多业务数据传输需求的多径传输控制方法,所述路径选择策略的 选定方法为:对于面向可靠传输的业务类型,采用最早空闲路径优先的策略,设流块个数为 Μ,路径个数为N,当MSN时,将流块Bj (1 < j<M)分配给路径Pj;当M>N时,依次将流块Bj (1彡 j<M)分配给当前空闲的路径;对于面向实时传输的业务类型,若采用多流编码技术,数据 流被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编码 子流选择路径,属于同一个编码子流的流块分配至同一条路径;否则,为每个流块独立选择 路径;所述多流编码技术,包括分层编码、多描述编码或者面向对象编码。
[0048]根据所述的支持多业务数据传输需求的多径传输控制方法,所述为每个流块独立 选择路径,方法为:
[0049] 设路径个数为N,相应的负载划分向量为. . .,Fn),其中Fk(l<k<N)表 示路径Pk上的负载份额,负载划分向量满足以下条件:
[0050]
[0051] 为每条路径设置一个基于字节的赤字计数器,用于记录路径的期望负载和实际负 载之间的差值,根据赤字计数器进行路径选择的过程为:
[0052] (1)初始化各条路径Pk的赤字计数器DCk = 0( l<k<N);
[0053] (2)在每轮循环的开始,路径的赤字计数器按照相应的负载份额进行增加:
[0054] DCk = DCk+Fk X NUMrcvd X PSmean(1 ^k^N)
[0055] 其中NUMrCTd为一轮循环内发送流块个数的均值;PSm_为流块字节长度的均值;
[0056] (3)随机选择一条赤字计数器大于0的路径Pk,当有流块p等待发送时,该流块分配 至路径Pk,赤字计数器DCk = DCk_PSP,其中PSP为流块p的长度;只要赤字计数器DCk>0,后续 流块仍然分配至路径Pk,即不切换路径;否则,重复步骤(3)随机选取下一个赤字计数器大 于0的路径;当所有路径的赤字计数器均不大于0时,重复步骤(2)开启新一轮循环。
[0057]本发明的有益效果:通过引入一种新的划分粒度一流块,用于满足多种业务类型 的不同传输需求,对于面向可靠传输的业务类型,最大化用户终端的数据吞吐量,缩短数据 流的传输时间,而对于面向实时传输的业务类型,减小端到端传输延时和丢包率;通过对路 径传输质量的评估动态调整各条路径上的负载份额,不仅能够按照各条路径的实际传输能 力进行负载均衡,而且尽量减少由各路径传输性能差异导致的数据包乱序。
【附图说明】
[0058] 图1为本发明实施例一的支持多业务数据传输需求的多径传输控制终端功能结构 示意图;
[0059] 图2为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传 输建立过程中的流程图;
[0060] 图3为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传 输发送过程中的流程图;
[0061] 图4为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传 输接收过程中的流程图;
[0062] 图5为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在路径传 输质量反馈过程中的流程图;
[0063] 图6为本发明实施例二的支持多业务数据传输需求的多径传输控制方法在多径传 输结束过程中的流程图。
【具体实施方式】
[0064] 下面结合附图对本发明作详细说明。
[0065] 实施例一
[0066] 本发明实施例一提供的支持多业务数据传输需求的多径传输控制终端,如图1所 示,其包括:多径会话管理模块、路径管理模块、流划分模块、路径选择模块、子流发送控制 模块、子流接收控制模块、整流重组模块、路径传输质量报告模块和路径评价模块。
[0067]多径会话管理模块:(a)用于处理来自于上层应用的多径传输建立请求,从多径传 输建立请求中获得会话信息,为即将进行的多径传输创建一个多径传输会话,向路径管理 模块发送路径收集请求,向流划分模块和路径选择模块发送会话初始化请求。路径收集请 求和会话初始化请求中携带会话信息。会话信息包括业务类型、数据编码类型、对端数据传 输地址和端口、本端数据传输地址和端口。(b)用于处理来自于上层应用的多径传输拆除请 求,向流划分模块发送会话结束请求,向路径管理模块发送路径释放请求,最后释放多径传 输会话。
[0068]路径管理模块:(a)用于在接收到路径收集请求时,根据路径收集请求中携带的业 务类型、对端数据传输地址和端口、本端数据传输地址和端口,收集与对端之间的多条路径 信息。(b)用于在接收到路径释放请求时,释放收集到的多条路径。(C)用于在数据传输过程 中,周期性地保活多条路径。如果一条路径在规定的时间内没有传输数据,中继服务系统将 收回分配给该路径的资源,因此,所有路径需要周期性地保活。
[0069] 流划分模块:(a)用于在接收到会话初始化请求时,根据会话初始化请求中携带的 业务类型,选定数据流划分策略。(b)用于在接收到会话结束请求时,生成流结束流块。(c) 用于将上层应用传递过来的数据流按照数据流划分策略划分成流块,为每个流块分配一个 唯一的单调递增的整流序列号,并传递至路径选择模块。流块是路径选择的基本单元,即流 块中的所有数据沿着同一路径传送。流划分模块选用的数据流划分策略跟业务类型有关, 对于面向可靠传输的业务类型,比如文件传送等,流块对应输入流中一段定长连续的数据, 流块大小可以根据输入流大小等来制定,比如设置为1/4MB或者1MB。对于面向实时传输的 业务类型,流划分模块将最小可能的粒度即单个数据包作为流块。每个流块对应一个唯一 的单调递增的整流序列号。整流序列号是该流块在数据流中的顺序号,初始值是在多径传 输会话建立时由发送端随机产生。
[0070] 路径选择模块,用于在接收到会话初始化请求时,根据会话初始化请求中携带的 业务类型,选定路径选择策略。按照路径选择策略为每个流块选取一条路径,调度到同一路 径的流块组成一个子流。对于面向可靠传输的业务类型,可以采用最早空闲路径优先的策 略依次将流块分配给当前空闲的路径。对于面向实时传输的业务类型,若采用多流编码技 术,比如采用分层编码、多描述编码或者面向对象编码等多流编码技术的视频通信,一个视 频源被编码成多个可以独立解码的编码子流,则根据编码子流的重要性和负载大小,为编 码子流选择路径,即属于同一个编码子流的流块分配至同一条路径;否则,为每个流块独立 选择路径。在接收到来自于路径评价模块的路径选择策略调整请求时,按照业务传输需求 调整路径选择策略。
[0071] 子流发送控制模块,用于将子流数据沿着选定路径传送,其包括:流块分片子模 块、多径传输封装子模块、发送队列控制子模块以及子流发送统计子模块。
[0072]流块分片子模块,用于将流块长度与最大传输单元(Maximum Transmission Unit,MTU)大小进行比较,若流块长度大于最大传输单元,则将流块分成IP层可独立传输的 多个传输分组;否则,将流块作为一个传输分组;将传输分组传递至多径传输封装子模块; 例如,对于面向可靠传输的业务类型,流块大小一般远远大于MTU,需要将其划分成长度为L 的传输分组,L设置为MTU减去IP首部20字节、UDP首部8字节以及多径传输数据包首部;对于 面向实时传输的业务类型,流块即为离散的数据包,通常情况无需进一步分片,即一个流块 对应一个传输分组。
[0073]多径传输封装子模块,用于将传输分组封装成多径传输数据包,并传递至发送队 列控制子模块。多径传输数据包头域部分包含子流控制信息,包括整流序列号、路径标识 符、流起始标记、流结束标记、子流序列号、流块起始标记、流块结束标记。子流序列号是多 径传输数据包在子流中的顺序号。不仅用于接收端的流块重组,还用于计算每条路径的传 送质量,比如丢包率、时延抖动、往返时间RTT等,子流序列号的初始值是在子流建立时由发 送端随机产生。
[0074]发送队列控制子模块,用于将多径传输数据包存放至发送队列等待发送,按照发 送控制策略将多径传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终 端。发送控制策略应该与业务类型有关,对于面向可靠传输的业务类型,发送队列控制过程 模仿TCP的发送过程,即利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控 制和重传控制;对于面向实时传输的业务类型,发送队列控制过程非常简单,类似传输层 UDP协议一样,只需无状态地发送多径传输数据包。
[0075] 子流发送统计子模块,用于为每个子流统计相应的子流发送信息。子流发送信息 包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数等。
[0076] 子流接收控制模块,用于在接收到由传输层传递过来的来自于对端多径传输控制 终端的多径传输数据包时,接收并重组子流数据,其包括:接收队列控制子模块、多径传输 解封装子模块、流块重组子模块、子流接收统计子模块。
[0077] 接收队列控制子模块,用于将通过传输层及网络接收到的来自于对端多径传输控 制终端的多径传输数据包存放至接收队列,按照接收控制策略逐个接收多径传输数据包。 接收控制策略应该与业务类型有关,对于面向可靠传输的业务类型,模仿TCP的接收过程, 即利用滑动窗口机制可靠地接收每个多径传输数据包,并按照子流序列号递增的顺序将多 径传输数据包传递至多径传输解封装子模块;对于面向实时传输的业务类型,无状态地接 收多径传输数据包,直接将接收到的多径传输数据包传递至多径传输解封装子模块。
[0078] 多径传输解封装子模块,用于从多径传输数据包中提取出子流控制信息和传输分 组,并将子流控制信息和传输分组传递至流块重组子模块。
[0079] 流块重组子模块,用于根据子流控制信息中的流块起始标记、流块结束标记以及 子流序列号,将传输分组重组成流块,并将流块和子流控制信息传递至整流重组模块。流块 的第一个分组其流块起始标记为1;最后一个分组其流块结束标记为1。每个流块一旦被接 收成功,即可提交至整流重组模块。
[0080] 子流接收统计子模块,用于为每个子流统计相应的子流接收信息。子流接收信息 包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动。
[0081 ]整流重组模块,用于按照整流重组策略将流块以整流序列号递增顺序重组为数据 流,并传递至上层应用。整流重组策略应该与业务类型有关,对于面向可靠传输的业务类 型,根据整流序列号向对端多径传输控制终端进行选择性确认,根据整流序列号、流起始标 记和流结束标记将流块重组为数据流,并传递至上层应用;对于面向实时传输的业务类型, 若流块按照整流序列号有序顺序到达,则将该流块直接传递至上层应用,否则,将该流块缓 存在接收缓冲区,并为其设置一个定时器,若在定时器超时之前接收到了整流序列号小于 该流块的所有其它流块,则立即将该流块传递至上层应用;否则在定时器超时之时,将该流 块传递至上层应用。
[0082]路径传输质量报告模块,用于根据子流发送控制模块产生的子流发送信息,为每 个子流生成子流发送者报告数据包,传送至路径评价模块和对端多径传输控制终端。子流 发送者报告数据包包含该报告产生的时间戳、子流发送数据包数和子流发送字节数。用于 根据子流接收控制模块产生的子流接收信息,为每个子流生成子流接收者报告数据包,传 送至对端多径传输控制终端。子流接收者报告数据包包含子流接收最高子流序列号、子流 接收丢包累积数、最新子流发送者报告时间戳、最新子流发送者报告处理时延和时延抖动。 何时生成子流发送者报告数据包和子流接收者报告数据包也应该与业务类型有关。及时的 子流报告可以使得多径传输控制终端能够快速应对路径传送质量的波动以及传输故障等, 另外,子流报告数据包所带来的流量开销也是应该被考虑的。
[0083] 路径评价模块,用于根据子流发送信息和子流接收者报告数据包,计算每条路径 的路径传输质量。路径传输质量包括传输时延、丢包率和时延抖动。用于根据计算出来的路 径传输质量生成路径选择策略调整请求,发送至路径选择模块。
[0084] 从图1中可以看出,路径选择模块、子流发送控制模块、子流接收控制模块、整流重 组模块、路径传输质量报告模块和路径评价模块形成一个闭环结构,发送端可以根据路径 的传输质量反馈和评价信息,重新制定路径选择的调度策略,调整各条路径的负载份额,使 得各条路径的负载份额与其传输能力趋于匹配。
[0085] 实施例二
[0086] 本发明实施例二提供的采用所述的多业务数据传输需求的多径传输控制终端的 多径传输控制方法,该方法的流程如图2、图3、图4、图5和图6所示。
[0087] A.在接收到来自于上层应用的多径传输建立请求时,如图2所示,包括如下步骤:
[0088] S201、从多径传输建立请求中获得会话信息。
[0089] 上层应用可以在数据传输之前向多径传输控制终端发送多径传输建立请求,请求 采用多条路径传输数据流,也可以在数据传输进行过程中的任何时刻发送多径传输建立请 求,由单径传输更新为多径传输。多径传输建立请求中携带着本次通信相关的信息,比如业 务类型、数据编码类型、对端数据传输地址和端口、本端数据传输地址和端口。
[0090] S202、创建一个多径传输会话。
[0091] 在多径传输数据流之前,作为数据流发送方和接收方的两个多径传输控制终端之 间需要建立一个多径传输会话,会话信息包括业务类型、数据编码类型、对端数据传输地址 和端口、本端数据传输地址和端口、路径条数、多径传输方式等。
[0092] S203、收集本端与对端之间的多条路径信息。
[0093] 作为数据流发送方的多径传输控制终端负责收集路径。多径传输控制终端向中继 传输系统请求分配路径,请求中携带业务类型、数据编码类型、发送方和接收方的数据传输 地址和端口等。中继传输系统根据业务类型、双方传输地址等信息分配最优的中继路径,并 返回至多径传输控制终端。
[0094] S204、选定数据流划分策略。
[0095]根据业务类型选定数据流划分策略。对于面向可靠传输的业务类型,比如文件传 送等,流块对应数据流中一段定长的连续的数据,流块大小可以固定,也可以根据数据流大 小来确定,比如设置为连续的一段1/4MB或者1MB的数据作为一个流块。对于面向实时传输 的业务类型,数据流划分策略将最小可能的粒度即数据流中的每个数据包作为一个流块。 [0096] S205、选定路径选择策略。
[0097] 根据业务类型选定路径选择策略。对于面向可靠传输的业务类型,采用最早空闲 路径优先的策略,设流块个数为Μ,路径个数为N,当MSN时,将流块叫(1 < j <M)分配给路径 Pj;当Μ>N时,依次将流块Bj (1彡j )分配给当前空闲的路径;
[0098] 对于面向实时传输的业务类型,若采用多流编码技术,比如采用分层编码、多描述 编码或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解 码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,即属于同一个 编码子流的流块分配至同一条路径;否则,为每个流块独立选择路径。
[0099] B.在接收到来自于上层应用的数据流时,如图3所示,包括如下步骤:
[0100] S301、按照数据流划分策略将该数据流划分成流块,为每个流块分配一个唯一的 单调递增的整流序列号。
[0101]多径传输控制终端中的流划分模块按照数据流划分策略将上层应用传递过来的 数据流划分成流块,流块是路径选择的基本单元,即流块中的所有数据沿着同一路径传送。 对于面向可靠传输的业务类型,比如文件传送等,流块对应数据流中一段定长的连续的数 据,比如设置为连续的一段1/4MB或者1MB的数据作为一个流块;对于面向实时传输的业务 类型,待发送数据流通常为由RTP协议封装好的携带有时间戳等信息的离散数据包,流划分 模块将最小可能的粒度即单个数据包作为流块。同时,为每个流块分配一个唯一的单调递 增的整流序列号。整流序列号是该流块在输入数据流中的顺序号,初始值是在多径传输会 话建立时随机产生。
[0102] S302、按照路径选择策略为每个流块选取一条路径,调度到同一路径的流块组成 一个子流。
[0103] 多径传输控制终端中的路径选择模块按照路径选择策略为每个流块独立地选取 一条路径。路径选择策略与业务类型、各条路径的传输质量等因素有关。子流由调度到同一 路径的流块组成。
[0104] 对于面向可靠传输的业务类型,采用最早空闲路径优先的策略,设流块个数为M, 路径个数为N,当MSN时,将流块Bj (1 < j<M)分配给路径Pj;当M>N时,依次将流块Bj (1 < j <M)分配给当前空闲的路径;
[0105] 对于采用特定编码的面向实时传输的应用类型,比如采用分层编码、多描述编码 或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解码的 编码子流,每个编码子流可对应一个流块。对于其它的面向实时传输的应用类型,根据业务 类型选定路径选择策略。
[0106] 对于面向实时传输的业务类型,若采用多流编码技术,比如采用分层编码、多描述 编码或者面向对象编码等多流编码技术的视频通信,一个视频源被编码成多个可以独立解 码的编码子流,则根据编码子流的重要性和负载大小,为编码子流选择路径,比如为重要的 基础子流分配传输质量最优的路径,属于同一个编码子流的流块分配至同一条路径;否则, 为每个流块即每个数据包独立选择路径,方法如下:
[0107] 设路径个数为N,相应的负载划分向量为. . .,Fn),其中Fk(l彡k彡N)表 示路径Pk上的负载份额,负载划分向量满足以下条件:
[0108]
[0109] 为每条路径设置一个基于字节的赤字计数器,用于记录路径的期望负载和实际负 载之间的差值,根据赤字计数器进行路径选择:
[0110] (1)初始化各条路径Pk的赤字计数器DCk = 0( l<k<N);
[0111] (2)在每轮循环的开始,路径的赤字计数器按照相应的负载份额进行增加:
[0112] DCk = DCk+Fk X NUMrcvd X PSmean (1 ^ k ^ N )
[0113] 其中NUMrcvd为一轮循环内发送流块个数的均值,PSm_S流块字节长度的均值
[0114] (3)随机选择一条赤字计数器大于0的路径Pk,当有流块p等待发送时,该流块分配 至路径Pk,赤字计数器DCk = DCk_PSP,其中PSP为流块p的长度。只要赤字计数器DCk>0,后续 流块仍然分配至路径Pk,即不切换路径;否则,重复步骤(3)随机选取下一个赤字计数器大 于0的路径。当所有路径的赤字计数器均不大于0时,重复步骤(2)开启新一轮循环。
[0115] S303、将子流数据沿着选定路径传送至对端多径传输控制终端。
[0116] 多径传输控制终端中的子流发送控制模块将流块长度与最大传输单元(Maximum Transmission Unit,MTU)大小进行比较,若流块长度大于最大传输单元,则将流块分成IP 层可独立传输的多个传输分组。例如,对于面向可靠传输的业务类型,流块大小一般远远大 于MTU,需要将其划分成长度为L的分组,L设置为MTU减去IP首部20字节、UDP首部8字节以及 多径传输数据包首部;对于面向实时传输的应用类型,流块即为离散的RTP数据包,通常情 况无需进一步分片,即一个流块对应一个分组。
[0117] 子流发送控制模块将分组按照相应的应用特定的多径传输协议封装成多径传输 数据包。多径传输数据包头域部分包含子流控制信息,包括整流序列号、路径标识符、流起 始标记、流结束标记、子流序列号、流块起始标记、流块结束标记。路径标识符对应唯一的一 条路径,在路径收集过程中由中继服务系统生成,中继服务系统和数据流接收端利用此字 段识别一条特定路径以及一条特定子流。子流序列号是多径传输数据包在子流中的顺序 号,不仅用于接收端的流块重组,还用于计算每条路径的传送质量,比如丢包率、时延抖动、 往返时间RTT等,子流序列号的初始值是在子流建立时随机产生。
[0118] 子流发送控制模块将多径传输数据包存放至发送队列,按照发送控制策略将多径 传输数据包传递至传输层,并经由多条路径发送至对端多径传输控制终端。
[0119] 发送控制策略与业务类型有关,对于面向可靠传输的业务类型,模仿TCP的发送过 程,即利用滑动窗口机制发送多径传输数据包,并实现流量控制、差错控制和重传控制;对 于面向实时传输的业务类型,发送队列控制过程非常简单,类似传输层UDP协议一样,只需 无状态地发送多径传输数据包即可。
[0120] 在发送过程中,子流发送控制模块为每个子流统计相应的子流发送信息。子流发 送信息包括子流发送最高子流序列号、子流发送数据包数和子流发送字节数等。
[0121] S304、为每个子流生成子流发送者报告,传送至对端多径传输控制终端。
[0122] 根据子流发送信息,多径传输控制终端中的路径传输质量报告模块为每个子流生 成子流发送者报告,传送至对端多径传输控制终端。子流发送者报告包含该报告产生的时 间戳、子流发送数据包数和子流发送字节数。
[0123] S305、周期性地保活多条路径。
[0124] 如果一条路径在规定的时间内没有传输数据,中继服务系统将收回分配给该路径 的资源,因此,多径传输控制终端需要周期性地保活所有中继路径。
[0125] C.在接收到由传输层传递过来的来自于对端多径传输控制终端的数据包时,如图 4所示,包括如下步骤:
[0126] S401、判断该数据包是否为多径传输数据包,若是,到S402,否则,到S404。
[0127] S402、接收并重组子流数据。
[0128] 子流接收控制模块将接收到的多径传输数据包存放至接收队列,按照接收控制策 略逐个接收多径传输数据包。接收控制策略与业务类型有关,对于面向可靠传输的业务类 型,模仿TCP的接收过程,即利用滑动窗口机制可靠地接收每个多径传输数据包;对于面向 实时传输的业务类型,无状态地接收多径传输数据包;
[0129] 子流接收控制模块从多径传输数据包中提取出子流控制信息和传输分组,子流控 制信息包含流块分片信息即流块起始标记和流块结束标记,以及子流序列号。流块的第一 个分组其流块起始标记置为1;最后一个分组其流块结束标记置为1。子流接收控制模块根 据流块起始标记、流块结束标记以及子流序列号,将传输分组重组成流块。每个流块一旦被 接收成功,即可提交至整流重组模块。
[0130] 在接收过程中,子流接收控制模块为每个子流统计相应的子流接收信息。子流接 收信息包括子流接收最高子流序列号、子流接收丢包累积数、时延抖动和往返时延等。
[0131] S403、按照整流重组策略将流块以整流序列号递增顺序重组为数据流,并传递至 上层应用。
[0132] 整流重组模块将接收到的流块按照整流序列号重组为原始数据流并传递给上层 应用,其行为与业务类型有关。对于面向可靠传输的业务类型,根据整流序列号向对端多径 传输控制终端进行选择性确认,根据整流序列号、流起始标记和流结束标记将流块重组为 数据流,并传递至上层应用。对于面向实时传输的业务类型,端到端的传输时延是至关重要 的,若流块按照整流序列号有序顺序到达,则将该流块直接传递至上层应用,尽可能地减小 缓冲区处理时间,否则,将较早达到的该流块缓存在接收缓冲区,等待较晚到达的流块,由 于流块滞留在接收缓冲区的时间是有限的,因为为其设置一个定时器,若在定时器超时之 前接收到了整流序列号小于该流块的所有其它流块,则立即将该流块传递至上层应用;否 则在定时器超时之时,将该流块传递至上层应用。过程结束。
[0133] S404、提取子流发送信息。
[0134] 在接收到由传输层传递过来的来自于对端多径传输控制终端的子流发送者报告 数据包时,提取子流发送信息,包括该子流发送者报告产生的时间戳、子流发送数据包数和 子流发送字节数。
[0135] S405、为每个子流生成子流接收者报告,传送至对端多径传输控制终端。
[0136] 根据最新接收到的子流发送信息,以及本端最新统计的子流接收信息,为每个子 流生成子流接收者报告数据包,并传送至对端多径传输控制终端。子流接收者报告数据包 包含子流接收最高子流序列号、子流接收丢包累积数、最新子流发送者报告时间戳、最新子 流发送者报告处理时延和时延抖动。过程结束。
[0137] D.在接收到由传输层传递过来的来自于对端多径传输控制终端的子流接收者报 告数据包时,如图5所示,包括如下步骤:
[0138] S501、提取子流接收信息。
[0139] 多径传输控制终端中的路径评价模块从接收到的最新的子流接收者报告数据包 中,提取出子流接收信息,包括子流接收最高子流序列号、子流接收丢包累积数、最新子流 发送者报告时间戳、最新子流发送者报告处理时延和时延抖动。
[0140] S502、计算每条路径的路径传输质量。
[0141]根据子流接收信息中的最新子流发送者报告时间戳和最新子流发送者报告处理 时延等信息,计算传输往返时延;根据子流接收信息中的子流接收最高子流序列号和子流 接收丢包累积数等信息,计算丢包率。从而计算获得每条路径的路径传输质量,包括传输时 延、丢包率和时延抖动。
[0142] S503、调整路径选择策略。
[0143] 根据每条路径的传输质量,动态调整路径选择策略。在实际应用中,可以选择单一 传输质量参数比如传输时延作为评价指标,也可以联合选择多个参数比如传输时延和丢包 率作为评价指标。为了避免单次测量误差导致路径选择策略的较大幅度波动,在获得新的 传输质量参数时,采用加权公式更新,比如,在获得路径P的新的传输时延值d P时,可通过DP =wDP+(l-w)dP公式更新路径的时延估计值DP,其中,w为加权系数,默认值设置为15/16。以 面向实时传输的业务类型为例,此类应用对数据传送具有时延和时序限制,不仅要求单条 路径具有较高的传输性能,而且多条路径之间的传输性能应该是相近的。在多径传输过程 中,应该避免使用传输时延以及丢包率过大的路径。当路径P的时延估计值D P超过了阈值 Td(3lay,路径p被挂起,p原有承担的负载份额分摊至其它活跃路径。
[0144] E.在接收到来自于上层应用的多径传输拆除请求时,如图6所示,包括如下步骤:
[0145] S601、生成流结束流块传送至对端多径传输控制终端。
[0146] 多径传输控制终端中的流划分模块,将数据流中的最后一个流块的最后一个多径 传输数据包,或者生成一个负载为空的多径传输数据包,流结束标记置为1,按照相同的发 送控制过程传送至对端多径传输控制终端。
[0147] S602、释放收集到的多条路径。
[0148] 作为数据流发送方的多径传输控制终端负责释放路径。多径传输控制终端向中继 传输系统请求释放路径,请求中携带路径标识符等。
[0149] S603、释放多径传输会话。
[0150] 在多径传输数据流之后,多径传输控制终端释放为本次数据流传输所分配的多径 传输会话资源。
[0151]虽然以上描述了本发明的【具体实施方式】,但是本领域内的熟练的技术人员应当理 解,这些仅是举例说明,可以对这些实施方式做出多种变更或修改,而不背离本发明的原理 和实质。本发明的范围仅由所附权利要求书限定。
【主权项】
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,当MSN时,将流块B j(I< jSM)分配给路径Pj;当M >圆寸,依次将流块Bj(KjSM)分配给当前空闲的路径;对于面向实时传输的业务类型,若 采用多流编码技术,数据流被编码成多个可以独立解码的编码子流,则根据编码子流的重 要性和负载大小,为编码子流选择路径,属于同一个编码子流的流块分配至同一条路径;否 贝IJ,为每个流块独立选择路径;所述多流编码技术,包括分层编码、多描述编码或者面向对 象编码。9. 根据权利要求8所述的支持多业务数据传输需求的多径传输控制方法,其特征在于: 所述为每个流块独立选择路径,方法为: 设路径个数为N,相应的负载划分向量为F= (F1J2,...,Fn),其中Fk(KkSN)表示路径 Pk上的负载份额,负载划分向量满足以下条件:为每条路径设置一个基于字节的赤字计数器,用于记录路径的期望负载和实际负载之 间的差值,根据赤字计数器进行路径选择的过程为: (1) 初始化各条路径Pk的赤字计数器DCk=0( ISk彡N); (2) 在每轮循环的开始,路径的赤字计数器按照相应的负载份额进行增加: DCk = DCk+Fk X NUMrcvd X PSmean ( K k < N ) 其中NUMrcvd为一轮循环内发送流块个数的均值;PSme3an为流块字节长度的均值; (3)随机选择一条赤字计数器大于O的路径Pk,当有流块p等待发送时,该流块分配至路 径Pk,赤字计数器DCk = DCk-PSp,其中PSp为流块p的长度;只要赤字计数器DCk>0,后续流块 仍然分配至路径Pk,即不切换路径;否则,重复步骤(3)随机选取下一个赤字计数器大于O的 路径;当所有路径的赤字计数器均不大于〇时,重复步骤(2)开启新一轮循环。
【文档编号】H04L12/733GK105933232SQ201610187763
【公开日】2016年9月7日
【申请日】2016年3月29日
【发明人】张伟, 雷为民, 李广野, 刘少伟, 李 浩, 关云冲, 杨蕾
【申请人】东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1