TCP Illinois 与 TCP Highspeed-CSDN博客

TCP Illinois (TCP 伊利诺斯)是一个自适应 AIMD 算法:

http://tamerbasar.csl.illinois.edu/LiuBasarSrikantPerfEvalArtJun2008.pdf

其典型特征:

  • Loss 作为 primary signal 控制 AIMD 方向,Delay 作为 secondary signal 控制 AIMD 程度。
  • Delay 越大,AI 参数 α 越小。
  • Delay 越大,MD 参数 β 越大。

设 Davg 为 RTT 均值,Illinois 实现非常简单:

  • α

    =

    f

    1

    (

    D

    a

    v

    g

    )

    α=f1(D_{avg})

    α=f1(Davg)

    D

    a

    v

    g

    D_{avg}

    Davg 的减函数。

  • β

    =

    f

    2

    (

    D

    a

    v

    g

    )

    β=f2(D_{avg})

    β=f2(Davg)

    D

    a

    v

    g

    D_{avg}

    Davg 的增函数。

因此 Illinois 的 cwnd 曲线总体上是上凹的。

接下来看 cwnd(后面记为 W)具体的上凹形态。

需判定 α 变化率的走向,即其导数,有三种:

  • 随 Delay 增加, α 降速先快后慢。
  • 随 Delay 增加, α 匀速降低。
  • 随 Delay 增加, α 降速先慢后快。

考虑到三种变化规律单调均匀,可排除匀速。随着 Delay 的增加,拥塞程度增加,加速比降低,选择第一种是高尚的,可保证在拥塞严重到即将丢包的后期,AI 增窗既小又平稳。

α 函数选择双曲线下凸的一支,而不是上凸的那一支,也不是直线,无疑是高尚的。至于 α 的函数表达式,根据双曲线上两点

P

1

(

d

1

,

α

m

a

x

)

P1(d_1,α_{max})

P1(d1,αmax)

P

2

(

d

m

,

α

m

i

n

)

P2(d_m,α_{min})

P2(dm,αmin) ,有一蔟曲线满足,选一条即可。

大致如下图:
在这里插入图片描述

Wiki 主页上的一幅图展示了 Illinois 高效。
在这里插入图片描述
漕河泾算法和 Illinois 类似,不同在于漕河泾算法以 delivery rate 而非 Delay 为 singal,因为 delivery rate 更准确,甚至不用设计 f1 和 f2 ,直接利用下列推论即可:

  • 拥塞程度越高,delivery rate 加速比越小,直至转为 decreasing。
  • 拥塞程度越低,delivery rate 加速比越大,保持 increasing 或转为 increasing。

我本想将 TCP Illinois 改为 delivery rate based,没动手的原因在于改了之后就和漕河泾算法一致了。漕河泾算法也有一版 cwnd-based,也是 AIMD。

再说一个算法,TCP highspeed,去年过年时写过一个分析:漫谈TCP High Speed与TCP Africa(TCP China),它大致的想法也是简单:

  • 带宽越高,W 越大,AI 越大,MD 越小。

本质上也是可变 AIMD 参数, AI 参数渐增,MD 参数渐减,但它们不是 Delay 的函数,而是 cwnd 的函数:

  • α

    =

    f

    1

    (

    W

    )

    α=f1(W)

    α=f1(W) 为窗口 W 的减函数。

  • β

    =

    f

    2

    (

    W

    )

    β=f2(W)

    β=f2(W) 为窗口 W 的增函数。

不同点在于,W 和 Loss 并非正交,而是相关的:

  • W 是连续递增的,若要更高的 W,必须持续足够久的时间不丢包从而有足够高的 W 作为基础。

so,在随机或连续丢包的场景下,highspeed 的带宽利用率不如 Illinois。但若 highspeed 不引入 Delay 探测,仅凭 ACK 到达无法区分拥塞丢包和噪声丢包,说到底还是信息不足,可如果加入了 Delay 探测,就和 Illinois 一样了,说到底 AIMD 最终都是一回事,输入信息量不同而已。

关于拥塞控制算法的分类,长久以来按照 Loss-based,Delay-based 维度分类,Illinois 算是二者的混合。

曾经做过一个 cugas(或叫 vebic) 的算法,即 cubic + vegas 的混合,但在细节中两个算法是独立起作用并辅助另一个,二者交替作为 primary,secondary control,类似 bloom 多个 filter 共同确认的机制来判断拥塞。

Illinois 和 cugas 不同点在于,Loss 和 Delay 交融起作用,一起完成 AIMD。用 Delay 度量 AIMD,粒度更细,和传统 Loss-based AIMD 相比,Delay 作为新输入,增加了信息量,提高了决策精度。

虽然 TCP Illinois 已经出来很久了,但这无疑是一种新样式儿。

直到现在,BBR 仍被很多人认为是真正 Delay-based 算法,即便它自称 model-based 也没用,似乎人们只认 Loss-based 和 Delay-based。BBRv2 加强了对丢包的反应,它是不是能被归到 compound 一类呢?

真实情况是,不要轻易分类,分类出了禁锢思想告诉你不能怎样之外,没什么好处,正如文科生也可以解微分方程,理科生也能写散文一样。

端到端传输协议的拥塞控制,用得最多的就是 AIMD,万变不离其宗的 AIMD,它和 Loss-based 基本相一致。细分常见的拥塞控制算法,BIC/CUBIC 几乎就是 Reno,HSTCP,HTCP,TCP Illinois,TCP Westwood 无非是细化了 AIMD 的细致行为,或者粒度更细致,或者控制信息更充足,最为典型的就是 TCP Illinois 和 TCP HighSpeed 了,前者是启发式,后者是查表,值得揣摩。因此写一篇文字。

浙江温州皮鞋湿,下雨进水不会胖。

原文链接: https://blog.csdn.net/dog250/article/details/127000110

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    TCP Illinois 与 TCP Highspeed-CSDN博客

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/405389

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午9:10
下一篇 2023年4月26日 上午9:10

相关推荐