BBR优化了跨洋通讯么?
继续谈一点老生常谈的问题,即中国内地与亚洲之间晚高峰的丢包率很高,而通常大家的建议是使用BBR,这里就来谈谈BBR为何可以改善,以及是不是应当使用BBR。
BBR假设了网络通讯中出现“瓶颈一跳”,即多数排队或丢包都出现在这一跳。在不太拥堵的网络里,这个瓶颈通常要么是客户端的限速设备,要么是服务端的限速设备。
但是在跨洋网络中(特别的,以中外网络互联为例),这样的瓶颈通常是所谓C-I段汇聚层,而这一跳的特征与原始论文提到的并不同,即
- 通常而言在一段时间范围内,这一跳的丢包率与当前连接是独立的,因为单一连接的流量与这一跳的总流量相比可以忽略不计。
- 这一跳通常做不了queueing或者几乎不做?因为吞吐量过大,连接追踪、服务类型识别带来的开销过大?
所以结果往往是BBR在算法层面就会无视这一跳(因为这一跳不影响RTT),强行将速率拉满到客户端或服务端的端口限速附近。
然而假设全部连接都使用BBR,会发生什么?按照因果关系大概是如下过程:
- 该跨境链路的丢包率继续升高(因为BBR之间相互竞争,试图占用更多带宽)。
- 使用传统拥塞控制算法的TCP流量占比越来越小。因为丢包率更高后,传统TCP无法运行或几乎无法运行。
- 该跨境链路的丢包率升高至BBR算法也进入临界状态(即丢包率进一步上升后BBR也将无法正常工作)。
- 出现通过魔改参数可以在更高丢包率下幸存的BBR算法。
- 丢包率越来越高,TCP协议越来越吃力,全网负载越来越高(但是不少包都被丢弃)。
- 或许运营商需要出台新的拥塞控制政策,使用分布式的拥塞管理提前介入?
- 或许新的传输层协议和拥塞控制算法会被提出,以优化现有网络?
那么结论是什么?
BBR对于单个连接在整个网络的初期是有提升的,但是实际上是加剧了网络的负担。因此BBR对于跨洋通信的改善根本上来自于对其他传统TCP的压迫————而这种压迫只是暂时的,当越来越多的连接换成BBR后,带宽就抢不到了。