国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ping協(xié)議(ICMP)的原理

這篇具有很好參考價值的文章主要介紹了ping協(xié)議(ICMP)的原理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

ping的工作原理

ping是基于ICMP(Internet Control Message Protocol)協(xié)議工作的,首先熟悉一下ICMP協(xié)議
互聯(lián)網(wǎng)控制報文協(xié)議
ICMP功能:確認IP包是否成功送達目標地址,報告發(fā)送過程中IP包被廢棄的原因改善網(wǎng)絡(luò)設(shè)置等。
ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議
ICMP 的這種通知消息會使用 IP 進行發(fā)送 。
ICMP報文是封裝在IP包里的,工作在網(wǎng)路層,是IP協(xié)議的助手。
ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議
ICMP 包頭的類型字段,大致可以分為兩大類:

  • 一類是用于診斷的查詢消息,也就是「查詢報文類型」
  • 另一類是通知出錯原因的錯誤消息,也就是「差錯報文類型」
    ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議

查詢報文類型

回送消息用于進行通信的主機或路由器之間,判斷所發(fā)送的數(shù)據(jù)包是否已經(jīng)成功到達對端的一種消息,ping命令就是利用這個消息實現(xiàn)的。
可以向?qū)Χ酥鳈C發(fā)送回送請求的消息(8),也可以接收對端主機發(fā)送回來的回送應(yīng)答(0)。
ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議
相比于原生ICMP,這里多兩個字段:

  • 標識符:用以區(qū)分是哪個應(yīng)用程序發(fā)ICMP包,比如用進程PID作為標識符;
  • 序號:序列號從0開始,每發(fā)送一次新的回送請求就會加1,用來確認網(wǎng)絡(luò)包是否丟失;
    選項數(shù)據(jù)中,ping還會存放發(fā)送請求的時間值,來計算往返時間,說明路程長短。

ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議

差錯報文類型

目標不可達消息 —— 類型 為 3
原點抑制消息 —— 類型 4
重定向消息 —— 類型 5
超時消息 —— 類型 11

目標不可達消息

網(wǎng)絡(luò)不可達 0 :IP地址是分為網(wǎng)絡(luò)號和主機號的,所以當(dāng)路由器中的路由器表匹配不到接收方IP的網(wǎng)絡(luò)號
主機不可達 1 :路由器表中沒有該主機的信息或主機沒有連接到網(wǎng)絡(luò)
協(xié)議不可達 2:主機使用TCP協(xié)議訪問對端主機時,能找到對端的主機了,但是對端主機防火墻禁止TCP協(xié)議訪問,會通過ICMP協(xié)議以協(xié)議不可達的原因告知主機
端口不可達 3:對端主機沒有進程監(jiān)聽8080端口

重定向消息

路由器發(fā)送端主機使用不是最優(yōu)的路徑發(fā)送數(shù)據(jù),那么它會返回一個ICMP重定向消息給這個主機,在這個消息中包含了最合適的路由消息和源數(shù)據(jù)。

超時消息

IP包中有一個字段叫做TTL(生存周期),它的值隨著每經(jīng)過一次路由器就會減1,直到減到0時該IP包會被丟棄。設(shè)置 IP 包生存周期的主要目的,是為了在路由控制遇到問題發(fā)生循環(huán)狀況時,避免 IP 包無休止地在網(wǎng)絡(luò)上被轉(zhuǎn)發(fā)

查詢報文類型的使用

