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