한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

遊戲 Lag 白皮書 › L3 家用網路

Bufferbloat(分享器佇列) Bufferbloat

原因 ID hn-bufferbloat · 主要負責 外部(外部) · 協同 遊戲開發團隊(用戶端開發)

在含圖解與實驗的完整版中開啟卡片 →

家人上傳影片或下載大型檔案時,分享器佇列會堆積相當於數百 ms 的封包,遊戲封包也得排在後面等待。

為什麼 家人上傳影片、雲端備份、自己的直播推流、大量下載把線路塞滿 → 於是 分享器或數據機把滿出來的封包堆進很大的佇列 → 畫面上 遊戲封包也排在佇列後面等待,ping 暴增到數百 ms

症狀
輸入延遲, 快轉, 瞬移
因素
延遲, 抖動
誰會遇到
同一個家, 只有我
何時
偶爾隨機發生, 晚間尖峰時段
負責單位
主要負責 外部(外部) · 協同 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
ping 突然升到數百 ms 時在畫面上顯示網路狀態(提示可能有同一條線路上的大量傳輸)。
外部要做的事
引導玩家使用有 SQM(fq_codel、CAKE)或 QoS 的分享器,把 SQM 速率設為線路速度的 90~95%(這樣佇列才會產生在分享器內,才有效果),並限制上傳速度。
數值參考
上傳 10Mbps 的線路配上 1MB 緩衝區,佇列最長會累積到相當於 800ms 的量。
圖表上
隨人數/負載上升 · RTT、線路上傳與下載用量
查看位置
開著 ping 用測速把線路塞滿,或使用量測負載下延遲的網頁測試(Bufferbloat.net 的說明)。與分享器介面上的上傳、下載用量一起查看
符合的跡象
上傳或下載塞滿線路的期間 ping 升到數百 ms,傳輸結束後恢復(負載下延遲超過 50ms 就值得懷疑)。開啟 SQM 後消失
不符合的跡象
線路很閒 ping 卻飆高時,是「Wi-Fi 干擾與訊號減弱」或「線路品質不良」
確認方式
在玩家端環境確認
深入了解
上傳方向特別容易塞住,因為 Cable 寬頻與行動網路的上傳頻寬往往比下載窄得多。光纖頻寬充足的家庭則是 Wi-Fi 區段成為瓶頸,同樣的情況會發生在分享器的無線佇列。遊戲封包很小,幾乎不占頻寬,但同樣得在佇列中等待。只有上傳方向塞住時,延遲的只有自己的輸入,其他人的動作正常。手機上,同一支手機的照片備份與 App 更新會塞滿手機數據機與基地台的佇列,造成同樣的情況。

出處

  1. Setting up SQM for CeroWrt 3.10 Bufferbloat.net
    要把 SQM 速率降到實測速度的 95%(以宣傳速度為準時為 85%),把瓶頸從電信業者設備移到分享器內才有效果
  2. SQM (Smart Queue Management) OpenWrt
    下載、上傳速度輸入實測值的 90%,佇列演算法建議用 cake(CPU 較弱時用 fq_codel)
  3. Ending the Anomaly: Achieving Low Latency and Airtime Fairness in WiFi (USENIX ATC 2017) USENIX
    Wi-Fi 區段塞滿時,分享器的無線佇列會產生數百 ms 的延遲;改善無線佇列後,負載下的延遲約降為 10 分之 1
  4. Tests for Bufferbloat Bufferbloat.net
    開著 ping 用測速把線路塞滿,ping 上升就是 bufferbloat;負載下延遲超過 50ms(或評等低於 B)時建議採取對策

相關原因

同一層:L3 家用網路

同一症狀(輸入延遲)在其他層的原因

查看含圖解與實驗的完整版卡片