锐速与BBR的原理简单解析

 4

前言

昨天,有一位朋友在我的文章下留言说,锐速和BBR不都是一样,是拥塞算法嘛。因为这方面需要讲的东西比较多,所以我还是专门水一篇文章吧。

锐速

参考资料:

http://www.tcpedge.com/features.html

http://bbs.kuaibo.com/thread-315336-1-1.html

锐速是一个依赖于内核的模块,其基本原理是将丢包进行评估,将预判到可能会产生丢包的数据包再发一次。所以可能会产生我们所见到的,锐速会加速VPS流量消耗。也就是我们所说的锐速多倍发包。在ACK到来之前会重发一次甚至更多。导致的结果就是重复发送。

BBR

参考资料:

https://emiria.io/post/TCP-BBR/

https://www.nanqinlang.com/controllor-bbr.html

拥塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。
拥塞控制就是针对此问题的控制技术/解决方案,但也不能说是解决,控制技术只能起到尽量避免/缓解拥塞的作用。

TCP-BBR技术呢,用了一种溢水原理的思想,来预判丢包率,调配发包速率。
假设你有一支较细的U形管,下面还有一堆不可溶的填塞物,你从一边开始大量灌水,如果另一边出水正常,你就可以继续加大灌水量,达到最大带宽。如果另一边发现水时断时有,就证明下面出现了随机拥堵,这时,你就要减小灌水量,等待水位落下。这时如果采用传统继续灌水时,也就会造成水溢出(丢包现象的产生)。所以这是真正的按需发包。当然,这一切是建立在系统预估的情况下。

总结

锐速属于多倍发包类型的算法,而BBR是基于溢水模型的。BBR设计的更为科学,而且正在走向一个完美的拥塞算法的路上。锐速是一种损人利己的算法,虽然效果是可以,但是会加剧骨干网的负担。造成很多不必要的流量浪费。至于两者的加速效果,请各位自行测试,没有绝对地哪一种快。

锐速与BBR的原理简单解析的更多相关文章

  1. View的滚动原理简单解析

    一直对View的滚动了解的不深,说明确了吧也能说出个所以然来,所以我就花了点时间做了一个小小的总结,言归正传,view的滑动分为下面三种: 1)View本身不滚动,指滚动View的内容,这也是View ...

  2. foreach的使用原理简单解析

    数组可以foreach遍历,这个是在jdk1.5之前就可以的,我也不太清楚是怎么做到的. 后面的List,Set等的foreach都是实现Iterable接口,基于iterator()对象实现的.Fo ...

  3. GBDT算法原理深入解析

    GBDT算法原理深入解析 标签: 机器学习 集成学习 GBM GBDT XGBoost 梯度提升(Gradient boosting)是一种用于回归.分类和排序任务的机器学习技术,属于Boosting ...

  4. SpringBoot的自动配置原理过程解析

    SpringBoot的最大好处就是实现了大部分的自动配置,使得开发者可以更多的关注于业务开发,避免繁琐的业务开发,但是SpringBoot如此好用的 自动注解过程着实让人忍不住的去了解一番,因为本文的 ...

  5. android多线程-AsyncTask之工作原理深入解析(下)

    关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...

  6. android多线程-AsyncTask之工作原理深入解析(上)

    关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...

  7. 路由及路由器工作原理深入解析3:路由与port

        日志"路由及路由器工作原理深入解析1"http://user.qzone.qq.com/2756567163/blog/1438322342介绍了"为什么要使用路 ...

  8. Git原理入门解析

    前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的: 一.Git 简介 Git 是当前流行的分布式 ...

  9. Netty原理架构解析

    Netty原理架构解析 转载自:http://www.sohu.com/a/272879207_463994本文转载关于Netty的原理架构解析,方便之后巩固复习 Netty是一个异步事件驱动的网络应 ...

随机推荐

  1. NX二次开发-UFUN读取工程图注释UF_DRF_ask_text_data

    1 NX11+VS2013 2 3 4 #include <uf.h> 5 #include <uf_ui.h> 6 #include <uf_drf.h> 7 8 ...

  2. spring 配置bean以及配置依赖 (2)

    目录 一.使用ref引用其他对象 二.通过有参构造器创建对象 1 通过index精确定位参数顺序 三.引用bean 1 使用内部bean 2 使用list,set 3 声明集合类型 四.其他 1 使用 ...

  3. 秒懂神经网络---BP神经网络具体应用不能说的秘密.

    秒懂神经网络---BP神经网络具体应用不能说的秘密 一.总结 一句话总结: 还是要上课和自己找书找博客学习相结合,这样学习效果才好,不能单视频,也不能单书 BP神经网络就是反向传播神经网络 1.BP神 ...

  4. Windows内存管理(2)--Lookaside结构 和 运行时函数

    1.      Lookaside结构 频繁的申请和回收内存,会导致在内存上产生大量的内存"空洞",从而导致最终无法申请内存.DDK为程序员提供了Lookaside结构来解决这个问 ...

  5. C不同变量类型存储大小引发的BUG

    #include"stdio.h" typedef signed char int8; typedef unsigned char uint8; typedef signed sh ...

  6. MyBatis mappers元素标签及其属性、配置

    mappers:映射器,以最佳的方式是告诉 MyBatis 到哪里去找映射文件. <!-- 使用相对于类路径的资源引用,要满足一个条件:1.即映射文件只要放在类路径下,就可以根据相对路径找到,放 ...

  7. 《Java语言程序设计》编程练习6.18(检测密码)

    6.18 (检测密码)一些网站对于密码具有一些规则.编写一个方法,检测字符串是否是一个有效密码.     假定密码规则如下:     • 密码必须至少8位字符.     • 密码仅能包含字母和数字. ...

  8. Landsat数据下载与介绍

    1 数据下载 根据时间选择不同的Landsat卫星传感器 根据经纬度选择对应的条带: Lansdat Analysis Ready Data (ARD) Tile Conversion Tool: 把 ...

  9. java异常继承何类,运行时异常与一般异常的区别

    一.基本概念 Throwable是所有异常的根,java.lang.ThrowableError是错误,java.lang.ErrorException是异常,java.lang.Exception ...

  10. 2019-9-11-在-P2P-文件分享应用以文件或文件段为单位的优缺

    title author date CreateTime categories 在 P2P 文件分享应用以文件或文件段为单位的优缺 lindexi 2019-09-11 10:23:27 +0800 ...