精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

你知道ping命令是如何工作的嗎?

dyquk4xk2p3d ? 來源:稀土掘金技術社區 ? 2023-05-31 11:40 ? 次閱讀

前幾天一個讀者和我聊天,談起現在的面試,有時候面試官的問題問的真的非常的刁鉆,比如:有一次三面面試官問他:當你運行 ping xxx 的時候發生了什么?搞的他一臉懵逼。。。

其實,像這類問題,是最能考查應聘者的基礎理論扎不扎實的。所以,今天民工哥就帶大家一起深入探討一下這個問題。

話不多嘮,直接上干貨!!!??!

你知道ping命令是如何工作的嗎?

我們用來測試一臺機器與另一臺機器的網絡連通性一般會使用ping命令,那么你知道ping命令是如何工作的嗎?ping命令是基于ICMP協議工作的。

介紹 ICMP 協議

因特網控制報文協議ICMP(Internet Control Message Protocol)是一個差錯報告機制,其主要用在IP機器與路由器之間傳遞控制信息,其一般用于報告主機是否可達、路由是否可用。

為什么需要 ICMP?

在網絡數據包的傳輸過程中,經常會遇到各種各樣的問題,IP協議提供Best-Effort(盡力而為)的服務,盡力而為的意思是當網絡發生擁塞的時候,會立刻丟棄網絡數據包,一直到網絡擁塞現象減輕時。所以經常有些數據包中途被丟棄,可能還有其他更多的問題,所以需要網絡數據包在出現問題時,機器向上層協議報告異常,以便進行流量控制和差錯控制,使用ICMP就可以實現這一功能。

ICMP 的格式

aeb1ea06-fca4-11ed-90ce-dac502259ad0.png

上圖是ICMP的格式,IP數據報由IP頭和ICMP報文組成。ICMP報文由8位的類型、8位的代碼、16位的校驗和ICMP都數據部分組成。

ICMP的數據部分根據類型和代碼不同而不同,如果是請求與響應的數據包,那么數據部分由16位的標識符、16位的序號以及數據組成。如果是差錯報文,那么數據部分由兩個16位的unused部分和IP頭、8字節的正文組成。

查詢報文

我們的ping命令就是查詢報文,如果一切順利,我們發送8.echo請求,然后會收到0.echo響應,這就證明兩機器之間是連通的。

但是這個數據包比原生的ICMP,多了兩個字段——標識符、序號。

怎么理解呢?如果你搞過裝修,你應該知道建材店之間組成的銷售聯盟,聯盟派出去兩撥人,一批是跑業務的,一批是做廣告的,都穿著同樣的廣告衫,需要一個標識區分這兩批人。而派出去的人需要編號,如果到了吃午飯的時間,出去跑業務的20個人回來一小部分,說明情況不妙,如果全部回來,說明情況很好。

在選項數據中,ping 還會存放發送請求的時間值,來計算往返時間,說明路程的長短。

差錯報文

我們可以了解下面幾種常見的ICMP差錯報文:

3-目的不可達

4-原點抑制消息

11-ICMP超時

5-重定向

3-目的不可達

當類型3目的不可達,有以下幾種常見代碼:

aeb8f882-fca4-11ed-90ce-dac502259ad0.png

出現目標網絡不可達報文的情況是數據包到達路由器,但是路由表中沒有數據包中IP地址的網絡號。

目標主機不可達報文是路由器中沒有找到目標主機的信息,也有可能是目標主機沒有連接到網絡。

目標協議不可達報文情況當你給目標主機發送UDP報文時,目標主機的防火墻禁止UDP協議數據包進入,于是ICMP通知目標協議不可達。

目標端口不可達報文是你的數據包要進入目標主機的22端口,建立SSH連接,而目標主機的22端口沒有開放,這時候ICMP就會返回目標端口不可達報文給源主機。

要求分段并設置DF flag標志報文的情況如下:源主機發送的IP數據包首部的分片禁止標志位設置為1之后,路由器遇到超過MTU大小的數據包會直接拋棄,不會分片,然后ICMP給源主機發送要求分段并設置DF flag標志報文

