Mptcp中发送方数据包调度方法及系统的制作方法

文档序号:7659203阅读:389来源:国知局
专利名称:Mptcp中发送方数据包调度方法及系统的制作方法
技术领域
本发明涉及通信领域,尤其涉及MPTCP中发送方数据包调度方法及系统。

背景技术
目前,互联网(Internet)已经成为社会生活的重要组成部分,随着hternet深入到各个领域,网络上应用越来越多,网页上信息量也越来越大,这些都要求网络有更大的带宽,增加网络的带宽需要增加网络基础设施,这将加大投入成本。但是在另一方面,现有的大量的带宽资源却没有得到充分的利用。如现在的很多电脑都拥有多种接入网络的方式, 可以通过多种方式上网,像笔记本电脑就有有线上网、无线上网、电话线上网、CDMA上网等多种上网方式,如图1所示。同时网络运营商为了提供高质量的服务,服务器也增加了许多备用的物理链接。这些备用链接只是在主链路失效时才使用,运行时并没有挖掘同时利用多条路径的可能。现在使用的TCP协议要求上网时只能通过单一的上网方式来发送数据,其他网络连接闲置,造成宽带资源浪费。如果主机所携带的多种上网方式都能同时使用的话,将使得网络的利用率大大提高,增加网络容量,带来高的传输速率。同时,如果多条连接同时使用, 当某一条链路出现拥塞、负载过重或者故障时,网络可以方便的把数据通过别的连接传输, 这将带来优异的网络容错能力、实现负载均衡,故障避免。取得包括上网速度、质量、费用等多方面的优化。针对上述情况,MultiPath TCP (MPTCP)受到业内人士的广泛关注,为此互联网工程任务组(IETF)专门成立了相应的工作组,即MPTCP工作组。本发明涉及了 MPTCP方面内容,现介绍如下MPTCP层次结构模型为了实现多路径的可靠传输,IETF工作组扩展了 TCP的功能,如图加和2b所示,在应用层和传输层之间加入了支持多路径传输MPTCP层,原有的TCP 层只针对子流起作用。在链接双方的应用层看来,链路依然是单一连接的。新加入的MPTCP 主要功能是1、分流,把原先单一的流分为几个流,并管理数据包的调度、重排序和拥塞控制。2、检测管理可选的通信路径。MPTCP的2个功能可分为实现多路调度功能的MPS (Multipath Scheduler)和实现路径检测管理功能的PM(Path Manager),如图3所示。路径检测管理PM的作用主要是检测目前计算机所有的可用上网连接,包括检测新的连接、撤销不可用的连接信息、并把可用的连接信息通告给多路调度MPS,供MPS选择连接传输数据,把MPS分配的流按MPS所作出的决策,对应到相应的链路上;多路调度MPS的作用主要是接受应用层的传输请求,根据PM 所提供的可用连接信息,选择链路,并实现分流、包调度和拥塞控制。MPTCP的数据处理流程MPTCP首先要能检测到自己和通信对端一共有几条路径可用。如图4所示,本图中假设有3条路。在数据传输过程中,PM将检测到的这3条可用路径信息通告给MPS。MPS将应用层发来的数据分成3个子流后交给PM,PM再把3个流对应到3个连接上传送出去。
主机收到数据时,会把从连接1、2、3来的数据,在MPS层汇集,并合并成一个流传
给应用层。分流后的数据在网络中传输时,因为走不同路径会产生不同的时延,使得数据到达对方时会出现乱序。并且如果某条路的时延过大,这条路传输的数据包总是晚到,其他数据包总要等待这部分数据的到来,才能合成一个流传给应用层,对于一些要求时延小的应用来说,这条路将成为整个传输的短板,严重影响了网络的实际速度。如图5所示。A、B、C 三个连续的数据包,走两条路径发送给对方,可能出现A、C包传送结束,B包还要再等一段时间才传送到的情况。TCP是一种面向连接的可靠传输层协议,最初是为单一路径的有线传输设计的。由于数据包走单一的链路可靠性很高,传统TCP认为丢包是由网络拥塞所导致,把非拥塞的乱序当作是网络拥塞的标志,而错误地进入拥塞控制,对网络性能产生很大影响。在多路径TCP中,数据包在网络中走不同路径传输,将产生不同的时延,使数据包到达对方时出现严重的乱序,严重降低了网络的性能。在实际中用100K和IOK二条路径做测验,实际网速只能达到40K。不但没有发挥多路径TCP的优势,反而降低了网速。带宽的测量带宽(band width)是指线路单位时间内能发送的数据量,是衡量网速的指标。文献《基于SCTP的并行多径传输传输协议》提供了两种带宽估算的方法,一种是 SBPP (Sender-Based Packet Pair)。SBPP每30s向要测量的路径发送心跳数据包,由心跳数据包的大小P和数据包发送时间和确认时间的间隔δ来估算路径带宽,Bki= Ρ/δ代表路径i的第k次测量的带宽估值。另一种方法是Wfestwood。flfestwood通过在不重合的时间段采样分组的数据量来
nk
估算路径带宽^^ Λ,网络的测量带宽用炉+Lt确定,这两种方 max{iti7 ,50ms}1 g 1 g 1
法中SBPP属于主动测量,需要向网络发送数据包。ffestwood属于被动测量,只需要采样数据发送的数据量来估值带宽。

