網(wǎng)絡(luò )通信數據丟包故障分析
假設,你去 Ping 個(gè)網(wǎng)站,如果能 Ping 通,且網(wǎng)站返回信息全?,則說(shuō)明與網(wǎng)站服務(wù)器的通信是暢通的;
本文引用地址:http://dyxdggzs.com/article/202306/448091.htm網(wǎng)絡(luò )丟包最常見(jiàn)的就是水晶頭氧化,網(wǎng)卡適配器損壞,網(wǎng)線(xiàn)環(huán)路,光衰過(guò)大等原因。
當網(wǎng)絡(luò )有問(wèn)題,首先我們會(huì )進(jìn)行 ping 命令測試是否丟包,用過(guò)的人都知道,可以使用命令:ping -t 192.168.16.1 或者 ping 192.168.16.1。
但是丟包的原因其實(shí)很多,定位問(wèn)題又難倒了不少萌新。今天分享一些常見(jiàn)的丟包故障定位法,希望能讓你遇到丟包莫慌。
01
什么是網(wǎng)絡(luò )丟包
說(shuō)明網(wǎng)絡(luò )丟包之前,你需要了解的是收發(fā)包的原理。
數據在 Internet 上是以數據包為單位傳輸的,單位為字節,數據在網(wǎng)絡(luò )上傳輸,受網(wǎng)絡(luò )設備,網(wǎng)絡(luò )質(zhì)量等原因的影響,使得接收到的數據小于發(fā)送出去的數據,造成丟包。
了解了收發(fā)包的原理,可以了解到,丟包原因主要會(huì )涉及?卡設備、?卡驅動(dòng)、內核協(xié)議棧三類(lèi)。
在文章開(kāi)頭說(shuō)到一點(diǎn),網(wǎng)絡(luò )丟包是在使用Ping對目的站進(jìn)行詢(xún)問(wèn)時(shí),數據包由于各種原因在信道中丟失的現象。
ping 命令使用了 ICMP 回送請求與回送回答報文。
ICMP 回送請求報文是主機或路由器向一個(gè)特定的目的主機發(fā)出的詢(xún)問(wèn),收到此報文的機器必須給源主機發(fā)送 ICMP 回送回答報文。
這種詢(xún)問(wèn)報文,是用來(lái)測試目的站是否可到達以及了解其狀態(tài)。
需要指出的是,Ping命令是直接使用網(wǎng)絡(luò )層 ICMP 協(xié)議的一個(gè)例子,它沒(méi)有通過(guò)運輸層的 UDP 或 TCP 協(xié)議。
網(wǎng)絡(luò )丟包是網(wǎng)絡(luò )中常見(jiàn)的故障之一,它會(huì )引起網(wǎng)速降低甚至造成網(wǎng)絡(luò )中斷。
發(fā)生網(wǎng)絡(luò )故障在所難免,但是如何快速隔離和排除故障是網(wǎng)絡(luò )工程師應該具備的基本素質(zhì)。
02
常見(jiàn)的丟包故障現象+處理方法
01 網(wǎng)絡(luò )數據包發(fā)送時(shí)通時(shí)斷,丟包嚴重
【故障現象】
通常故障發(fā)生時(shí),該方向網(wǎng)絡(luò )出現震蕩性中斷。使用ping命令測試,發(fā)現在一段時(shí)間內數據包發(fā)送延時(shí)比正常值略高,間隔一小段時(shí)間數據包又全部丟失,丟包率超過(guò) 60%,丟包曲線(xiàn)成規則狀,網(wǎng)絡(luò )服務(wù)基本不可用。
【故障分析】
在局域網(wǎng)中引起網(wǎng)絡(luò )發(fā)生振蕩性時(shí)斷時(shí)通,一般可能是由于互連的交換機中的某兩個(gè)交換機間出現了環(huán)路,或者某個(gè)交換機的兩個(gè)端口直接相連。
這樣就會(huì )造成局域網(wǎng)的生成樹(shù)協(xié)議構建失敗,不斷重復檢查并試圖構建新的生成樹(shù)網(wǎng)絡(luò ),從而導致網(wǎng)絡(luò )振蕩性通斷。
同時(shí),伴隨著(zhù)交換機間不斷重復地發(fā)送廣播包,就會(huì )形成“廣播風(fēng)暴”,使交換機負擔過(guò)重,網(wǎng)絡(luò )傳輸通道嚴重被堵塞,無(wú)法正常的處理通信數據。
環(huán)路雖然可能出現在某個(gè)接入交換機上,但會(huì )影響整個(gè)以三層交換機為核心的局域網(wǎng)的穩定運行。
【故障處理】
當發(fā)現網(wǎng)絡(luò )數據包發(fā)送時(shí)通時(shí)斷,丟包嚴重,特別是整個(gè)單位或整個(gè)樓層出現振蕩性中斷現象時(shí),則可以判定應該是該單位的某個(gè)交換機上出現了環(huán)路所致。
應首先查看各接入交換機的指示燈閃爍狀態(tài),通常出現環(huán)路狀況指示燈會(huì )急速閃爍,每秒4次以上,所環(huán)交換機更為突出。
逐個(gè)撥出交換機級聯(lián)接入網(wǎng)線(xiàn),同時(shí)實(shí)時(shí)監控交換機狀態(tài),在撥下某端口網(wǎng)線(xiàn)后,交換機指示燈恢復正常狀態(tài),再進(jìn)一步查找,會(huì )發(fā)現該連接線(xiàn)的末端有線(xiàn)路形成環(huán)路,清理該網(wǎng)線(xiàn)后,網(wǎng)絡(luò )恢復暢通。
02 網(wǎng)絡(luò )數據包發(fā)送超時(shí)現象嚴重,時(shí)有不規則丟包
【故障現象】
網(wǎng)絡(luò )突然出現嚴重堵塞,日常辦公程序不能正常運行,打開(kāi)網(wǎng)頁(yè)速度緩慢,有時(shí)會(huì )因超時(shí)而中斷。未發(fā)現網(wǎng)絡(luò )設備有任何問(wèn)題,該網(wǎng)絡(luò )中有幾臺計算機在入網(wǎng)后速度明顯變慢,在禁用網(wǎng)卡或者中斷網(wǎng)絡(luò )后恢復正常。
【故障分析】
首先,在一臺用戶(hù)終端上ping網(wǎng)關(guān)測試,結果可以ping通網(wǎng)關(guān),但是數據包發(fā)送超時(shí)現象嚴重,丟包率30%左右,丟包不規律。
其次,登陸用戶(hù)交換機,運行arp -a命令,發(fā)現網(wǎng)關(guān)IP和網(wǎng)關(guān)MAC地址指向正確。
通過(guò)上面的測試基本排除網(wǎng)絡(luò )設置錯誤以及ARP欺騙,丟包表現了一定的隨機性而沒(méi)有連續性和振蕩性的通斷,基本排除網(wǎng)絡(luò )環(huán)路問(wèn)題,初步判斷這種現象可能是病毒攻擊等引起的。
為此,需要進(jìn)一步獲取ARP信息、網(wǎng)絡(luò )中傳輸的原始數據包等信息。
再次,部署抓包分析。在該交換機上配置鏡像端口,并將維護終端接到此端口上,啟動(dòng)網(wǎng)絡(luò )協(xié)議分析工具(sniffer)捕獲分析網(wǎng)絡(luò )的數據通信,約10分鐘后停止。
在網(wǎng)絡(luò )分析系統主界面左邊的節點(diǎn)瀏覽器中發(fā)現,網(wǎng)絡(luò )中可能存在偽造IP地址攻擊或自動(dòng)掃描攻擊。
選擇連接視圖,發(fā)現在10分鐘內,網(wǎng)絡(luò )中共發(fā)起了12000多個(gè)連接,且狀態(tài)大多都是客戶(hù)端請求同步。
據此,斷定網(wǎng)絡(luò )中存在自動(dòng)掃描攻擊。
最后,詳細查看連接信息,發(fā)現這些連接大多都是由同一主機發(fā)起,選中任意一個(gè)連接,選擇數據包視圖,查看傳輸數據的原始解碼信息,發(fā)現這臺計算機正在主動(dòng)對網(wǎng)絡(luò )中其它主機的TCP 445端口進(jìn)行掃描攻擊,可能是主機感染病毒程序,或者有人正使用掃描軟件。通過(guò)分析圖表視圖,進(jìn)一步確定主機肯定存在自動(dòng)掃描攻擊。
【故障處理】
找到問(wèn)題根源后,對主機進(jìn)行隔離,經(jīng)過(guò)一段時(shí)間的測試,網(wǎng)絡(luò )丟包現象有所緩解,但沒(méi)有從根本上解決問(wèn)題。
于是再次啟動(dòng)網(wǎng)絡(luò )協(xié)議分析系統捕獲并分析,又發(fā)現了1臺相似情況的主機。據此基本可以斷定兩臺主機都是感染了病毒,且該病毒會(huì )主動(dòng)掃描網(wǎng)絡(luò )中其他主機是否打開(kāi)TCP 445端口,如果某主機打開(kāi)該端口,就攻擊并感染這臺主機。
如此循環(huán),即引發(fā)了上述的網(wǎng)絡(luò )故障。立即對新發(fā)現感染病毒的兩臺主機進(jìn)行物理隔離,網(wǎng)絡(luò )通信立刻恢復正常,再對該終端進(jìn)行殺毒處理。
03 網(wǎng)絡(luò )數據包發(fā)生嚴重延時(shí)現象,下載、瀏覽等服務(wù)不能正常使用
【故障現象】
局域網(wǎng)內部日常數據共享正常,但是出局瀏覽外網(wǎng)和下載數據時(shí)速度明顯降低,使用Ping命令發(fā)現到某個(gè)方向網(wǎng)絡(luò )時(shí)延特別大,甚至有少量丟包現象。
【故障分析】
一般通過(guò)telnet遠程登陸到該方向的交換機,以華為系列交換機為例,輸入下列命令:
#Display cpu 查看交換機CPU利用率
#Display memory 查看內存利用率
發(fā)現兩者都非常高,再通過(guò)輸入命令 #Display interface端口號,檢查各端口下的數據流。
對其數據流進(jìn)行抓包分析,發(fā)現多線(xiàn)程指向某網(wǎng)站電影欄目,為避免影響整個(gè)網(wǎng)絡(luò )的暢通,對所接入交換機進(jìn)行處理。
發(fā)現其中的兩個(gè)端口數據流量特別大,遠高于正常使用的網(wǎng)絡(luò )流量。對其數據流進(jìn)行抓包分析,發(fā)現多線(xiàn)程指向某網(wǎng)站電影欄目,為避免影響整個(gè)網(wǎng)絡(luò )的暢通,對所接入交換機進(jìn)行處理。
【故障處理】
進(jìn)入該端口配置界面下,輸入Shutdown命令,強制關(guān)閉該端口使其斷網(wǎng),聯(lián)系該終端使用人員,令其終止下載進(jìn)程后,再恢復其網(wǎng)絡(luò )。
寫(xiě)在最后:
最后想補充一點(diǎn),很多網(wǎng)工用Ping命令來(lái)檢測丟包情況,但其實(shí)除了Ping,常用的tracert,nslookup 都可以用來(lái)判斷主機的網(wǎng)絡(luò )連通性。
而且 Linux 下有一個(gè)更好用的網(wǎng)絡(luò )聯(lián)通性判斷工具,它可以結合ping nslookup traceroute 來(lái)判斷網(wǎng)絡(luò )的相關(guān)特性,這個(gè)命令就是 mtr。
mtr 全稱(chēng) my traceroute,是一個(gè)把 ping 和 traceroute 合并到一個(gè)程序的網(wǎng)絡(luò )診斷工具。
traceroute 默認使用 UDP 數據包探測,而 mtr 默認使用 ICMP 報文探測,ICMP 在某些路由節點(diǎn)的優(yōu)先級要比其他數據包低,所以測試得到的數據可能低于實(shí)際情況。
文章來(lái)源于網(wǎng)絡(luò ),版權歸原作者所有,如有侵權,請聯(lián)系刪除。
評論