4-原點抑制消息

如果網絡中遇到擁塞,就能向源主機發送一個ICMP原點抑制消息,收到該消息的機器就會增大數據包的傳輸間隔。是為原點抑制。

11-ICMP超時

為了限制IP數據包在計算機網絡中的存在的時間,我們給數據包設計一個值TTL,能夠避免IP包在網絡中的無限循環和收發,節省了網絡資源。

但是為了能使IP包的發送者能收到告警消息,ICMP開始大顯身手,路由器會發送一個 ICMP 超時消息給源主機。

5-重定向

如若路由器發現源主機不是使用最優路徑發送數據,路由器就會發送重定向消息給源主機。

ping 的發送和接收過程

我們使用ping命令去請求同一個子網的目的主機。

向目的主機發送回顯請求

首先,機器會構建一個類型為8、代號為0的Echo請求報文。aeca9eb6-fca4-11ed-90ce-dac502259ad0.png

通過上圖,我們可以了解,ICMP的類型是8,代碼是0等數據。

目的服務器發送回顯應答

aed6991e-fca4-11ed-90ce-dac502259ad0.png

通過比較,我們可以看到在ICMP報文層,Echo請求報文與Echo響應報文除了Type、Code(看起來沒變化,其實含義已經不同)發生變化,其他基本上都是一樣的。

aef87f84-fca4-11ed-90ce-dac502259ad0.png

源主機顯示相關信息

af00f0b0-fca4-11ed-90ce-dac502259ad0.png
af10e16e-fca4-11ed-90ce-dac502259ad0.png

發送回顯請求數據包的時間,與接收到回顯應答數據包的時間差,就能計算出數據包一去一回所需要的時間。

ICMP—Traceroute命令

Traceroute能夠利用ICMP的規則,故意制造一些產生錯誤的場景。

Traceroute 的第一個作用為故意設置特殊的 TTL,來追蹤去往目的地時沿途經過的路由器。

思路很騷啊~我給你慢慢道來:

先設置TTL為1,數據包到第一個路由器就嗝屁,臨死前把第一個路由器的IP搞到手了。返回時間超時的ICMP差錯報文。

然后設置TTL為2,數據包到第二個路由器嗝屁,臨死前把第二個路由器的IP搞到手。

再設置TTL為3...

以此類推,直到到達目的主機,如此就拿到了線路上所有路由器的IP。

那么Traceroute怎么知道自己發送的UDP包到達目的主機呢?

思路也很騷?。。?!

它用不可能出現的值作為UDP的端口號,數據報達到目的主機,就會返回ICMP 差錯報文,類型為端口不可達。

Traceroute 還有一個作用是故意設置不分片,從而確定路徑的 MTU。

這個很容易想到啊,一旦返回類型為“需要進行分片但設置了不分片位”的ICMP差錯報文就減小分組長度,直到達到目的主機,這不就測試出了整個路徑的MTU嗎?

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ICMP
    +關注

    關注

    0

    文章

    52

    瀏覽量

    14911
  • Ping
    +關注

    關注

    0

    文章

    69

    瀏覽量

    15952
  • 命令
    +關注

    關注

    5

    文章

    678

    瀏覽量

    21984
  • 數據包
    +關注

    關注

    0

    文章

    252

    瀏覽量

    24363
  • 報文
    +關注

    關注

    0

    文章

    38

    瀏覽量

    4017

原文標題:面試官:運行 ping xxx 的時候發生了什么?問倒一大片。。。

