一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

關(guān)于完整的 ping請求過程

lhl545545 ? 來源:杰哥IT之旅 ? 作者:杰哥IT之旅 ? 2022-09-19 09:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一般來說,用 ping查看網(wǎng)絡情況,主要是檢查兩個指標:

第一個是看看是不是超時

第二個看看是不是延遲太高

如果超時那么肯定是網(wǎng)絡有問題(禁 ping情況除外),如果延遲太高,網(wǎng)絡情況肯定也是很糟糕的。

ping是如何檢查網(wǎng)絡的?

ping背后的原理到底是啥樣的?

這篇文章就帶著你,來跟著 ping命令走一圈,看看 ping是如何工作的

環(huán)境準備和抓包

環(huán)境準備

抓包工具:Wireshark 準備兩臺電腦,進行互 ping操作:

A電腦(IP地址:192.168.2.135 / MAC地址:98EFA8:87)

B電腦(IP地址:192.168.2.179 / MAC地址:90DEDF:FE)

抓包操作

打開 Wireshark,選取指定的網(wǎng)卡進行抓包,進行 ping操作,在 A電腦上 ping B電腦的 IP。

f85a6986-37aa-11ed-ba43-dac502259ad0.png

抓包情況如下:

f86b9f3a-37aa-11ed-ba43-dac502259ad0.jpg

這里先簡單的介紹下Wireshark的控制面板,這個面板包含7個字段,分別是:

NO: 編號

Time: 包的時間戳

Source: 源地址

Destination: 目標地址

Protocol: 協(xié)議

Length: 包長度

Info: 數(shù)據(jù)包附加信息

深入解析

上圖中抓包編號 54-132 顯示的就是整個 ping命令的過程,我們知道 ping命令不是依托于 TCP或者 UDP這種傳輸層協(xié)議的,而是依托于 ICMP協(xié)議實現(xiàn)的, 那么什么是 ICMP 協(xié)議呢?這里簡單介紹下:

ICMP協(xié)議的產(chǎn)生背景

[RFC792]中說明了 ICMP產(chǎn)生的原因:

由于互聯(lián)網(wǎng)之間通訊會涉及很多網(wǎng)關(guān)和主機,為了能夠報告數(shù)據(jù)錯誤,所以產(chǎn)生了 ICMP協(xié)議。也就是說 ICMP 協(xié)議就是為了更高效的轉(zhuǎn)發(fā) IP數(shù)據(jù)報和提高交付成功的機會。

ICMP協(xié)議的數(shù)據(jù)格式

f89662ba-37aa-11ed-ba43-dac502259ad0.jpg

根據(jù)上圖,你會知道 ICMP協(xié)議頭包含 4個字節(jié),頭部主要用來說明類型和校驗 ICMP報文。

下圖是對應的類型和代碼釋義列表,后面分析抓包的時候會用到。

f8a48e4e-37aa-11ed-ba43-dac502259ad0.jpg

簡單介紹完了 ICMP,那么抓包過程中出現(xiàn)的 ARP協(xié)議是什么呢?同樣來簡單解釋下:

ARP協(xié)議

我們知道,在一個局域網(wǎng)中,計算機通信實際上是依賴于 MAC地址進行通信的,那么 ARP( AddressResolutionProtocol)的作用就是根據(jù) IP地址查找出對應的 MAC地址。

Ping過程解析

了解了上面的基礎(chǔ)概念后,我們來分析下抓包的數(shù)據(jù),其流程如下:

A 電腦( 192.168.2.135)發(fā)起 ping請求, ping192.168.2.179

A 電腦廣播發(fā)起 ARP請求,查詢 192.168.2.179的 MAC地址

B 電腦應答 ARP請求,向 A電腦發(fā)起單向應答,告訴 A電腦自己的 MAC地址為 90DEDF:FE

知道了 MAC地址后,開始進行真正的 ping請求,由于 B電腦可以根據(jù)A電腦發(fā)送的請求知道 源 MAC地址,所以就可以根據(jù)源 MAC地址進行響應了

上面的請求過程我畫成流程圖比較直觀一點:

f8b565c0-37aa-11ed-ba43-dac502259ad0.jpg

觀察仔細的朋友,可能已經(jīng)發(fā)現(xiàn),Ping 4次請求和響應結(jié)束后,還有一次 B電腦對 A電腦的 ARP請求,這是為什么?

這里我猜測應該是有 2個原因:

由于 ARP有緩存機制,為了防止 ARP過期,結(jié)束后重新更新下 ARP緩存,保證下次請求能去往正確的路徑,如果 ARP過期就會導致出現(xiàn)一次錯誤,從而影響測試準確性。

由于 ping命令的響應時間是根據(jù)請求包和響應包的時間戳計算出來的,所以一次 ARP過程也是會消耗時間。這里提前緩存最新的 ARP結(jié)果就是節(jié)省了下次 ping的 ARP時間。

為了驗證猜測,我再進行一次 ping操作,抓包看看是不是和猜測的一樣。此時,計算機里面已經(jīng)有了ARP的緩存,執(zhí)行 ARP-a 看看緩存的arp列表:

f8eee476-37aa-11ed-ba43-dac502259ad0.jpg

看看第二次 ping的抓包:

f903cd00-37aa-11ed-ba43-dac502259ad0.jpg

可以看到,上圖中在真正 ping之前并沒有進行一次 ARP請求。