发明内容
针对现有技术中存在的上述问题,本发明提供了 MPTCP中发送方数据包调度方法及系统。本发明提供了 MPTCP中发送方数据包调度方法,包括步骤1,获得各路径的前向传输时延和带宽;步骤2,根据预设的第一条件选择符合前向传输时延要求的路径集合;步骤3,根据预设的第二条件将路径集合中的路径分为离散度小的路径和离散度大的路径;离散度小的路径的前向传输时延小于离散度大的路径的前向传输时延;步骤4,根据调度算法为离散度小的路径或离散度大的路径分配数据包;步骤5,在离散度小的路径或离散度大的路径上向接收方传输数据包。在一个示例中,步骤1中,通过TCP报头中的单向路径时延探测请求得到各路径的前向传输时延;在通信双方开始数据传输前,利用SBPP带宽估算方法得到各路径的带宽。在一个示例中,第一条件为当前路径的前向传输时延与最小前向传输时延之差与最小前向传输时延的比值小于预设的第一值,则该当前路径为路径集合的元素。在一个示例中,第二条件为当前路径的前向传输时延与最小前向传输时延的比值小于或等于预设的第二值,则该当前路径为离散度小的路径;否则该当前路径为离散度大的路径。在一个示例中,为离散度小的路径分配数据包的调度算法为离散度小的路径中的任一路径需要发送数据包,就分配给该路径数据包;该离散度小的路径中的任一路径可以发送多少数据量,就分给该路径多少数据量。在一个示例中,为离散度大的路径分配数据包的调度算法为每次发送的数据包, 都从x+m的序号发送数据;其中χ为发送方已经发送了的最大的数据包的序号,m为当前路径发送的第一个数据包到达对方的时间内,前向传输时延比当前路径的前向传输时延小的路径能发送的数据包量。在一个示例中,在通信双方进行数据传输数据过程中,利用ffestwood方法测量记录每条路径带宽,并根据测得的带宽更新步骤1中所得到的对应带宽。在一个示例中,在通信双方进行数据传输数据过程中,探测各条路径的前向传输时延,并根据预设的第一条件选择符合传输时延要求的路径集合。在一个示例中,发送失败的数据包利用第一类数据包调度算法进行调度。本发明提供了一种实现所述的调度方法的系统。本发明扩展了每个数据包的TCP报头,引入单向路径时延探测请求,单向路径时延探测回应,即时测量每个路径的前向路径时延。本发明引入SBPP主动带宽测量方法和 ffestwood被动测量网络带宽的方法,即时测量网络带宽。本发明根据路径状态信息,基于路径状态的稳定性和传输速率,动态选择参与数据传输的路径集合。本发明动态的检测路径的传输延时,并根据其特点选择特殊的分流和调度算法,以尽可能简单的方式实现尽可能好的分流和调度,使得数据包以尽可能有序的方式到达对方。本发明动态的检测每个路径的传输速率,对每个路径分配合理大小的传输内容,更好的解决网络负载问题。本发明解决了多路径传输产生的严重包乱序问题,真正发挥了多路径TCP传输带来的优势。