文章出處:【微信號:良許Linux,微信公眾號:良許Linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    四個ping命令搞定網絡故障

    四個ping命令搞定網絡故障如果的電腦不能上網或者突然不能上網了怎么辦?請專業人員來維修還是自己瞎急一通呢,下面給大家介紹如何準確地判斷電腦不能上網問題出在哪里?又如何能快捷地解決這故障?希望下文
    發表于 04-13 14:24

    巧用Ping和Traceroute命令排除網絡故障

    在分析Ping 和Traceroute 命令工作原理和影響因素的基礎上,詳細介紹了使用Ping 和Traceroute 命令檢查網絡連接性、
    發表于 08-11 08:25 ?35次下載

    三種不同的“防 Ping”技巧

    三種不同的“防 Ping”技巧 淺析三種不同的“防 Ping”方法   眾所周知,Ping命令是一個非常有用的網絡命令,大家常用它
    發表于 04-14 13:53 ?1121次閱讀

    ping命令的使用方法及功能

    ping是Windows、Unix和Linux系統下的一個命令ping也屬于一個通信協議,是TCP/IP協議的一部分。利用“ping命令
    發表于 11-23 15:22 ?7.2w次閱讀
    <b class='flag-5'>ping</b><b class='flag-5'>命令</b>的使用方法及功能

    DOS-ping和ipconfig命令詳解下載

    DOS-ping和ipconfig命令詳解下載
    發表于 01-16 16:13 ?3次下載

    ping命令的使用大全(Windows下ping命令的使用)

    ping命令相信大家已經再熟悉不過了,但是能把ping的功能發揮到最大的人卻并不是很多,下面就給大家講一些ping命令的運用。
    的頭像 發表于 02-24 10:29 ?1.4w次閱讀

    ping命令入門詳解

    Ping是潛水艇人員的專用術語,表示回應的聲納脈沖,在網絡中Ping 是一個十分好用的TCP/IP工具。它主要的功能是用來檢測網絡的連通情況和分析網絡速度。 Ping有好的善的一面也有惡的一面。先說
    發表于 10-06 14:09 ?3351次閱讀

    ping原理及應用介紹

    Ping程序的實質是利用了ICMP請求回顯和回顯應答報文,但ARP請求和應答報文也在其中起了非常重要的作用。 Ping的邏輯過程以從PC1 ping PC2(命令
    發表于 10-06 14:25 ?8288次閱讀

    ping值和網速有關系嗎?ping值多少算正常

    PING值--代表的電腦跟服務器的連接速度,即:客戶端數據傳送至服務器后再將命令反饋到客戶端所需的時長,單位為毫秒(ms),PING值越小速度越快。 主要還要看是用“光纖寬帶”還是
    發表于 10-06 15:27 ?11.8w次閱讀

    ping是什么?ping背后的邏輯是什么樣的?是如何實現的?

    我們在遇到網絡不通的情況,大家都知道ping 一下,看一下網絡狀況。那你知道ping命令后背的邏輯是什么嗎?
    的頭像 發表于 10-03 12:25 ?8643次閱讀

    知道linux常用查看硬件設備信息命令的方法是什么?

    知道linux常用查看硬件設備信息命令的方法是什么?
    發表于 05-13 11:04 ?3128次閱讀

    說說PING命令涉及端到端的理論

    任何靠 IT 行業討飯吃的人,無論在哪個范疇工作,都一定懂得 Ping 這個指令。差不多任何作業系統都具備 Ping命令,用來做簡單的 Troubleshooting。但究竟
    的頭像 發表于 01-01 17:26 ?3122次閱讀

    ping命令的作用和原理是什么?

    在測試和部署網絡通信應用時,我們經常會遇到網絡不通的問題。一般都會想到ping一下。那么ping命令的作用和原理到底是什么呢? ping 命令
    的頭像 發表于 03-18 17:21 ?9531次閱讀

    Ping命令的7個基礎用法

    IT行業中ping命令經常被用到,今天整理了一下關于網絡基礎知識中的網絡命令ping命令在項目中是使用頻率最高的,一般我們用的都是它的基本功
    的頭像 發表于 10-12 09:16 ?3856次閱讀

    PING命令還能這么用?

    今天和你聊聊PING命令。 一般來說,網工們通常會用它來直接ping ip地址,來測試網絡的連通情況。 類似這種,ping ip地址或網關,然后pi
    的頭像 發表于 05-18 16:43 ?1082次閱讀
    <b class='flag-5'>PING</b><b class='flag-5'>命令</b>還能這么用?