TCP Illinois 与 TCP Highspeed
Posted dog250
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP Illinois 与 TCP Highspeed相关的知识,希望对你有一定的参考价值。
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 了,前者是启发式,后者是查表,值得揣摩。因此写一篇文字。
浙江温州皮鞋湿,下雨进水不会胖。
以上是关于TCP Illinois 与 TCP Highspeed的主要内容,如果未能解决你的问题,请参考以下文章