網站與速度

Bufferbloat:網路忙碌時通話延遲

Bufferbloat(緩衝區膨脹)是網路裝置在緩衝區中暫存過多資料而增加的延遲。網路忙碌時,通話和遊戲就會延遲。

適用於:所有目前的 macOS 版本。networkQuality 需要 macOS 12 Monterey 以上版本。檢查日期:2026年10月29日

症狀

  • 備份或上傳進行時,通話凍結或聲音斷斷續續。
  • 其他裝置下載時,遊戲延遲。
  • 大量傳輸時網頁載入很慢,但速度測試結果很快。

可能原因

  • 路由器或數據機的緩衝區太大。連結滿載時,封包會在很長的佇列中等待,每次等待都會增加延遲。
  • 上傳占滿連結。上傳頻寬通常比下載小很多,所以上傳很快就會占滿。
  • 路由器沒有佇列管理。智慧佇列管理可以讓佇列保持很短。不是每台路由器都有這個功能,或者它是關閉的。

如何檢查

  1. 在沒有其他裝置使用網路時執行 networkQuality,記下回應能力數值。

    networkQuality
  2. 在另一台裝置上開始大量上傳或下載,再執行一次測試。

    networkQuality
  3. 比較兩次結果。如果負載下的回應能力大幅下降,就表示有 Bufferbloat。

  4. 簡單的測試方法:在上傳進行時 ping 一台伺服器,觀察時間上升。

    ping 1.1.1.1
  5. 按 Control-C 停止 ping。

如何修正

  1. 打開路由器的設定,尋找 SQM、智慧佇列管理或類似的 QoS 設定。

  2. 如果路由器有這個功能,就把它開啟。速度數值請依照路由器製造商的說明設定。

  3. 如果路由器沒有這個功能,就把大量上傳和備份安排在不打電話的時段。

  4. 重要通話期間暫停雲端同步。

  5. 詢問你的網路業者,數據機或路由器是否支援佇列管理。

使用 Kilobat

  1. Kilobat 的速度測試會回報負載下的延遲,並將 Bufferbloat 評為「低」、「中等」、「高」或「無法判定」。

    kilobat speedtest --json

    輸出addedLatencyMs 和 bufferbloat,並附上對通話和串流的評估。

  2. 增加的延遲低於 15 ms 為「低」,低於 60 ms 為「中等」,60 ms 以上為「高」。

  3. 若要找出正在上傳的 App,請依上傳量排序即時流量。

    kilobat status --watch
  4. 使用 Pro 和網路過濾器,可以在通話期間阻擋某個 App。請參閱測試通話卡頓。

常見問題

Bufferbloat 是我的 Mac 的問題嗎?

通常不是。過大的緩衝區位於路由器、數據機或網路業者的網路中,Mac 只是呈現出結果。

升級更快的方案能解決 Bufferbloat 嗎?

不一定。更大的頻寬可能有幫助,但傳輸占滿整條連結時,佇列仍然會塞滿。

資料來源

資料來源檢查日期:2026年10月29日。man 頁面為 macOS 內建版本;在終端機中用 man <name> 開啟。