TCP拥塞控制算法 — CUBIC的补丁(五)
描述
以下是提交者Sangtae Ha对这个patch的描述:
make the delay threshold of HyStart less sensitive
Make HyStart less sensitive to abrupt delay variations due to buffer bloat.
代码
--- a/net/ipv4/tcp_cubic.c +++ b/net/ipv4/tcp_cubic.c @@ -39,7 +39,7 @@ /* Number of delay samples for detecting the increase of delay */ #define HYSTART_MIN_SAMPLES 8 -#define HYSTART_DELAY_MIN (2U<<3) +#define HYSTART_DELAY_MIN (4U<<3) #define HYSTART_DELAY_MAX (16U<<3) #define HYSTART_DELAY_THRESH(x) clamp(x, HYSTART_DELAY_MIN, HYSTART_DELAY_MAX)
评价
增大了Delay Increase的最小阈值,减小HyStart因为正常的时延抖动而过早退出的概率。
我们知道目前的路由器缓存普遍偏大,这就意味着排队时延的抖动不可避免。
之前Delay Increase的阈值:
(1) delay_min < 32ms, threshold = 2ms
(2) 32ms <= delay_min <= 256ms, threshold = delay_min/16 ms
(3) delay_min > 256ms, threshold = 16ms
现在Delay Increase的阈值:
(1) delay_min < 64ms, threshold = 4ms
(2) 64ms <= delay_min <= 256ms, threshold = delay_min/16 ms
(3) delay_min > 256ms, threshold = 16ms
Author
zhangskd @ csdn blog