網路丟包是什麼?怎麼解決

  網路丟包是我們在使用ping對目站進行詢問時,資料包由於各種原因在通道中丟失的現象。ping使用了ICMP回送請求與回送回答報文。ICMP回送請求報文是主機或路由器向一個特定的目的主機發出的詢問,收到此報文的機器必須給源主機發送ICMP回送回答報文。這種詢問報文用來測試目的站是否可到達以及瞭解其狀態。需要指出的是,ping是直接使用網路層ICMP的一個例子,它沒有通過運輸層的UDP或TCP。

  網路丟包的原因主要有物理線路故障、裝置故障、病毒攻擊、路由資訊錯誤等,下面我們結合具體情況進行說明。

  物理線路故障

  網管員發現廣域網線路時通時斷,發生這種情況時,有可能是線路出現故障,也可能是使用者方面的原因。為了分清是否是線路故障,可以做如下測試。

  如果廣域網線路是通過路由器實現的,可以登入到路由器,通過擴充套件ping向對端路由器廣域網介面傳送大量的資料包進行測試。

  如果線路是通過三層交換機實現,可線上路兩端分別接一臺計算機,並將IP地址分別設為本端三層路由交換機的廣域網介面地址,使用“ping 對端計算機地址 -t”命令進行測試。

  如果上述測試沒有發生丟包現象,則說明線路運營商提供的線路是好的,引起故障的原因在於使用者自身,需要進一步查詢。

  如果上述測試發生丟包現象,則說明故障是由線路供應商提供的線路引起的,需要與線路供應商聯絡儘快解決問題。

  由物理線路引起的丟包現象還有很多,如光纖連線問題,跳線沒有對準裝置介面,雙絞線及RJ-45接頭有問題等。另外,通訊線路受到隨機噪聲或者突發噪聲造成的資料報錯誤,射頻訊號的干擾和訊號的衰減等都可能造成資料包的丟失。我們可以藉助網路測試儀來檢查線路的質量。

  裝置故障

  裝置故障主要是指裝置硬體方面的故障,不包含軟體配置不當造成的丟包。如網絡卡是壞的,交換機的某個端口出現了物理故障,光纖收發器的電埠與網路裝置介面,或兩端裝置介面的雙工模式不匹配。

  筆者近日在工作中發現一交換機埠的光纖模組故障造成的丟包現象,該交換機在通訊一段時間後宕機,即不能通訊,重啟後恢復正常。在經過一段時間觀察後發現,某光纖模組存在問題,取一塊新的模組替換,一切正常。究其原因,交換機會對所有接收到的資料包進行CRC錯誤檢測和長度校驗,將檢查出有錯誤的包丟棄,正確的包轉發出去。但這個過程中有些有錯誤的包在CRC錯誤檢測和長度校驗中都均未檢測出錯誤,這樣的包在轉發過程中不會被髮送出去,也不會被丟棄,它們將會堆積在動態快取中,永遠無法傳送出去,等到快取中堆積滿了,就會造成交換機宕機的現象。最終結果是,資料包無法到達目的主機。

  網路擁塞

  網路擁塞造成丟包率上升的原因很多,主要是路由器資源被大量佔用造成的。

  如果發現網速慢,並且丟包率呈現上升的情況,這時應該show process cpu和show process mem,一般情況下發現IP input process佔用過多的資源。接下來可以檢查fast switching在大流量外出埠是否被禁用,如果是,則需要重新使用。

  再看一下Fast switching on the same interface是否被禁用,如一個介面配有多個網段並且這些網段間流量很大時,路由器工作在process-switches方式,這種情況下要在介面上執行命令“enable ip route-cache same-interface”。

  接下來,用show interfaces和show interfaces switching命令識別大量包進出的埠。一旦確認進入埠後,開啟IP accounting on the outgoing interface看其特徵,如果是攻擊,源地址會不斷變化但是目的地址不變,可以用命令“access list”暫時解決此類問題***最好在接近攻擊源的裝置上配置***,最終解決辦法是停止攻擊源。

  應用中遇到的造成網路擁塞的情況還有很多,如大量的UDP流量,可以用解決spoof attack的步驟解決此問題。大量的組播流、廣播包穿越路由器,路由器配置了IP NAT並且有很多DNS包穿越路由器等。上述情況造成網路擁塞後,通訊雙方採取流量控制,丟棄不能傳輸的包。

  路由錯誤

  網路路徑錯誤也會導致資料包不能到達目的主機,如主機的預設路由配置錯誤,主機發出的訪問其他網路的資料包會被閘道器丟棄。但此類丟包屬於正常情況下的丟包,是意料之中的,不會對網路造成影響。