這也就是說,直接拿了緩存中的 ARP來執(zhí)行了,另外當 B計算機進行響應之前還是進行了一次 ARP請求,它還是要確認下之前的 ARP緩存是否為正確的。

結(jié)束ping操作之后,同樣再發(fā)一次 ARP請求,更新下自己的 ARP緩存,這里和我們的猜想基本一致。

弄懂了ping的流程之后我們來解析下之前解釋的 ICMP數(shù)據(jù)結(jié)果是否和抓包的一致。

我們來點擊一個 ping request看看 ICMP協(xié)議詳情:

f9373a6e-37aa-11ed-ba43-dac502259ad0.jpg

圖中紅框內(nèi)就行 ICMP協(xié)議的詳情了,這里的 Type=8,code=0, 校驗是正確,且這是一個請求報文。

我們再點擊Responseframe:57,這里說明響應報文在序號 57。詳情如下:

f948ec1e-37aa-11ed-ba43-dac502259ad0.jpg

上圖的響應報文, Type=0,code=0,這里知道就是響應報文了,然后最后就是根據(jù)請求和響應的時間戳計算出來的響應延遲。3379.764ms-3376.890ms=2.874ms。

總結(jié)

你看,上面的文章其實是分析了一次完整的 ping請求過程。

ping命令是依托于 ICMP協(xié)議的, ICMP協(xié)議的存在就是為了更高效的轉(zhuǎn)發(fā) IP數(shù)據(jù)報和提高交付成功的機會。

ping命令除了依托于 ICMP,在局域網(wǎng)下還要借助于 ARP協(xié)議, ARP協(xié)議能根據(jù) IP地址反查出計算機的 MAC地址。

另外 ARP是有緩存的,為了保證 ARP的準確性,計算機會更新ARP緩存。

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

    關(guān)注

    55

    文章

    11251

    瀏覽量

    106475
  • 網(wǎng)絡
    +關(guān)注

    關(guān)注

    14

    文章

    7815

    瀏覽量

    90973
  • Ping
    +關(guān)注

    關(guān)注

    0

    文章

    69

    瀏覽量

    16450

原文標題:當黑客在用 Ping 時,Ping 在偷摸做啥事兒?

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    一次完整Ping過程會涉及哪些協(xié)議?

    一次完整的網(wǎng)絡Ping過程
    發(fā)表于 03-31 06:19

    請問CH32V307 ping正常但是http請求少部分正常大部分請求超時是為什么?

    請問 CH32V307ping正常 但是 http請求少部分正常大部分請求超時 ,用的是netlib,這個會是什么原因引起的?
    發(fā)表于 09-15 07:32

    三種不同的“防 Ping”技巧

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

    icmp和ping的區(qū)別

    ping 程序是用來探測主機到主機之間是否可通信,如果不能ping到某臺主機,表明不能和這臺主機建立連接。ping 使用的是ICMP協(xié)議,它發(fā)送icmp回送請求消息給目的主機。ICMP
    發(fā)表于 11-03 09:41 ?6w次閱讀
    icmp和<b class='flag-5'>ping</b>的區(qū)別

    ping命令的使用方法及功能

    ping是Windows、Unix和Linux系統(tǒng)下的一個命令。ping也屬于一個通信協(xié)議,是TCP/IP協(xié)議的一部分。利用“ping”命令可以檢查網(wǎng)絡是否連通,可以很好地幫助我們分析和判定網(wǎng)絡故障。應用格式:
    發(fā)表于 11-23 15:22 ?7.3w次閱讀
    <b class='flag-5'>ping</b>命令的使用方法及功能

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

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

    ping原理及應用介紹

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

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

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

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

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

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

    任何靠 IT 行業(yè)討飯吃的人,無論在哪個范疇工作,都一定懂得 Ping 這個指令。差不多任何作業(yè)系統(tǒng)都具備 Ping 這命令,用來做簡單的 Troubleshooting。但究竟 Ping 在背后幫我們做了些什麼呢?本篇文章就從
    的頭像 發(fā)表于 01-01 17:26 ?3413次閱讀

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

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

    PING命令還能這么用?

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

    【筆記】ping不通的原因有那些?

    Ping命令無法成功訪問目標主機時,可能存在多種原因。以下是一些常見的導致Ping不通的問題,并對每個問題進行了分析和解釋:1.請求超時:當Ping命令發(fā)送
    的頭像 發(fā)表于 05-30 17:24 ?2.4w次閱讀
    【筆記】<b class='flag-5'>ping</b>不通的原因有那些?

    使用Python進行Ping測試

    請求包,然后等待目標主機返回響應包,從而測量網(wǎng)絡的延遲和丟包情況。隨著Python編程語言的廣泛應用,越來越多的網(wǎng)絡工程師開始使用Python進行自動化網(wǎng)絡測試和管理任務。本篇文章將詳細介紹如何使用Python進行Ping測試,適合網(wǎng)工初學者。
    的頭像 發(fā)表于 08-12 17:56 ?1009次閱讀
    使用Python進行<b class='flag-5'>Ping</b>測試

    服務器ping不通但是http能請求成功是什么原因

    平時,我們想要知道,自己的機器到目的機器之間,網(wǎng)絡通不通,一般會執(zhí)行ping命令。
    的頭像 發(fā)表于 10-23 09:23 ?1724次閱讀
    服務器<b class='flag-5'>ping</b>不通但是http能<b class='flag-5'>請求</b>成功是什么原因