锐速与BBR的原理简单解析
前言
昨天,有一位朋友在我的文章下留言说,锐速和BBR不都是一样,是拥塞算法嘛。因为这方面需要讲的东西比较多,所以我还是专门水一篇文章吧。
锐速
锐速是一个依赖于内核的模块,其基本原理是将丢包进行评估,将预判到可能会产生丢包的数据包再发一次。所以可能会产生我们所见到的,锐速会加速VPS流量消耗。也就是我们所说的锐速多倍发包。在ACK到来之前会重发一次甚至更多。导致的结果就是重复发送。
BBR
拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。
拥塞控制就是针对此问题的控制技术/解决方案,但也不能说是解决,控制技术只能起到尽量避免/缓解拥塞的作用。
TCP-BBR技术呢,用了一种溢水原理的思想,来预判丢包率,调配发包速率。
假设你有一支较细的U形管,下面还有一堆不可溶的填塞物,你从一边开始大量灌水,如果另一边出水正常,你就可以继续加大灌水量,达到最大带宽。如果另一边发现水时断时有,就证明下面出现了随机拥堵,这时,你就要减小灌水量,等待水位落下。这时如果采用传统继续灌水时,也就会造成水溢出(丢包现象的产生)。所以这是真正的按需发包。当然,这一切是建立在系统预估的情况下。
总结
锐速属于多倍发包类型的算法,而BBR是基于溢水模型的。BBR设计的更为科学,而且正在走向一个完美的拥塞算法的路上。锐速是一种损人利己的算法,虽然效果是可以,但是会加剧骨干网的负担。造成很多不必要的流量浪费。至于两者的加速效果,请各位自行测试,没有绝对地哪一种快。