什麼是網路丟包?
網際網路採用封包交換技術,資料被切割成固定大小的「封包」獨立傳輸,中間必然存在間隙。丟包是指封包在傳輸過程中未能成功抵達目的端,導致接收端缺少部分數據。這是封包交換網路的固有特性,並非異常錯誤。
核心成因
- 網路擁塞:路由器/交換機緩衝區溢位,被迫丟棄封包(最常見)。
- 訊號衰減與干擾:長距離傳輸、劣質線材、電磁干擾導致位元錯誤,CRC 校驗失敗後被丟棄。
- 設備故障/效能瓶頸:網路卡、交換機埠過熱、CPU 高載、軟體錯誤。
- 路由震盪/環路:封包在網路中迴圈傳輸直至 TTL 歸零被丟棄。
- 安全策略/防火牆:主動攔截可疑封包。
傳輸層的自動恢復機制
TCP 協定提供可靠傳輸:序號、確認應答(ACK)、超時重傳、快速重傳、SACK 等機制自動補齊遺失封包。對應用層呈現「近似無損」體驗。UDP 無內建重傳,需應用層自行處理(如串流視訊採用 FEC、NACK 或單純容忍丟包)。
線路品質對丟包率的決定性影響
- 優質線路:丟包率 < 0.1%,TCP 補包迅速完成,體感近乎零丟包。
- 劣質線路(老舊電話線、不穩定無線、長距離光纖衰減大):丟包率飆升至 1%~5% 甚至更高,TCP 重傳風暴導致延遲暴增、吞吐量崩潰,視訊凍結、遊戲卡頓、檔案傳輸中斷。
快速診斷指令
ping -t 目標IP # 觀察丟包率與延遲抖動
tracert 目標IP # 定位丟包發生節點
pathping 目標IP # 結合兩者統計各跳丟包率