基于分组传输时延的多路径tcp拥塞控制方法

文档序号:7798541阅读:338来源:国知局
基于分组传输时延的多路径tcp拥塞控制方法
【专利摘要】本发明提出一种基于分组传输时延的多路径TCP拥塞控制方法,包括以下步骤:子流r测量当前分组的往返传输时延rttr,并根据rttr更新基础时延baseRTTr;子流r根据rttr和baseRTTr计算其分组排队时延qr,并根据qr估算当前排队的分组数量diffr;判断diffr是否小于控制参数αr,如果diffr小于αr,则线性增加子流r的拥塞窗口cwndr,如果diffr大于αr,则线性减少子流r的拥塞窗口cwndr,以及如果diffr等于αr,则保持拥塞窗口cwndr不变;子流r根据cwndr和rttr估算当前的数据传输速率,并根据数据传输速率实时更新控制参数αr。本发明实施例的方法具有计算成本低、负载均衡粒度细、兼容性高及扩展性强的优点。
【专利说明】基于分组传输时延的多路径TCP拥塞控制方法
【技术领域】
[0001]本发明涉及互联网【技术领域】,特别涉及一种基于分组传输时延的多路径TCP拥塞控制方法。
【背景技术】
[0002]随着互联网的演进和网络接入技术的发展,越来越多的端系统具有了多宿主的特性,也就是能够同时利用多个ISP提供的服务接入互联网。由于具有多个网络接口,多宿主主机通常配置多个IP地址。通过使用不同的IP地址,多宿主主机之间可以在不同的路径上传输数据,这一特性为设计多路径TCP协议提供了物质基础。一条多路径TCP流由若干条子流组成,每条子流使用不同的IP地址,因而可以经由不同的路径进行数据传输。发送方根据每条路径上拥塞程度的变化情况,动态调节子流的传输速率,把流量从拥塞的路径迁移到不拥塞的路径,从而补偿在某些路径上由于拥塞引起的速率下降,实现自适应负载均衡。因此,多路径TCP不仅能够提高端到端通信的吞吐率和鲁棒性,而且有助于网络带宽得到更加公平和高效的使用。
[0003]拥塞控制算法是多路径TCP协议的关键技术之一。从网络的角度看,多路径TCP的每条子流与传统单路径TCP的行为几乎相同,但这种相似性并不意味着多路径TCP是多条子流的简单聚合,原因有两点:其一,多条子流的数据传输行为不是独立的,而应当相互耦合起来,才能实现流量从拥塞路径向不拥塞路径的迁移;其二,多路径TCP应当与传统的单路径TCP友好共存,换句话说,在瓶颈链路上,一条多路径TCP流所获得的带宽应当与其子流数量无关,否则会造成传统单路径TCP流的性能下降。设计合适的拥塞控制算法是实现上述两个目标的关键,由于传统算法只适用于单路径TCP的数据传输需求,所以目前并没有针对多路径TCP所设计的新的拥塞控制算法。`
【发明内容】

[0004]本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一。为此,本发明的目的在于提出一种基于分组传输时延的多路径TCP拥塞控制方法,该方法具有计算成本低、负载均衡粒度细、兼容性高及扩展性强的优点。
[0005]为了实现上述目的,本发明的实施例提出了一种基于分组传输时延的多路径TCP拥塞控制方法,包括以下步骤:子流r测量当前分组的往返传输时延rttp并根据所述往返传输时延rtk更新基础时延baseRTI;;所述子流r根据所述往返传输时延rtk和所述基础时延baseRTI;计算其分组排队时延qy并根据所述时延估算当前排队的分组数量diff;;判断diff;是否小于控制参数a”如果diff;小于αρ则线性增加所述子流r的拥塞窗口cwndp如果所述diff;大于a 则线性减少所述子流r的拥塞窗口 cwndp以及如果diff;等于ct P则保持所述拥塞窗口 Cwnd1^不变;所述子流r根据所述拥塞窗口 Cwnd1^和所述往返传输时延rtk估算当前的数据传输速率,并根据所述数据传输速率实时更新所述控制参数a r。[0006]根据本发明实施例的基于分组传输时延的多路径TCP拥塞控制方法,多路径TCP流的发送端测量每条子流r的分组排队时延,然后用该时延估算子流r由于网络拥塞而在路由器缓存中排队的分组数量diff;,且如果diff/ a r,则线性增加子流r的拥塞窗口cwndr,如果diff;> a r,则线性减少子流r的拥塞窗口 Cwnd1^并且每个子流r根据其当前的传输速率占整个流总吞吐率的比值动态调整参数ar。因此,该方法具有计算成本低、负载均衡粒度细、兼容性高以及易于增量部署等优点,且适用于各种网络拓扑中的多路径TCP数据传输需求,因此,可扩展性强。
[0007]另外,根据本发明上述实施例的基于分组传输时延的多路径TCP拥塞控制方法还可以具有如下附加的技术特征:
[0008]在一些示例中,所述根据所述往返传输时延rttr更新基础时延baseRTTr,进一步包括:比较所述往返传输时延rttr和所述基础时延baseRTTr ;如果所述rttr大于所述baseRTTr,则保持所述baseRTTr不变;如果所述rttr小于所述baseRTTr,则更新所述baseRTTr 为 rttr。
[0009]在一些示例中,可通过如下公式计算所述分组排队延时t:
[0010]qr=rttr-baseRTTr。
[0011]在一些示例中,可通过如下公式估算当前排队的分组数量diff;:
[0012]diffr=cwndr.qr/rttr,
[0013]其中,cwndr表示所述子流r的拥塞窗口。
[0014]在一些示例中,所述子流r通过如下公式估算当前的数据传输速率:
[0015]rater=cwndr/rttr。
`[0016]在一些示例中,通过如下公式更新所述控制参数a r:
[0017]a r= β.rater/ Σ i e Rratei,
[0018]其中,i e R表示遍历多路径TCP的所有子流,β为常数。
[0019]本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0020]本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
[0021]图1是根据本发明一个实施例的基于分组传输时延的多路径TCP拥塞控制方法的流程图;以及
[0022]图2为根据本发明一个另一个实施例的基于分组传输时延的多路径TCP拥塞控制方法的流程图。
【具体实施方式】
[0023]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
[0024]以下结合附图描述根据本发明实施例的基于分组传输时延的多路径TCP拥塞控制方法。
[0025]图1是根据本发明一个实施例的基于分组传输时延的多路径TCP拥塞控制方法的流程图。如图1所示,根据本发明一个实施例的基于分组传输时延的多路径TCP拥塞控制方法,包括以下步骤:
[0026]步骤S101,子流r测量当前分组的往返传输时延rttp并根据往返传输时延rti^更新基础时延baseRTI;,其中r为子流的编号。在本发明的一个实施例中,根据往返传输时延rttr更新基础时延baseRTI;,进一步包括:比较往返传输时延rt^和基础时延baseRTI;,如果rtk大于baseRTTy则保持baseRTI^不变;如果rtk小于baseRTI^,则更新baseRTI^为 rttr。
[0027]步骤S102,子流r根据往返传输时延rti^和基础时延baseRTTr计算其分组排队时延l.,并根据时延估算当前排队的分组数量diff;。具体而言,在本发明的一个实施例中,可通过如下公式计算分组排队时延:
[0028]qr=rttr-baseRTTr。
[0029]近一步地,可通过如下公式估算当前排队的分组数量diff;:
[0030]diffr=cwndr.qr/rttr,
[0031]其中,cwndr表示所述子流r的拥塞窗口。
[0032]步骤S103,判断diff;是否小于控制参数a r,如果diff;小于a r,则线性增加子流r的拥塞窗口 Cwnd1^如果diff;大于a r,则线性减少子流r的拥塞窗口 Cwnd1^以及如果diffr等于a r,则保持拥塞窗口 cwndr不变。
`[0033]步骤S104,子流r根据拥塞窗口 Cwndr和往返传输时延rttr估算当前的数据传输速率,并根据数据传输速率实时更新控制参数ar。具体而言,在本发明的一个实施例中,子流r通过如下公式估算当前的数据传输速率:
[0034]rater=cwndr/rttr。
[0035]进一步地,通过如下公式更新控制参数a r:
[0036]a r= β.rater/ Σ i e ,Jratei,
[0037]其中,i e R表示遍历多路径TCP的所有子流,β为常数。
[0038]综上所述,本发明实施例的方法的原理概括为:多路径TCP流的发送端测量每条子流的分组排队时延l.,然后用该时延估算子流由于网络拥塞而在路由器缓存中排队的分组数量diffr。如果diff/ a r,则线性增加子流r的拥塞窗口 cwndr,如果diff, a r,则线性减少子流r的拥塞窗口 cwndy最后每个子流r根据其当前的传输速率占整个流总吞吐率的比值动态调整参数α-
[0039]作为一个具体的示例,以下结合图2对本发明上述的控制方法作进一步描述。
[0040]图2为根据本发明另一个实施例的基于分组传输时延的多路径TCP拥塞控制方法的流程图。如图2所示,根据本发明另一个实施例的基于分组传输时延的多路径TCP拥塞控制方法,包括以下步骤:
[0041]步骤S201,多路径TCP流启动,并建立多条子流。
[0042]步骤S202,初始化每条子流的控制变量,例如包括:alpha, rate, begSeq。
[0043]步骤S203,在子流上收到确认分组,确认序号为ack。
[0044]步骤S204,判断确认序号ack是否大于初始变量begSeq,如果是,则执行步骤S205,否则返回执行步骤S203。
[0045]步骤S205,判断当前分组的往返传输时延rtt是否小于基础时延baseRTT,如果是,则执行步骤S206,否则执行步骤S207。
[0046]步骤S206,更新baseRTT为rtt,并进一步执行步骤S207。
[0047]步骤S207,计算排队分组数diff,并更新begSeq为当前将要发送的分组序号。其中,排队分组数diff的具体计算公式如下:
[0048]diff=cwnd.q/rtt。
[0049]步骤S208,判断diff是否大于或等于控制参数alpha,如果是,则执行步骤S209,否则执行步骤S310。
[0050]步骤S209,计算当前的数据传输速率rate=cwnd/rtt,并且计算alpha=betaXrate/totalRate,即 α=β.rate/ Σ i e Rrate,并进一步执行步骤 S210。
[0051]步骤S210,判断diff是否大于alpha,如果是,则执行步骤S211,否则执行步骤S212。
[0052]步骤S211,令cwnd=cwnd_l,即线性减少子流的拥堵窗口 cwnd,并进一步执行步骤S214。
[0053]步骤S212,判断diff是否小于alpha,如果是,则执行步骤S213,否则执行步骤S214。
[0054]步骤S213,令cwnd=cwnd+l,即线性增加子流的拥塞窗口 cwnd,并进一步执行步骤S214。`
[0055]步骤S214,判断传输是否结束,如果未结束则反馈执彳了步骤S203,如果传输结束,则执行步骤S215。
[0056]步骤S215,结束。
[0057]具体而言,根据本发明方法的上述算法步骤可以看出,每个子流需要周期性的调整各种控制参数。因此,在算法实施的过程中,首先要确定参数的调节周期。为了使多路径TCP流更快的响应网络拥塞程度的变化,本方法以分组的往返传输时延作为控制参数的时间间隔。
[0058]综上所述,结合图2所示,每个子流维护一个变量begSec^,其初始值为将要发送的分组的序号;当收到的确认序号大于begSeq^时,进行子流相关参数的调节,最后把begSeq^更新为当前将要发送的分组的序号,为下一轮参数调节做好准备。
[0059]从2.6.22版本开始,Linux内核为拥塞控制模块提供了高精度测量时间的能力,即通过启用TCP_CONG_RTT_STAMP标志,拥塞控制算法能够从内核获得以微秒为单位的分组往返传输时延(RTT ),从而更加精确的调节数据发送速率。
[0060]根据本发明实施例的基于分组传输时延的多路径TCP拥塞控制方法,多路径TCP流的发送端测量每条子流r的分组排队时延,然后用该时延估算子流r由于网络拥塞而在路由器缓存中排队的分组数量diff;,且如果diff/ a r,则线性增加子流r的拥塞窗口cwndr,如果diff;〉a r,则线性减少子流r的拥塞窗口 Cwnd1^并且每个子流r根据其当前的传输速率占整个流总吞吐率的比值动态调整参数ar。因此,该方法具有计算成本低、负载均衡粒度细、兼容性高以及易于增量部署等优点,且适用于各种网络拓扑中的多路径TCP数据传输需求,因此,可扩展性强。[0061]在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底” “内”、“外”、“顺时
针”、“逆时针”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
[0062]此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0063]在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0064]在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
[0065]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0066]尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【权利要求】
1.一种基于分组传输时延的多路径TCP拥塞控制方法,其特征在于,包括以下步骤: 子流r测量当前分组的往返传输时延rttp并根据所述往返传输时延rtk更新基础时延 baseRTTr; 所述子流r根据所述往返传输时延rtt和所述基础时延baseRTI;计算其分组排队时延并根据所述时延估算当前排队的分组数量diff;; 判断diff;是否小于控制参数a r,如果diff;小于a r,则线性增加所述子流r的拥塞窗口 Cwnd1^如果所述diff;大于a r,则线性减少所述子流r的拥塞窗口 Cwnd1^以及如果diffr等于a r,则保持所述拥塞窗口 Cwnd1^不变; 所述子流r根据所述拥塞窗口 cwndr和所述往返传输时延rttr估算当前的数据传输速率,并根据所述数据传输速率实时更新所述控制参数a-
2.根据权利要求1所述的基于分组传输时延的多路径TCP拥塞控制方法,其特征在于,所述根据所述往返传输时延rttr更新基础时延baseRTTr,进一步包括: 比较所述往返传输时延rttr和所述基础时延baseRTTr ; 如果所述rttr大于所述baseRTTr,则保持所述baseRTTr不变;` 如果所述rttr小于所述baseRTTr,则更新所述baseRTTr为rttp
3.根据权利要求1所述的基于分组传输时延的多路径TCP拥塞控制方法,其特征在于,可通过如下公式计算所述分组排队延时:
qr=rttr_baseRTTr。
4.根据权利要求1所述的基于分组时延的多路径TCP拥塞控制方法,其特征在于,可通过如下公式估算当前排队的分组数量diff;:
diffr=cwndr.qr/rttr, 其中,cwndr表示所述子流r的拥塞窗口。
5.根据权利要求1所述的基于分组传输时延的多路径TCP拥塞控制方法,其特征在于,所述子流r通过如下公式估算当前的数据传输速率:
rater=cwndr/rttr。
6.根据权利要求5所述的基于分组传输时延的多路径TCP拥塞控制方法,其特征在于,通过如下公式更新所述控制参数a r:
a r= β.rater/ Σ i e Rratei, 其中,i e R表示遍历多路径TCP的所有子流,β为常数。
【文档编号】H04L12/801GK103888367SQ201410086455
【公开日】2014年6月25日 申请日期:2014年3月10日 优先权日:2014年3月10日
【发明者】徐明伟, 曹宇 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1