您的位置 首页 IC

TCP――为什么是AIMD?

TCP——为什么是AIMD说到TCP原理,一般的人谈传输效率,也就是吞吐率,了解的人谈公平性,以及收敛性。本篇博文讲一下TCP为什么使用AIMD策略,

TCP——为什么是AIMD

提到TCP原理,一般的人谈传输功率,也便是吞吐率,了解的人谈公正性,以及收敛性。本篇博文讲一下TCP为什么运用AIMD战略,为什么是收敛的?

1.公正性和收敛性

才触摸网络协议的人或许会问:为什么要收敛和公正?TCP不是传输牢靠、够快就行了吗?

远远不够,因为TCP是端到端的,窗口增减也是试探性的“自适应”方法,网络是黑盒,这就有许多问题。你自己一个人发包发得快,侵略性强,没有太大问题。可是假如其他人也跟你相同没有控制的发包呢?这就会形成网络负载过重,以至于溃散。公正性和收敛性的起点就在这儿。让每一个TCP发送端尽或许地均分带宽,一起削减丢包,减轻网络设备的压力。这其实是很难的trade off。TCP窗口总是锯齿状地周期颤动,添加-减小,不断循环,这种勘探带宽的行为必定会形成丢包,仅仅或多或少的不同罢了。

举个比方:你现在看动漫《fate/stay night ubw》,现已开端了一段时刻,视频缓冲速度很快。这时候你周围的同学看你这么入神,发现很美观,所以参加部队,也点开视频。这时候网络该怎样分呢?又经过什么样的机制分呢?最好的成果当然是均分带宽,你自己分一半,同学也分一半,这时候你的视频缓冲就慢下来了【注 1】。公正分配说起来简单,做起来难。怎样确保彻底均分?这就要靠丢包和延时改变来反映网络状况。你的同学参加了,新建的TCP衔接会测验慢发动,慢发动其实不慢,窗口指数添加,缓冲速度快速添加,也便是说,他开端抢你的带宽了。抢到必定时刻,必定会引起丢包,或许延时的急剧添加。这时候,根据丢包或许延时改变的TCP减窗机制起作用了,你们两个都开端减窗。你减一点,我减一点。这时候你会想:不对啊,我先开端的,速度早就涨上去了,咱们两个都减,他永久赶不上我。那么,开端谈第二个问题。

2.AIMD为什么收敛

上面提到减窗,现在遍及的减窗战略是“乘性减窗”,英文对应“MD”。比方你们固有的带宽是8M,一开端你自己全占了,然后同学开端抢,慢发动发包很快,所以,交换机缓存扛不住了,丢包了。这时候你的吞吐率是7M,同学的速率是1M。你们两个的TCP察觉到丢包后,把速率各减去一半,你有3.5M,他有0.5M。网络不拥塞了,没有丢包,那就持续增窗。该增多少呢?你的带宽显着占优势,同学有没有或许取得比你更高的速率呢?怎样样增才干到达均分带宽的意图?现在遍及的增窗战略是“加性增窗”,英文对应“AI”。也便是每条TCP衔接在一个RTT内的增量是常数,假定这个加性因子为200K。那接下来的速率添加便是:你有3.5+0.2=3.7,同学有0.5+0.2=0.7.

看到这儿,或许有的人就茅塞顿开了:这样增窗,成果是我们的速率都收敛。或许还有人不理解,那就把速率随时刻改变的状况列出出来:

3.5 0.5

3.7 0.7

3.9 0.9

4.1 1.1

……………………………

5.5 2.5

2.75 1.25 MD

……………………………

4.75 3.25

2.375 1.625 MD

……………………………

4.375 3.625

2.1875 1.8125 MD

……………………………

4.1875 3.8125 MD

……………………………

从以上速率改变,能够看出,两条TCP衔接的速率在逐步趋近,这便是AIMD战略的作用:收敛,到最后公正。或许有的人意犹未尽,那就从公式视点再算一次看看。假定flow1的初始窗口为c1,flow2的初始窗口为c2。MD减窗过程中,乘性因子为beta=0.5,也便是遇到丢包,窗口减一半。AI增窗过程中,加性因子为a。所以有:

c1′ = ((c1*0.5 + m*0.2)*0.5 + m*0.2)*0.5 + m*0.2 …………

这儿m是改变的,表明增窗的次数,直到遇到丢包。可是因为带宽有限,所以m能够视为常数。

c1’能够用等比数列求和公式给出,这儿就不具体计算了。定论能够直接告知我们:

c1’收敛到跟m和beta有关,跟c1无关的常数。

c2’也相似。

收敛性的证明比较复杂,我也懒得在博文里讲这么学术化的工作。拜见【注 2】。

看到这儿,你也就理解,TCP怎么均分带宽,你同学又为什么能从你手里抢到带宽了。至于减窗是不是过于剧烈,beta能不能设置得更好,变成动态的,增窗因子能不能设置更好,变成动态的。以及能不能扔掉AIMD,运用MIMD,在什么网络中能这样做。这些问题就不是本文的评论范围了,或许今后会讲。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/300658.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部