當網路出現有規律的故障,我們要依靠原理來解釋這種現象。題主的問題可以歸納為:在電腦上使用PPPoE撥號,可以無障礙上網;而使用路由器的PPPoE撥號,出現間歇性的丟包與延遲,問題可以復現,說明問題並不是偶發,而是有規律的。問題癥結可能:電腦撥號產生一虛擬介面,由於有PPPoE頭部封裝,自動將虛擬介面MTU 設定成 1492,電腦上的TCP 的MSS 會動態生成 1452,這樣可以避免分片,所以網路一路暢通。路由器撥號也會產生一個MTU= 1492 的虛擬介面,但是電腦不知道該情況,依然傳送packet size = 1500 的包到達路由器,路由器只有被迫分片,分片需要耗費CPU資源,對效能的影響非常大,所以當流量上升到一個閥值,路由器處理不過來,會有丟包,同時延遲也會加大。解決方案:在電腦上修改MTU -> 1492 或 1480 ( 最好以4個位元組為一個單位),重啟電腦,問題應該消失。
當網路出現有規律的故障,我們要依靠原理來解釋這種現象。題主的問題可以歸納為:在電腦上使用PPPoE撥號,可以無障礙上網;而使用路由器的PPPoE撥號,出現間歇性的丟包與延遲,問題可以復現,說明問題並不是偶發,而是有規律的。問題癥結可能:電腦撥號產生一虛擬介面,由於有PPPoE頭部封裝,自動將虛擬介面MTU 設定成 1492,電腦上的TCP 的MSS 會動態生成 1452,這樣可以避免分片,所以網路一路暢通。路由器撥號也會產生一個MTU= 1492 的虛擬介面,但是電腦不知道該情況,依然傳送packet size = 1500 的包到達路由器,路由器只有被迫分片,分片需要耗費CPU資源,對效能的影響非常大,所以當流量上升到一個閥值,路由器處理不過來,會有丟包,同時延遲也會加大。解決方案:在電腦上修改MTU -> 1492 或 1480 ( 最好以4個位元組為一個單位),重啟電腦,問題應該消失。