溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ping程序和tracert(traceroute)背后的故事--ICMP協(xié)議

發(fā)布時(shí)間:2020-07-13 08:56:31 來(lái)源:網(wǎng)絡(luò) 閱讀:420 作者:davidwang456 欄目:編程語(yǔ)言

為路由器生,為交換機(jī)死,為了Ping通奮斗一輩子-----tracert.cn
上面是一個(gè)網(wǎng)絡(luò)工程師的個(gè)人定位,很有意思,哈哈!那么我們來(lái)看看ping和tracert都是什么吧

PING (Packet Internet Groper),因特網(wǎng)包探索器,用于測(cè)試網(wǎng)絡(luò)連接量的程序。

Tracert(tracerout)是路由跟蹤實(shí)用程序,用于確定 IP 數(shù)據(jù)包訪問(wèn)目標(biāo)所采取的路徑。

1.準(zhǔn)備工作

安裝好wireshark。Wireshark(前稱Ethereal)是一個(gè)網(wǎng)絡(luò)報(bào)文分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。Wireshark使用WinPCAP作為接口,直接與網(wǎng)卡進(jìn)行數(shù)據(jù)報(bào)文交換。

2.抓取報(bào)文

打開(kāi)wireshark,并開(kāi)啟監(jiān)聽(tīng)模式,啟用ICMP過(guò)濾,打開(kāi)cmd命令窗口,輸入 ping 172.16.64.1(網(wǎng)關(guān)) ,等待返回后,最后停止wireshark監(jiān)聽(tīng),并保存文件。

3.ping命令

Tracert 命令用 IP 生存時(shí)間 (TTL) 字段和 ICMP 錯(cuò)誤消息來(lái)確定從一個(gè)主機(jī)到網(wǎng)絡(luò)上其他主機(jī)的路由。Ping發(fā)送一個(gè)ICMP(Internet Control Messages Protocol)即因特網(wǎng)信報(bào)控制協(xié)議;回聲請(qǐng)求消息給目的地并報(bào)告是否收到所希望的ICMPecho (ICMP回聲應(yīng)答)。它是用來(lái)檢查網(wǎng)絡(luò)是否通暢或者網(wǎng)絡(luò)連接速度的命令。作為一個(gè)生活在網(wǎng)絡(luò)上的管理員或者***來(lái)說(shuō),ping命令是第一個(gè)必須掌握的DOS命令,它所利用的原理是這樣的:利用網(wǎng)絡(luò)上機(jī)器IP地址的唯一性,給目標(biāo)IP地址發(fā)送一個(gè)數(shù)據(jù)包,再要求對(duì)方返回一個(gè)同樣大小的數(shù)據(jù)包來(lái)確定兩臺(tái)網(wǎng)絡(luò)機(jī)器是否連接相通,時(shí)延是多少。

ping指的是端對(duì)端連通,通常用來(lái)作為可用性的檢查, 但是某些病毒***會(huì)強(qiáng)行大量遠(yuǎn)程執(zhí)行ping命令搶占你的網(wǎng)絡(luò)資源,導(dǎo)致系統(tǒng)變慢,網(wǎng)速變慢。嚴(yán)禁ping***作為大多數(shù)防火墻的一個(gè)基本功能提供給用戶進(jìn)行選擇。通常的情況下你如果不用作服務(wù)器或者進(jìn)行網(wǎng)絡(luò)測(cè)試,可以放心的選中它,保護(hù)你的電腦。

ping程序和tracert(traceroute)背后的故事--ICMP協(xié)議

   ping請(qǐng)求報(bào)文如下圖

ping程序和tracert(traceroute)背后的故事--ICMP協(xié)議

  

 ping響應(yīng)報(bào)文:
ping程序和tracert(traceroute)背后的故事--ICMP協(xié)議

4.tracert命令

工作原理:通過(guò)向目標(biāo)發(fā)送不同IP生存時(shí)間 (TTL) 值的“Internet控制消息協(xié)議 (ICMP)”回應(yīng)數(shù)據(jù)包,Tracert診斷程序確定到目標(biāo)所采取的路由。要求路徑上的每個(gè)路由器在轉(zhuǎn)發(fā)數(shù)據(jù)包之前至少將數(shù)據(jù)包上的 TTL 遞減 1。數(shù)據(jù)包上的 TTL 減為 0 時(shí),路由器應(yīng)該將“ICMP 已超時(shí)”的消息發(fā)回源系統(tǒng)。

Tracert 先發(fā)送 TTL 為 1 的回應(yīng)數(shù)據(jù)包,并在隨后的每次發(fā)送過(guò)程將TTL遞增 1,直到目標(biāo)響應(yīng)或 TTL 達(dá)到最大值,從而確定路由。通過(guò)檢查中間路由器發(fā)回的“ICMP 已超時(shí)”的消息確定路由。某些路由器不經(jīng)詢問(wèn)直接丟棄 TTL 過(guò)期的數(shù)據(jù)包,這在 Tracert 實(shí)用程序中看不到。

ping程序和tracert(traceroute)背后的故事--ICMP協(xié)議

報(bào)文如下

ping程序和tracert(traceroute)背后的故事--ICMP協(xié)議

5.總結(jié)

  出現(xiàn):在IP通信中,經(jīng)常有數(shù)據(jù)包到達(dá)不了對(duì)方的情況。原因是,在通信途中的某處的一個(gè)路由器由于不能處理所有的數(shù)據(jù)包,就將數(shù)據(jù)包一個(gè)一個(gè)丟棄了。或者,雖然到達(dá)了對(duì)方,但是由于搞錯(cuò)了端口號(hào),服務(wù)器軟件可能不能接受它。這時(shí),在錯(cuò)誤發(fā)生的現(xiàn)場(chǎng),為了聯(lián)絡(luò)而飛過(guò)來(lái)的信鴿就是ICMP 報(bào)文。在IP 網(wǎng)絡(luò)上,由于數(shù)據(jù)包被丟棄等原因,為了控制將必要的信息傳遞給發(fā)信方。ICMP 協(xié)議是為了輔助IP 協(xié)議,交換各種各樣的控制信息而被制造出來(lái)的。

  使用:ping和tracert(traceroute)是ICMP 的典型實(shí)現(xiàn)。

參考資料

【1】https://baike.baidu.com/item/ping/6235?fr=aladdin

【2】https://baike.baidu.com/item/%E8%B7%9F%E8%B8%AA%E8%B7%AF%E7%94%B1/8971154?fr=aladdin

【3】https://www.cnblogs.com/iiiiher/p/8513748.html

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI