一种基于mptcp的拥塞控制方法及装置的制造方法_2

文档序号:9846731阅读:来源:国知局
塞检测,首先必须得为每条子流分割合 适的缓存区。本发明是依据每条子流带宽进行分割缓存区的。每条子流分得的缓存区大小 为
[0049]其中Buff tcltai为总缓存区大小(字节),BWi为第i条子流的带宽,Buffi为第i条子流 分得的缓存区大小。如图2所示,Buff_0,Buf f_l,Buff_2到Buf[11分别表示A到B的两个子流 的缓存区。
[0050] 在一个实施例中,根据缓存区占用率确定TCP子流的拥塞等级包括:设置两个拥塞 等级,分别为轻度拥塞和严重拥塞等级。当判W
,则确定此 TCP子流为轻度拥塞等级;当判断
,则确定此TCP子流为严重拥塞等级; 其中,α、β都为参数,且0 < α < β < I ,Buffi为第i条TCP子流缓存区的长度。
[0051] 如图3所示,不同的拥塞级别对链路会造成不同的影响。网络中吞吐量的下降在很 大程度上是由于数据包的丢失造成的,丢包可能是由于网络传输中出现了错误,也可能是 由于网络拥塞造成的。早期版本的TCP仅仅包含基于窗口的流量控制,用来改善端到端的传 输性能,但是流量控制不能动态调整拥塞窗口,以对拥塞进行响应。流量控制只能处理端到 端传输中,通信双方的数据传输,不能处理网络中节点的拥塞。当多个用户使用共享链路造 成网络中链路或节点的拥塞时,无法通过流量控制进行拥塞的调整和控制。
[0052]理想情况下,当网络中的负载增加时,网络的吞吐量也应得到相应的增加。在一定 阶段内,网络的吞吐量等于网络中的负载总量。但是网络的运算、处理和传输能力是有限 的,当输入到网络中的负载达到其所能处理的最大容量后,再继续增加网络的负载,吞吐量 将维持不变,不再增加。这个维持不变的网络吞吐量,即为理想情况下该网络的容量。
[0053]图3中所示"提供的负载"即代表输入到网络中的负载。如图3中所示,网络中吞吐 量随负载的变化可分为三个阶段。
[0054] 1)初始阶段,网络的吞吐量随着输入到网络中负载的增加而增大。
[0055] 2)轻度拥塞阶段,当输入到网络中的负载达到一定程度,网络吞吐量基本接近饱 和,这时一部分分组被丢弃,吞吐量的增长速率明显减小。
[0056] 3)拥塞阶段,网络吞吐量达到饱和,继续增加网络中的负载,当负载超过网络的容 量时,将导致严重的队列延迟,以及数据包的丢失,网络吞吐量急剧下降。甚至出现网络崩 溃,无法继续工作。
[0057] 为了避免网络崩溃,应该尽量避免网络拥塞的发生。这时需要对网络进行必要的 拥塞控制。但是,在网络中进行拥塞控制是需要付出一定代价的。首先,要进行有效的拥塞 控制,需要获得网络中流量的分布状况。其次,拥塞控制还需要选择一定的控制策略,以及 执行控制。这些都给网络带来了额外的开销。
[0058] 在一个实施例中,如果确定TCP子流为轻度拥塞等级,则调节此TCP子流发送窗口 大小并满足Wi=Wi- γ *wi;如果确定TCP子流为严重拥塞等级,则调节此TCP子流发送窗口大 小并满足
:如果确定TCP子流不为轻度拥塞等级和严重拥塞等级,则调节此 TCP子流发送窗口大小并满足:
[0060] Wi是第i条TCP子流的发送窗口大小,r和δ为速率控制参数,并且,〇〈 γ〈〇. 5,δ = n2, η为MPTCP连接中的TCP子流的个数。
[0061 ]在一个实施例中,根据EWMA(Exponentially Weighted Moving Average)对下一 时刻缓存区占用长度进行平滑的一个估值:
[0063] EWMA(Exponentially Weighted Moving Average)指数加权移动平均,是一种常 用的序列数据处理方式。在t时刻,根据实际的观测值可以求取EWMA(t):
[0064] EWMA(t)=aY(t) + (l-a)EWMA(t-l) (3)
[0065] 其中,t = l,2,……n.EffMA⑴为t时刻的估计值;Y(t)为t时刻的测量值;η所观察 的总的时间;a(0〈a〈l)表示对于历史测量值权重系数。之所以称之为指数加权,是因为加权 系数a是以指数式递减的,即各指数随着时间而指数式递减。用η表示为a = 2/(n+l)。物理意 义:系数a越接近1表示对当前抽样值的权重越高,对过去测量值得权重越低,估计值(器)的 时效性就越强,反之,越弱;另外,EffMA还有一定的吸收瞬间突发的能力,也即平稳性,显然 随着a减小,参考过去测量值的程度更多一些,平稳性增强,反之则降低。
[0066] 本发明中的两个参数α、β(0 < α < β < 1)表示两种拥塞级别:当
[0070] 表示严重拥塞。
[0071]根据不同的拥塞等级分级进行拥塞解除(速率调节)。在情况(3)属于轻度拥塞,在 以往的拥塞控制中使用的是AIMD(Additive Increase Multiplicative DecreaseaTCP/IP 模型中,属于运输层,为了解决拥塞控制的一个方法,即:加性增,乘性减,或者叫做"和式增 加,积式减少")方法。即,当认为拥塞是让传输速率减半。然而,在轻度拥塞情况下,传输速 率减半虽然会解决拥塞,但也会使吞吐量严重下滑,采用的控制方法如下:
[0073]其中Wi是发送窗口大小。在情况(4)采用的控制方法如下:
[0075]在情况(3) (4)以外说明子流无拥塞,通信状况良好,此时可以加大发送速率并且 同时兼顾公平性。算法假设TCP流的权重为1,MPTCP中每个子流的权重均为Dn。则相对于 TCP,MPTCP将得到Dn倍的吞吐量。为了使MPTCP的以个子流总共得到和TCP相同的吞吐量,那 么MPTCP子流的权重应该满足以下等式:
[0077]若每个子流均得到相同的权重,那么:
[0079] 同时,若TCP流的每一个RTT,拥塞窗口增加 c。则TCP流的吞吐量是往返时间RTT,重 传超时时间t,数据包的大小S,丢包率P,和拥塞窗口增长参数C的函数。吞吐量模型为:
[0081 ] 在TCP中,每经过一个RTT,拥塞窗口增加1,即C = 1,则有:
[0083] 在MPTCP中,每个子流的权重为D,吞吐量为TCP的D倍,即:
[0089]所以该种情况下,按以下方式调整该子流速率。其中η是MPTCP中子流的个数。
[0091]图4为根据本发明的基于MPTCP的拥塞控制方法的另一个实施例的流程示意图,如 图4所示:
[0092]步骤201,为MPTCP连接中的每条TCP子流分配各自的缓存区。
[0093]步骤202,采用ETOlA算法对每条TCP子流的缓存区占用长度进行估值。
[0094]步骤203,对需要使用的各个参数进行初始化。
[0095] 步骤204,判断
I否满足,如果是,则进入步骤207,如
果否,则进入步骤205。
[0096] 步骤205,判断 是否满足,如果是,则进入步骤208,如果否,则计 入步骤206。
[0097]步骤206,调节此TCP子流发送窗口大小并满足:
[0098] ^ ^ ^ 'f ig: ?y.?
[0099] Wi是第i条TCP子流的发送窗口大小,r和δ为速率控制参数,并且,〇〈 γ〈〇. 5,δ = n2, η为MPTCP连接中的TCP子流的个数。
[0100]步骤207,调节此TCP子流发送窗口大小并满足
[0101 ] 步骤208,调节此TCP子流发送窗口大小并满足
[0102] 步骤209,进行下一次速率调节。
[0103] 在一个实施例中,如图5所示,主机A与主机B为MPTCP连接,主机C与主机D连接方式 为单路径TCP。其中,主机B设置为多个网卡以满足MPTCP连接。MPTCP的3条子流TCP(分别为 SFO、SFl、SF2、TFO)与TCP共用一条链路Linkl,参数设置如下表1所示:
[0105] 表1 一连接的参数设置表 '
' '
[0106]缓存区的使用率情况能直接反映出该条线路的拥塞情况,但是MPTCP是多条子流 共用一个缓存区,所以要对单条子流进行精确的拥塞检测,首先必须得为每条子流分割合 适的缓存区。依据每条子流带宽进行分割缓存区的。假定主机B的总缓存区大小为 Buff total那么由公式(1)可得,SFO分配了 0.4*Buff total。同理可得其他子流被分配的缓 存区大小。
[0107]如图6所不,Buff_0 = 0 · 4*Bufftotal,Buff_l = 0 · 3*Bufftotal,Buff_2 = 0 · 3* Buff total。在本实施例场景中MPTCP子流为三条,故下图中的Buf f_nSBuff_2,本实施例拥 塞检测参数设置如下表2所示:

[0110] 表2-拥塞检测参数表
[0111] 首先根据EWMA(Exponentially Weighted Moving Average)对下一时刻缓存区占 用长度进行平滑的一个估值
[0112] EWMA(Exponentially Weighted Moving Average)指数加权移动平均,是一种常 用的序列数据处理方式。在实事例中参数P设置为0.8,表示对当前抽样值的权值高,又同时 兼顾上一时刻的值的积累效应。即
[0114] 本发明用两个参数€[、0(0<€^0<1)表示两种拥塞级别,在实施例中€[、0分别设置 为0.6和0.9。即当
表示严重拥塞。
[0115] 根据不同的拥塞等级分级进行拥塞解除(速率调节)。属于轻度拥塞时,在以往的 拥塞控
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1