TCP 的自然律

周一傍晚发了一则朋友圈:
在这里插入图片描述
放大配图,来自:How to transfer, share and send big files fast
在这里插入图片描述
我对此事的看法:“想高效利用庞大的资源需要的代价和资源规模的增加并不是线性的,而且指数的,下凸曲线”。这个看法来自于一本书,《规模:复杂世界的简单法则》。

看来,背后还是自然律。OK,看下这个配图是如何得到的。

基于 TCP 标准 AIMD 行为,简单推导下宏观吞吐公式。以下图,设 AI 参数为 a,MD 参数为 b,丢包率为 P:
在这里插入图片描述
可得,一个 AIMD 周期发送总量 N:

N

=

(

b

W

a

+

1

)

(

1

b

)

W

+

1

2

(

b

W

a

+

1

)

(

1

b

)

W

N=(\dfrac{bW}{a}+1)(1−b)W+\dfrac{1}{2}(\dfrac{bW}{a}+1)(1−b)W

N=(abW+1)(1b)W+21(abW+1)(1b)W

一个 AIMD 周期丢 1 个包:

P

=

1

N

P=\dfrac{1}{N}

P=N1

代入 N,则:

P

=

2

a

b

(

2

b

)

W

2

+

a

(

2

b

)

W

P=\dfrac{2a}{b(2-b)W^2+a(2-b)W}

P=b(2b)W2+a(2b)W2a

反解 W。一个忽略 W 一次项的近似解为:

W

=

2

a

b

(

2

b

)

P

W=\sqrt{\dfrac{2a}{b(2-b)P}}

W=b(2b)P2a

求一个 AIMD 周期平均吞吐率。以 1 个 RTT 为测速区间,最小发送量为 (1-b)W,最大发送量为 W,则吞吐率 T:

T

=

(

1

b

)

W

+

W

2

R

T

T

=

2

b

2

×

R

T

T

W

T=\dfrac{\dfrac{(1-b)W+W}{2}}{RTT}=\dfrac{2-b}{2\times RTT}W

T=RTT2(1b)W+W=2×RTT2bW

代入 W:

T

=

1

R

T

T

a

(

2

b

)

2

b

1

P

T=\dfrac{1}{RTT}\sqrt{\dfrac{a(2-b)}{2b}}\dfrac{1}{\sqrt{P}}

T=RTT12ba(2b)
P
1

设 T,RTT, P,分别为 z,x,y,由于 a, b 均为常数,不影响形状,Geogebra 3D 画图:
在这里插入图片描述
这就是朋友圈配图(离散版本)的连续版本,平滑包络线连接配图各点,与此形状一致。

以上就是 TCP 鸟样子背后自然规律的数学推导。如何理解这个规律呢?

能举起自身重量 300 倍的蚂蚁变成经理这么大也和经理一个鸟样,这个例子说过很多次。换个别的,同样来自《规模》。

增加暖气片数量带来的制暖效率的增速远慢于需要加热的空间体积,因为暖气片是二维的,空间是三维的。

换算到 AIMD TCP,吞吐增加所带来带宽利用率的增速远慢于 BDP 的增加。因为无论 RTT 增加还是丢包率增加,其作用都在 BDP 二维管道内延伸,而 AIMD TCP 吞吐的依据则仅来自于 ACK 信号,换句话说,AIMD 只需要 ACK,不需要时间。

一维量的增速远慢于二维量的增速。这是核心。

把时间和丢包维度考虑进来,就是 BBR 带宽利用率高的原因:

  • BBR 不在对 ACK 到达进行反应,二是对 packet round 内的速率进行反应。
  • 为对抗丢包,BBR 同样引入时间鲁棒性,坚持丢包前速率,取代立即反应。
  • 为弥补丢包损失,BBR 以 25% 增益补损,BBR 竟能忍受高达 20% 丢包率。

理想中的 BBR Throughput/Rrr/Loss 是(来自:https://www.ibm.com/cloud/smartpapers/aspera/transfer-large-files/):
在这里插入图片描述
现实中 BBR 据此非常遥远。也许是 TCP 固有缺陷导致,也许是别的。

经常有人问,40% 的增益是否能容忍 40% Loss,非常不对。TCP 端到端的本质使它无法识别 Loss 过程,40% 增益意味着 BBR 以 140% 的速率发送,这个增益将放大 MIMD。

无论怎样,BBR 仍保留了无视现实的假设。如多流场景下,当 buffer 开始 bloat,只要 probe 都会带来 delivery rate 增益,并不存在 BBR 假设的 btlBW*RTprop 上界的约束。

准备写个朴素的 tcp_caohejing 算法,实现一个新思路。但下回分解。

居家办公,省掉了通勤时间,吃完晚饭出去探视了家附近的烂尾楼,唏嘘。归家继续思考漕河泾算法,作为前奏把周一傍晚朋友圈里的配图解释一下。本文除了漕河泾算法的引,也算一本极佳的书《规模》的读后感。

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

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

欢迎关注

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

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

    TCP 的自然律

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

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

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

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

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

相关推荐