分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
这篇文章的写作动机来源于知乎上的一个问题,有人问既然Bufferbloat是个问题,为什么路由器的缓存还要设计那么大。起初,我也是觉得缓存越大越好,这个就像人们拼命比拼谁的电脑内存大一样,因为在一般人眼里,内存越大就越快!然而对于网络而言,恰好相反,内存越大,越让人不想归家。
酒店舒适,但只是路过,没人会把家装修成酒店的样子,家才是越大越好。
路由器设计成携带大缓存的设备,这是一个错误!路由器不该有那么大的缓存,然而TCP大牛当年的一个“AIMD错误决定”让路由器的缓存越来越大,最终引发了Bufferbloat!事情还要从安迪-比尔定律说起。
摩尔定律->硬件性能提升->软件填补硬件提升的空间
我们可以理解为,摩尔定律和安迪-比尔定律驱动了信息革命的车轮不断滚动从而碾压一切!
----------------------------
可以把路由器的越来越大的Buffer以及TCP贪婪地占据这些路由器Buffer两者看作是另一个“安迪-比尔定律”。因为BBR之前的TCP拥塞算法都是盲目且贪婪的,路由器加大的Buffer总是能被TCP的AI(加性增窗)过程快速榨干,反过来大缓存延迟了TCP的丢包,同时增加了丢包的成本,这要求路由器提供更多的缓存。
具体来讲就是,如果路由器Buffer过小,基于丢包的拥塞算法固有的全局同步现象将会使得带宽的利用率极低,所以必须增加Buffer来弥补。这就是一个正反馈循环,肇事者可以说是基于丢包的TCP算法,它驱动了路由器Buffer越来越大,当Buffer越来越大,TCP又会瞬间用完,永远喂不饱,直到永远。
好在有摩尔定律和TCP的MD(乘性减窗)过程二者从中协调,如果同时失去了二者,TCP早晚会全局崩溃!
我们假设硬件已经逼近了热密度的极限,摩尔定律失效了,此时不会再增加Buffer的大小了,会发生什么呢?
只要有TCP的MD过程在,互联网就不会崩溃,所以说,TCP的AI过程保障了其效率,而MD过程则保证了收敛。
Google的新拥塞控制框架来了以后,MD过程便不被保证了,任何人都可以写一个永不降窗的算法,如果把主动的MD过程看作道德的话,那么路由器的AQM就是法律了。这就是TCP/IP的几乎全部内容了,我们可以看到,它极其复杂。
值得注意的是,TCP/IP的安迪-比尔定律展现的这种复杂性,其促进因素不是摩尔定律,而是“人们对带宽的高利用率的追求”,因此便有了以下的关系:
提高带宽利用率->路由器加大Buffer->TCP的AIMD填补加大的Buffer
其实,这完全是错觉,TCP/IP的框架不该这么复杂的。或许,AIMD根本就不需要,事实上,是路由器不断加大的Buffer和AIMD一起纵容了坏事的频繁发生。这一点正如人们不断买新电脑,不断买新手机,然而过不了多久,你依然会发现不管再新的机器都卡的要死一样的道理,只不过,人们买的电脑也好,手机也好,它们的更新换代是摩尔定律驱动的,机器完全是个人所有的,你随时可以跟着摩尔定律的节奏更新换代,然而对于网络设备却不是这样。
网
酒店舒适,但只是路过,没人会把家装修成酒店的样子,家才是越大越好。
路由器设计成携带大缓存的设备,这是一个错误!路由器不该有那么大的缓存,然而TCP大牛当年的一个“AIMD错误决定”让路由器的缓存越来越大,最终引发了Bufferbloat!事情还要从安迪-比尔定律说起。
网络上的“安迪-比尔定律”
先解释一下安迪-比尔定律,即“比尔.盖茨拿走了安迪.格鲁夫所给的”。狭义的讲就是无论Intel的芯片快到多么牛逼的地步,微软的下一个Windows版本总是能把芯片的性能榨干,然而广义的讲,安迪-比尔定律连同摩尔定律一起事实上构成了信息产业的一台泵,典型的一个正反馈系统,这是决定互联网产业大爆发的本质原因,这个系统如下:摩尔定律->硬件性能提升->软件填补硬件提升的空间
我们可以理解为,摩尔定律和安迪-比尔定律驱动了信息革命的车轮不断滚动从而碾压一切!
----------------------------
可以把路由器的越来越大的Buffer以及TCP贪婪地占据这些路由器Buffer两者看作是另一个“安迪-比尔定律”。因为BBR之前的TCP拥塞算法都是盲目且贪婪的,路由器加大的Buffer总是能被TCP的AI(加性增窗)过程快速榨干,反过来大缓存延迟了TCP的丢包,同时增加了丢包的成本,这要求路由器提供更多的缓存。
具体来讲就是,如果路由器Buffer过小,基于丢包的拥塞算法固有的全局同步现象将会使得带宽的利用率极低,所以必须增加Buffer来弥补。这就是一个正反馈循环,肇事者可以说是基于丢包的TCP算法,它驱动了路由器Buffer越来越大,当Buffer越来越大,TCP又会瞬间用完,永远喂不饱,直到永远。
好在有摩尔定律和TCP的MD(乘性减窗)过程二者从中协调,如果同时失去了二者,TCP早晚会全局崩溃!
我们假设硬件已经逼近了热密度的极限,摩尔定律失效了,此时不会再增加Buffer的大小了,会发生什么呢?
只要有TCP的MD过程在,互联网就不会崩溃,所以说,TCP的AI过程保障了其效率,而MD过程则保证了收敛。
Google的新拥塞控制框架来了以后,MD过程便不被保证了,任何人都可以写一个永不降窗的算法,如果把主动的MD过程看作道德的话,那么路由器的AQM就是法律了。这就是TCP/IP的几乎全部内容了,我们可以看到,它极其复杂。
值得注意的是,TCP/IP的安迪-比尔定律展现的这种复杂性,其促进因素不是摩尔定律,而是“人们对带宽的高利用率的追求”,因此便有了以下的关系:
提高带宽利用率->路由器加大Buffer->TCP的AIMD填补加大的Buffer
其实,这完全是错觉,TCP/IP的框架不该这么复杂的。或许,AIMD根本就不需要,事实上,是路由器不断加大的Buffer和AIMD一起纵容了坏事的频繁发生。这一点正如人们不断买新电脑,不断买新手机,然而过不了多久,你依然会发现不管再新的机器都卡的要死一样的道理,只不过,人们买的电脑也好,手机也好,它们的更新换代是摩尔定律驱动的,机器完全是个人所有的,你随时可以跟着摩尔定律的节奏更新换代,然而对于网络设备却不是这样。
网