
答案1
如果上游或下游網路頻寬飽和導致延遲激增,則表示網路路徑中的某些設備(可能是寬頻數據機或ISP 的CMTS 或DSLAM)存在一個眾所周知的錯誤,稱為“緩衝膨脹”,即設備上的緩衝過多增加延遲卻沒有任何好處。
緩衝區膨脹的修復方法是將有問題的裝置的排隊演算法(又稱佇列規則、網路排程器)升級為延遲感知智慧排隊演算法,例如 FQ-CoDel。
如果您無法修復有問題的實際盒子,您可以透過在網路前端設定帶有 FQ-CoDel 的盒子並調整其流量整形以使其成為上游和下游的輕微瓶頸來解決此問題方向。這樣,FQ-CoDel 就可以啟動並允許 TCP 擁塞控制發揮作用,然後再在有問題的盒子上建立臃腫的緩衝區佇列。
您可以使用 LEDE(以前稱為 OpenWrt)等開源路由器韌體發行版自行完成此操作,但如果您想要交鑰匙解決方案,請查看 Evenroute.com 上的 IQrouter。它顯然會全天自動調整頻寬整形,最大限度地提高吞吐量,同時最大限度地減少延遲。
許多沒有了解緩衝區膨脹的人錯誤地認為延遲峰值是網路連結飽和的自然結果。許多人也透過調整 QoS 來解決緩衝區膨脹問題,嘗試優先考慮某些流而不是觸發膨脹的大流。但直接解決緩衝區膨脹要好得多,因為它改善了所有流量,甚至是觸發膨脹的大流量。
答案2
每個 Internet 連線都有兩個方向:從使用者到 Internet 以及回傳。每個方向在 QoS 和路由資料包遍歷方面都是獨立的。
設定 OUTGOING 封包的優先權不會變更 INCOMING 封包的優先權。傳入資料包的優先順序和 QoS 仍然由您的 ISP 控制。
如果您可以選擇在 ISP 端確定流量的優先順序 - 您應該嘗試一下。否則,您唯一的選擇是對傳入的「盡力而為」流量進行速率限制,以便您始終有一些頻寬用於 ping 或其他「高優先級」流量。
不幸的是,這不是一個解決方案,但我希望它能幫助您理解這個問題。