下面结合附图来对本发明作进一步详细说明,其中图1是MPTCP的多种接入方式示意图;图2是MPTCP的基本架构图;图3是MPTCP的内部结构图;图4是MPTCP内部处理流程图;图5是因FWD不同导致的数据传输速率的差异示意图;图6是本发明提供的MPTCP包调度流程图;图7是其他类包调度示意图。
具体实施例方式本发明提供的MPTCP中发送方数据包调度方法是解决因数据包走不同的路径而造成的严重包乱序问题,提高网络性能,真实体现TCP的优势。
5
为了解决数据包乱序的问题,本发明提供的调度方法依次含有以下步骤步骤701,获取各路径的路径前向传输时延FWD (Forward-ffay Delay),和带宽BW ;步骤702,选择优质的路径;步骤703,对路径进行分类;步骤704,FWDi/FWDl ( 3,执行离散度小的路径调度算法;步骤705,对于FWDi/FWDl > 3的路径,执行离散度小的路径调度算法;步骤706,根据调度结果将数据包发送给接收方,并且对于丢失的数据包,按照离散度小的路径调度算法进行调度。步骤701中,TCP报头中引入单向路径时延探测请求,单向路径时延探测回应, 即时测量每个路径的前向路径时延;测得每个路径的前向路径时延后,根据时延值FWD1, FWD2, FWD3, . . .,FffDn 从小到大进行排序,假设 FWDl < FWD2 < FWD3 < . . . FffDn ;通信双方开始数据传输前,利用SBPP (Sender-Based Packet Pair)带宽估算方法探测到路径的带宽。如设路径带宽分别为BW2、BW3、. . . Bffn-UBffn ;带宽测得之后才能使用该路径。 步骤702中,对于不同的应用,设置不同D-value,以确定是否启用某一个路径。对
FWD3 - FWDl
于任一条路径,如路径3,只有满足^^^^ < D-value(D_va lue是定值,按上网业务
的不同有不同的值)才被使用,否则设置为备用。以后每隔Imin再次检测所有路径的FWD
FWD3-FWDl
并带入公式,当备用路径3符合^——^ < D—value时启用此路径。同时,当某个正在
FWDl
使用的路径,不符合使用条件时,把此路径转作备用。步骤703中,对这η条路径进行分类,分类方法是用其他路径的FWD除以FWD最小路径的FWDdP FWDi/FWDl ( 3的为离散度小的路径,为第一类。在上述假设中,用其他 FffD除以FWD1,设倍数为3 (包含3)以内有2条,分别为FWD2、FWD3。FWDi/FWDl > 3的为离散度大的路径,为其他类路径,其他类路径自己单独为一类,其他路径按从FWD从小到大依次分为第二类,第三类,....,第i类;将每类路径进行路径标记,第一类路径标记为以1开头,加上按FWD从小到大排序后的序号组成,如上述假设中FWD1、FWD2、FWD3对应的三条路径分别标记为为11、12、13,其他类的路径,按全部路径FWD从小到大的排序序号标记,如上假设中FWD从小到大排在第四位的路径标记为4,排在第五位的路径标记为5等等;对于实时性要求非常强的传输,因离散度小的路径有很好的保序性,建议只取用离散度小的路径来传输数据,离散度大的路径都留作备用。步骤705中,对离散度小的路径采用第一类调度算法,具体地第一类的路径,即标记为1开头的路径调用第一类数据包调度算法。算法描述为 哪条路径要发送数据包,就分给该路径数据包;该路径可以发送多少数据量,就分给该路径多少数据量。第一类数据包调度算法调度数据包时,先检查数据包优先级,数据包优先级为 200的数据优先发送。发送的数据包有2个优先级,优先级的值分别设为‘无’,‘200’两种, ‘200’的优先级高于‘无’的优先级。网络中需要重传的数据包优先级设为200,普通数据包设置优先级为‘无’,即不设置优先级。步骤706中,离散度大的路径采用其他类数据包调度算法,如图7所示,具体为每次发送的数据包,都从x+m的序号发送数据(其中χ为发送方已经发送了的最大的数据包的序号,m为本路径发送的第一个数据包到达对方的时间内,FWD比他小的路径能发送的数据包量);第二类路径启用后发送的起始数据包起始序号应为x2+m2’(其中x2为发送方已经发送了的最大的数据包的序号,m2’为第二类路径发送的第一个数据包到达对方的时间内,其他路径能发送的数据包量)。上述假设中第二类路径的m2’为m2’ = FWD4* (BW1+BW2+BW3),FWD4 为第二类路径的 FWD。如现在发送方有100到1000个数据量要发送,设,现在第二类路径的发送窗口有空闲,大小为5个数据量,经计算知,第二类路径发送的包到达对方的时间内,比它传输时延小的离散度小的路径可以发送20个数据包,则给第二类路径的发送窗口输入的数据应为 120、121、122、123、124。第三类路径启用后发送的起始数据包起始序号应为x3+m3’(其中x3为发送方已经发送了的最大的数据包的序号,m3’为第三类路径发送的第一个数据包到达对方的时间内,其他路径能发送的数据包量)。上假设中第三类路径的m3’为m3’ = FWD5* (Bffl+BW2+BW3+Bff4),FWD5 为第三类路径的 FffD0相应地,第i条路径启用后发送的起始数据包起始序号应为xi+mi(其中χ i 为发送方已经发送了的最大的数据包的序号,mi为第i条路径发送的第一个数据包到达对方的时间内,其他路径能发送的数据包量)。上假设中第i条路径的mi为mi = FffDi* (BW1+BW2+BW3+. · · +Bffi-1),FffDi 为第 i 条路径的 FWD。在通信过程中,利用ffestwood方法一直测量记录每条路径带宽,使用的测量数据是,前1分钟的统计数据,作为调度算法运算的依据;每隔1分钟重新读入各条路径的FWD, 并按FWD的大小从小到大排序,并依次执行步骤704以后的各个步骤。MPTCP发送方数据包调度方法,要求通信主机支持MPTCP功能,需要按照本文描述,和实际的应用需求,编译好与MPTCP兼容的程序,部署在主机MPTCP层的多路调度子层, 在通信双方多条通信路径建立之后执行。以上所述仅为本发明的优选实施方式,但本发明保护范围并不局限于此。任何本领域的技术人员在本发明公开的技术范围内,均可对其进行适当的改变或变化,而这种改变或变化都应涵盖在本发明的保护范围之内。
权利要求
1.MPTCP中发送方数据包调度方法,其特征在于,包括步骤1,获得各路径的前向传输时延和带宽;步骤2,根据预设的第一条件选择符合前向传输时延要求的路径集合;步骤3,根据预设的第二条件将路径集合中的路径分为离散度小的路径和离散度大的路径;离散度小的路径的前向传输时延小于离散度大的路径的前向传输时延;步骤4,根据调度算法为离散度小的路径或离散度大的路径分配数据包;步骤5,在离散度小的路径或离散度大的路径上向接收方传输数据包。
2.如权利要求1所述的数据包调度方法,其特征在于,步骤1中,通过TCP报头中的单向路径时延探测请求得到各路径的前向传输时延;在通信双方开始数据传输前,利用SBPP 带宽估算方法得到各路径的带宽。
3.如权利要求1所述的数据包调度方法,其特征在于,第一条件为当前路径的前向传输时延与最小前向传输时延之差与最小前向传输时延的比值小于预设的第一值,则该当前路径为路径集合的元素。
4.如权利要求1所述的数据包调度方法,其特征在于,第二条件为当前路径的前向传输时延与最小前向传输时延的比值小于或等于预设的第二值,则该当前路径为离散度小的路径;否则该当前路径为离散度大的路径。
5.如权利要求4所述的数据包调度方法,其特征在于,为离散度小的路径分配数据包的调度算法为离散度小的路径中的任一路径需要发送数据包,就分配给该路径数据包; 该离散度小的路径中的任一路径可以发送多少数据量,就分给该路径多少数据量。
6.如权利要求4所述的数据包调度方法,其特征在于,为离散度大的路径分配数据包的调度算法为每次发送的数据包,都从x+m的序号发送数据;其中χ为发送方已经发送了的最大的数据包的序号,m为当前路径发送的第一个数据包到达对方的时间内,前向传输时延比当前路径的前向传输时延小的路径能发送的数据包量。
7.如权利要求3所述的数据包调度方法,其特征在于,在通信双方进行数据传输数据过程中,利用Westwood方法测量记录每条路径带宽,并根据测得的带宽更新步骤1中所得到的对应带宽。
8.如权利要求3所述的数据包调度方法,其特征在于,在通信双方进行数据传输数据过程中,探测各条路径的前向传输时延,并根据预设的第一条件选择符合传输时延要求的路径集合。
9.如权利要求5所述的数据包调度方法,其特征在于,发送失败的数据包利用离散度小的路径数据包调度算法进行调度。
10.一种实现如权利要求1-9任意一项所述的调度方法的系统。
全文摘要
本发明涉及MPTCP中发送方数据包调度方法及系统。该调度方法包括步骤1,获得各路径的前向传输时延和带宽;步骤2,根据预设的第一条件选择符合前向传输时延要求的路径集合;步骤3,根据预设的第二条件将路径集合中的路径分为离散度小的路径和离散度小的路径;离散度小的路径的前向传输时延小于离散度大的路径的前向传输时延;步骤4,根据调度算法为离散度小的路径或离散度大的路径分配数据包;步骤5,在离散度小的路径或离散度大的路径上向接收方传输数据包。本发明动态的检测每个路径的传输速率,对每个路径分配合理大小的传输内容,更好的解决网络负载问题。本发明解决了多路径传输产生的严重包乱序问题,真正发挥了多路径TCP传输带来的优势。
文档编号H04L12/56GK102185771SQ20111011577
公开日2011年9月14日 申请日期2011年5月5日 优先权日2011年5月5日
发明者崔勇, 蔡云峰, 郭仁伟 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1