跨國傳輸最怕高延遲和丟包,偏偏默認的 Linux TCP 參數都偏保守,帶寬利用率很低。調幾個內核參數、開個 BBR 擁塞控制,就能讓傳輸速度有明顯提升。

一、TCP性能瓶頸分析

TCP協議為了保證可靠性,在丟包時會觸發重傳機制。傳統的擁塞控制算法(如Cubic/Reno)均基於丟包反饋:一旦發生丟包,發送窗口(CWND)就會減半,導致吞吐量急劇下降。

在高延遲(RTT > 200ms)和有一定丟包率(Loss > 1%)的網絡環境下,Cubic算法表現極差,帶寬利用率可能不足10%。

二、開啓TCP BBR算法

BBR(Bottleneck Bandwidth and Round-trip propagation time)是Google開發的擁塞控制算法。它不以丟包作為擁塞信號,而是通過測量帶寬和RTT來決定發送速率。

實測效果:在1%丟包環境下,吞吐量可提升10倍以上。

開啓方法(Linux內核4.9+):

# 修改sysctl配置
echo "net.core.default_qdisc = fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control = bbr" >> /etc/sysctl.conf

# 生效配置
sysctl -p

# 驗證(若顯示tcp_bbr模塊即成功)
lsmod | grep bbr

三、其他內核參數優化

除了BBR,調整TCP緩衝區大小也很關鍵:

1. 增大TCP緩衝區

# 接收緩衝區(最小 默認 最大)
net.ipv4.tcp_rmem = 4096 87380 67108864
# 發送緩衝區
net.ipv4.tcp_wmem = 4096 65536 67108864

2. 開啓TCP Fast Open (TFO)

允許在握手階段發送數據,減少一個RTT延遲。

net.ipv4.tcp_fastopen = 3

3. 調整Time Wait

加快TIME_WAIT狀態連接的回收。

net.ipv4.tcp_tw_reuse = 1

四、使用QUIC (HTTP/3)

如果TCP優化到了極限仍無法滿足需求,可以考慮使用基於UDP的QUIC協議。

  • 無隊頭阻塞:單個流丟包不影響其他流。
  • 連接遷移:網絡切換(如WiFi切4G)連接不斷。
  • 0-RTT握手:建連速度更快。

飛盾雲網絡優化技術

飛盾雲在底層網絡棧進行了深度定製:

  • 全鏈路BBR:所有邊緣節點默認開啓BBR+算法。
  • 協議棧優化:針對移動網絡和弱網環境專項調優。
  • 支持QUIC:完美支持HTTP/3協議,進一步降低延遲。
  • 動態路由:智能避開網絡擁塞路徑。

總結

對於海外服務器,開啓TCP BBR是性價比最高的優化手段。結合合理的內核參數調整,可以顯著改善用户的訪問體驗。如果條件允許,升級到HTTP/3協議將是未來的終極解決方案。