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

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

其實(shí),像這類問題,是最能考查應(yīng)聘者的基礎(chǔ)理論扎不扎實(shí)的。所以,今天民工哥就帶大家一起深入探討一下這個(gè)問題。

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

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

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

介紹 ICMP 協(xié)議

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

為什么需要 ICMP?

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

ICMP 的格式

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

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

ICMP的數(shù)據(jù)部分根據(jù)類型和代碼不同而不同,如果是請(qǐng)求與響應(yīng)的數(shù)據(jù)包,那么數(shù)據(jù)部分由16位的標(biāo)識(shí)符、16位的序號(hào)以及數(shù)據(jù)組成。如果是差錯(cuò)報(bào)文,那么數(shù)據(jù)部分由兩個(gè)16位的unused部分和IP頭、8字節(jié)的正文組成。

查詢報(bào)文

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

但是這個(gè)數(shù)據(jù)包比原生的ICMP,多了兩個(gè)字段——標(biāo)識(shí)符、序號(hào)。

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

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

差錯(cuò)報(bào)文

我們可以了解下面幾種常見的ICMP差錯(cuò)報(bào)文:

3-目的不可達(dá)

4-原點(diǎn)抑制消息

11-ICMP超時(shí)

5-重定向

3-目的不可達(dá)

當(dāng)類型3目的不可達(dá),有以下幾種常見代碼:

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

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

目標(biāo)主機(jī)不可達(dá)報(bào)文是路由器中沒有找到目標(biāo)主機(jī)的信息,也有可能是目標(biāo)主機(jī)沒有連接到網(wǎng)絡(luò)。

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

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

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

4-原點(diǎn)抑制消息

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

11-ICMP超時(shí)

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

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

5-重定向

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

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

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

向目的主機(jī)發(fā)送回顯請(qǐng)求

首先,機(jī)器會(huì)構(gòu)建一個(gè)類型為8、代號(hào)為0的Echo請(qǐng)求報(bào)文。aeca9eb6-fca4-11ed-90ce-dac502259ad0.png

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

目的服務(wù)器發(fā)送回顯應(yīng)答

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

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

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

源主機(jī)顯示相關(guān)信息

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

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

ICMP—Traceroute命令

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

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

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

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

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

再設(shè)置TTL為3...

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

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

思路也很騷?。。?!

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

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

這個(gè)很容易想到啊,一旦返回類型為“需要進(jìn)行分片但設(shè)置了不分片位”的ICMP差錯(cuò)報(bào)文就減小分組長度,直到達(dá)到目的主機(jī),這不就測(cè)試出了整個(gè)路徑的MTU嗎?

審核編輯:湯梓紅

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

    關(guān)注

    0

    文章

    52

    瀏覽量

    15534
  • Ping
    +關(guān)注

    關(guān)注

    0

    文章

    72

    瀏覽量

    16774
  • 命令
    +關(guān)注

    關(guān)注

    5

    文章

    746

    瀏覽量

    23464
  • 數(shù)據(jù)包
    +關(guān)注

    關(guān)注

    0

    文章

    269

    瀏覽量

    25454
  • 報(bào)文
    +關(guān)注

    關(guān)注

    0

    文章

    39

    瀏覽量

    4321

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

文章出處:【微信號(hào):良許Linux,微信公眾號(hào):良許Linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

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

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

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

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

    三種不同的“防 Ping”技巧

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

    ping命令的使用方法及功能

    ping是Windows、Unix和Linux系統(tǒng)下的一個(gè)命令ping也屬于一個(gè)通信協(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命令的運(yùn)用。
    的頭像 發(fā)表于 02-24 10:29 ?1.5w次閱讀

    ping命令入門詳解

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

    ping原理及應(yīng)用介紹

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

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

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

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

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

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

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

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

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

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

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

    Ping命令的7個(gè)基礎(chǔ)用法

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

    PING命令還能這么用?

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