chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

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

dyquk4xk2p3d ? 來源:稀土掘金技術社區(qū) ? 2023-05-31 11:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

介紹 ICMP 協(xié)議

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

為什么需要 ICMP?

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

ICMP 的格式

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

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

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

查詢報文

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

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

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

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

差錯報文

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

3-目的不可達

4-原點抑制消息

11-ICMP超時

5-重定向

3-目的不可達

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

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

出現(xiàn)目標網(wǎng)絡不可達報文的情況是數(shù)據(jù)包到達路由器,但是路由表中沒有數(shù)據(jù)包中IP地址的網(wǎng)絡號。

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

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

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

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

4-原點抑制消息

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

11-ICMP超時

為了限制IP數(shù)據(jù)包在計算機網(wǎng)絡中的存在的時間,我們給數(shù)據(jù)包設計一個值TTL,能夠避免IP包在網(wǎng)絡中的無限循環(huán)和收發(fā),節(jié)省了網(wǎng)絡資源。

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

5-重定向

如若路由器發(fā)現(xiàn)源主機不是使用最優(yōu)路徑發(fā)送數(shù)據(jù),路由器就會發(fā)送重定向消息給源主機。

ping 的發(fā)送和接收過程

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

向目的主機發(fā)送回顯請求

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

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

目的服務器發(fā)送回顯應答

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

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

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

源主機顯示相關信息

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

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

ICMP—Traceroute命令

Traceroute能夠利用ICMP的規(guī)則,故意制造一些產(chǎn)生錯誤的場景。

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

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

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

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

再設置TTL為3...

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

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

思路也很騷?。。。?/p>

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

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

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

審核編輯:湯梓紅

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

    關注

    0

    文章

    52

    瀏覽量

    15525
  • Ping
    +關注

    關注

    0

    文章

    72

    瀏覽量

    16765
  • 命令
    +關注

    關注

    5

    文章

    746

    瀏覽量

    23438
  • 數(shù)據(jù)包

    關注

    0

    文章

    269

    瀏覽量

    25416
  • 報文
    +關注

    關注

    0

    文章

    39

    瀏覽量

    4309

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    四個ping命令搞定網(wǎng)絡故障

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

    巧用Ping和Traceroute命令排除網(wǎng)絡故障

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

    三種不同的“防 Ping”技巧

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

    ping命令的使用方法及功能

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

    DOS-ping和ipconfig命令詳解下載

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

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

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

    ping命令入門詳解

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

    ping原理及應用介紹

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

    ping值和網(wǎng)速有關系嗎?ping值多少算正常

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

    ping是什么?ping背后的邏輯是什么樣的?是如何實現(xiàn)的?

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

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

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

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

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

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

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

    Ping命令的7個基礎用法

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

    PING命令還能這么用?

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