Routers have packet buffers to reduce packet drops during times of congestion. It is important to correctly size the buffer: make it too small, and packets are dropped unnecessarily and the link may be underutilized; make it too big, and packets may wait for a long time, and the router itself may be more expensive to build. Despite its importance, there are few guidelines for picking the buffer size. The two most well-known rules only apply to long-lived TCP Reno flows; either for a network carrying a single TCP Reno flow (the buffer size should equal the bandwidth-delay product, or $BDP$) or for a network carrying $n$ TCP Reno flows (the buffer size should equal $BDP/\sqrt{n}$). Since these rules were introduced, TCP Reno has been replaced by newer algorithms as the default congestion control algorithm in all major operating systems, yet little has been written about how the rules need to change. This paper revisits both rules. For the single flow case, we generalize the $BDP$ rule to account for changes to TCP, such as Proportional Rate Reduction (PRR), and the introduction of new algorithms including Cubic and BBR. We find that buffers can be made 60-75% smaller for newer algorithms. For the multiple flow case, we show that the square root of $n$ rule holds under a broader set of assumptions than previously known, including for these new congestion control algorithms. We also demonstrate situations where the square root of $n$ rule does not hold, including for unfair flows and certain settings with ECN. We validate our results by precisely measuring the time series of buffer occupancy in a real network, and comparing it to the per-packet window size.
翻译:路由器有封存缓冲, 以在拥堵时减少包滴。 重要的是要正确缩小缓冲的大小: 使包太小, 不必要地减少包包, 链接可能得不到充分利用; 使包太大, 包可能等待很长时间, 路由器本身可能更昂贵 。 尽管这些规则很重要, 但选择缓冲大小的指南很少。 两个最著名的规则只适用于长期的 TCP Reno 流; 要么 包含单一 TCP Reno 流流的网络( 缓冲规模应该等于带宽错产值或$BDP$ ), 要么 包含美元流的 TCP Reno 流的网络( 缓冲规模应该等于$DP/ sqrt{n} ) ; 由于这些规则被引入了, TCP Reno 被新的算法取代了, 在所有主要操作系统中的默认通缩缩算算法中, 但关于规则需要修改的书却很少。 对于单一流的情况, 我们一般地将 $ CP 的 值 规则 规则 用于对 TCP 中 的 的 的 的, 规则 规则 规则 规则 规则, 规则 规则, 规则 规则 规则 规则 规则 规则, 我们一般化地将 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则, 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则, 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则, 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则 规则