IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 基于丢包的TCP拥塞控制:从 Reno 到 Bic 与 Cubic -> 正文阅读

[网络协议]基于丢包的TCP拥塞控制:从 Reno 到 Bic 与 Cubic

Reno

传统的TCP Reno算法有慢启动,拥塞避免,快速重传快速恢复阶段。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUagoUlH-1641558581588)(https://secure2.wostatic.cn/static/egnj2bR2xvUueNtLaYL7KU/image.png)]

Reno算法存在的问题主要有:

  • 受链路Buffer(缓冲区)影响很大。Buffer小于BDP会很容易丢包,速度一直上不去;Buffer太大会延迟严重,易发生超时重传。
  • 对高带宽网络利用率低。CA阶段,每经过一个RTT拥塞窗口大小加1,收敛速度太慢。
  • 对共享链路其他RTT较大的连接不友好。RTT小的连接会抢占带宽,不公平。

之后又对Reno算法一些细节进行改进诞生了New Reno算法、SASK算法。

后来又诞生了BIC算法。

Bic算法

BIC和CUBIC的慢启动、快速重传恢复阶段与Reno相同。

发生丢包时定义最大拥塞窗口为Wmax,采用乘性减减小拥塞窗口至WminWmax = β * Wmin,β为小于1的系数。此时实际最佳窗口值应该在WmaxWmin之间,此时BIC算法在这个区域采用二分搜索,每经过一个RTT,便将窗口设置到WmaxWmin的中点,如果没有丢包,则更新Wmin为当前cwnd值,一直持续到接近Wmax,直到二者之差小于Smin。

但是在一个RTT里面增长过多会造成传输上的抖动,因而BIC-TCP选取了另外取了两个参考值,称为Smax和Smin,如果中点和当前cwnd值的差大于Smax的话,那么cwnd就只增长Smax。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B7rk6Yby-1641558581589)(https://secure2.wostatic.cn/static/4bjZQEvyjdebEK2fvNV84H/image.png)]

没有丢包情况下达到Wmax,说明链路发生变化,可用带宽更大,就需要快速抢占带宽测试新的天花板Wmax,进入最大窗探测过程(Max Probing)阶段,首先把Wmax设置为一个非常大的值,然后BIC采取了一个类似慢启动策略,每个RTT后窗口值变为cwnd+1,cwnd+2,…,cwnd+Smax,直到增长为Smax的时候再次进入二分阶段。

BIC在离Wmax较远时,窗口增速很快,如果将BIC广泛应用到RTT较小,丢包较高的网络中去,BIC的增窗策略太激进了,大量的抢占了资源,公平性难以保证。其次,BIC的的窗口控制阶段较多,还有Smax和Smin的区分,增加了算法实现复杂度。

Cubic算法

CUBIC是对BIC的改进。

CUBIC用一个三次多项式代替了BIC增长曲线,对窗口增长机制进行了简化,保证了快速探测合适的拥塞窗口。并且不再以RTT为单位,窗口增长函数仅仅取决于连续的两次拥塞事件的时间差,保证了公平性。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9DJYDXyo-1641558581589)(https://secure2.wostatic.cn/static/nfwRpLsJ3PpBCBNxUd5F2r/image.png)]

c w n d = C ( t ? K ) 3 + W m a x cwnd = C(t-K)^3+W_{max} cwnd=C(t?K)3+Wmax?

K = β W m a x / C 3 K = \sqrt[3] {\beta W_{max}/C} K=3βWmax?/C ?

其中:

t t t为当前时间和上次窗口降低之间的时间差。

C C C为系数,较大时曲线更陡。

K K K在上次丢包时更新,计算多长时间达到Wmax

β β β为小于1的系数,Wmax = β * Wmin

t t t K K K越远,曲线增加越快,接近 K K K时曲线近乎水平。

当窗口太小使得CUBIC不能获得比传统TCP更好的性能时,例如在一次丢包事件后,经过t时间,如果CUBIC的增窗速度小于标准TCP,则采用标准TCP增加的窗口大小。

Cubic优点有:

  • 与RTT无关,更公平。
  • 更适合BDP大的网络。

Cubic存在的问题有:

  • 当带宽变化时,cwnd跟随比较慢。因为三次曲线中间部分几乎是水平的。
  • 更容易导致BufferBloat,即在Buffer较大时,容易导致Buffer难以清空,延迟会很高。
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:25:09  更:2022-01-08 14:25:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 12:30:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码