同個子網(wǎng)下的主機 A 和 主機 B,主機 A 執(zhí)行ping 主機 B 后,我們來看看其間發(fā)送了什么?

ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議
ping命令執(zhí)行的時候,源主機首先會構(gòu)建一個ICMP回送請求消息數(shù)據(jù)包。
ICNO數(shù)據(jù)包內(nèi)包含多個字段,最重要的兩個是:

  • 類型 8
  • 序號 用來區(qū)分連續(xù)ping的時候發(fā)出的多個數(shù)據(jù)包 每發(fā)送一個請求數(shù)據(jù)包序號就會自動加1
    ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議
    然后,由 ICMP 協(xié)議將這個數(shù)據(jù)包連同地址 192.168.1.2 一起交給 IP 層。IP 層將以 192.168.1.2 作為目的地址,本機 IP 地址作為源地址,協(xié)議字段設(shè)置為 1 表示是 ICMP 協(xié)議,再加上一些其他控制信息,構(gòu)建一個 IP 數(shù)據(jù)包。
    ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議
    接下來,需要加入 MAC 頭。如果在本地 ARP 映射表中查找出 IP 地址 192.168.1.2 所對應(yīng)的 MAC 地址,則可以直接使用;如果沒有,則需要發(fā)送 ARP 協(xié)議查詢 MAC 地址,獲得 MAC 地址后,由數(shù)據(jù)鏈路層構(gòu)建一個數(shù)據(jù)幀,目的地址是 IP 層傳過來的 MAC 地址,源地址則是本機的 MAC 地址;還要附加上一些控制信息,依據(jù)以太網(wǎng)的介質(zhì)訪問規(guī)則,將它們傳送出去。
    ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議

主機 B 收到這個數(shù)據(jù)幀后,先檢查它的目的 MAC 地址,并和本機的 MAC 地址對比,如符合,則接收,否則就丟棄。
接收后檢查該數(shù)據(jù)幀,將 IP 數(shù)據(jù)包從幀中提取出來,交給本機的 IP 層。同樣,IP 層檢查后,將有用的信息提取后交給 ICMP 協(xié)議
主機 B 會構(gòu)建一個 ICMP 回送響應(yīng)消息數(shù)據(jù)包,回送響應(yīng)數(shù)據(jù)包的類型字段為 0,序號為接收到的請求數(shù)據(jù)包中的序號,然后再發(fā)送出去給主機 A。
在規(guī)定的時候間內(nèi),源主機如果沒有接到 ICMP 的應(yīng)答包,則說明目標主機不可達;如果接收到了 ICMP 回送響應(yīng)消息,則說明目標主機可達。

此時,源主機會檢查,用當(dāng)前時刻減去該數(shù)據(jù)包最初從源主機上發(fā)出的時刻,就是 ICMP 數(shù)據(jù)包的時間延遲。

整個流程

可以看出 ping 這個程序是使用了 ICMP 里面的 ECHO REQUEST(類型為 8 ) 和 ECHO REPLY (類型為 0)。
ping 協(xié)議,計算機基礎(chǔ)&網(wǎng)絡(luò)編程,網(wǎng)絡(luò),服務(wù)器,網(wǎng)絡(luò)協(xié)議

差錯報文類型的使用

traceroute 192.168.1.100
traceroute 的第一個作用就是故意設(shè)置特殊的 TTL,來追蹤去往目的地時沿途經(jīng)過的路由器。
原理:利用 IP 包的生存期限 從 1 開始按照順序遞增的同時發(fā)送 UDP 包,強制接收 ICMP 超時消息的一種方法。
比如,將 TTL 設(shè)置 為 1,則遇到第一個路由器,就犧牲了,接著返回 ICMP 差錯報文網(wǎng)絡(luò)包,類型是時間超時。
接下來將 TTL 設(shè)置為 2,第一個路由器過了,遇到第二個路由器也犧牲了,也同時返回了 ICMP 差錯報文數(shù)據(jù)包,如此往復(fù),直到到達目的主機。這樣的過程,traceroute 就可以拿到了所有的路由器 IP。
traceroute 還有一個作用是故意設(shè)置不分片,從而確定路徑的 MTU。這樣做的目的為了路徑MTU發(fā)現(xiàn)。
它的工作原理如下:
首先在發(fā)送端主機發(fā)送 IP 數(shù)據(jù)報時,將 IP 包首部的分片禁止標志位設(shè)置為 1。根據(jù)這個標志位,途中的路由器不會對大數(shù)據(jù)包進行分片,而是將包丟棄
隨后,通過一個 ICMP 的不可達消息將數(shù)據(jù)鏈路上 MTU 的值一起給發(fā)送主機,不可達消息的類型為「需要進行分片但設(shè)置了不分片位」。
發(fā)送主機端每次收到 ICMP 差錯報文時就減少包的大小,以此來定位一個合適的 MTU 值,以便能到達目標主機。文章來源地址http://www.zghlxwxcb.cn/news/detail-698333.html

到了這里,關(guān)于ping協(xié)議(ICMP)的原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包