ARP地址解析協(xié)議
第一篇中講到局域網(wǎng)內(nèi)主機(jī)及網(wǎng)關(guān)相互通信需要ip地址、mac地址兩個(gè)核心元素,ip地址在通信前就可以得知(DNS解析),而mac地址如何得到呢,這時(shí)就需要ARP協(xié)議支持了,ARP全稱為:Address Resolution Protocol即地址解析協(xié)議,假設(shè)主機(jī)A需要訪問局域網(wǎng)主機(jī)B,主機(jī)A通過地址解析協(xié)議向局域網(wǎng)內(nèi)部發(fā)群體廣播,詢問主機(jī)B的地址信息,被命中主機(jī)B確認(rèn)目標(biāo)主機(jī)IP為自身時(shí)會(huì)將廣播報(bào)文中主機(jī)A地址信息存入ARP緩存表中(緩存減小訪問次數(shù)),并向主機(jī)A返回自己的mac地址,主機(jī)A將主機(jī)B返回的地址信息緩存在ARP緩存表中,至此主機(jī)A已知主機(jī)B的MAC,就可以愉快的開始通信了。發(fā)起方需要查詢目標(biāo)MAC地址時(shí)都會(huì)先去ARP緩存表中查詢,未查詢到才會(huì)發(fā)起廣播流程,示例如下:
熟悉地址解析歇息工作流程之后,看一下協(xié)議報(bào)文,報(bào)文結(jié)構(gòu)示例圖如下:
根據(jù)上述報(bào)文結(jié)構(gòu),通過抓包分解圖如下所示:
請(qǐng)看下方紅框中16進(jìn)制顯示的報(bào)文,首先看第1到16字節(jié),前六個(gè)字節(jié)(ff:ff:ff:ff:ff:ff)表示數(shù)據(jù)包發(fā)送的目標(biāo)地址為廣播地址,局域網(wǎng)內(nèi)所有主機(jī)均需收到,第七到第十二字節(jié)(00:2a:6a:f4:7c:41)表示本機(jī)mac地址,第十三到二十分別代表幀類型、硬件類型、協(xié)議類型、硬件長(zhǎng)度、協(xié)議長(zhǎng)度,第二十一到第二十二字節(jié)表示訪問類型(指明當(dāng)前包是請(qǐng)求包還是應(yīng)答包,對(duì)應(yīng)的值分別是0x0001和0x0002),第二十三到第二十八字節(jié)表示發(fā)送端地址(00:2a:6a:f4:7c:41),第二十九到第三十二表示發(fā)送端IP(10.13.95.253),第三十三到第三十八表示目標(biāo)地址(ff:ff:ff:ff:ff:ff),第三十九到第四十二為目標(biāo)IP(10.13.91.166),到這里ARP協(xié)議的報(bào)文結(jié)構(gòu)就全部分析完成,可知道ARP的執(zhí)行原理了。
ICMP控制報(bào)文協(xié)議
ICMP協(xié)議屬于一種控制報(bào)文協(xié)議,此類信息的顯著特征是不會(huì)帶有用戶數(shù)據(jù),主要用于在主機(jī)與路由器之間傳遞控制信息,包括報(bào)告錯(cuò)誤、交換受限控制和狀態(tài)信息等。當(dāng)遇到IP數(shù)據(jù)無法訪問目標(biāo)、IP路由器無法按當(dāng)前的傳輸速率轉(zhuǎn)發(fā)數(shù)據(jù)包等情況時(shí),會(huì)自動(dòng)發(fā)送ICMP消息。通俗一點(diǎn)理解控制報(bào)文協(xié)議就是錯(cuò)誤發(fā)現(xiàn)及錯(cuò)誤報(bào)告回傳機(jī)制,因?yàn)橹挥邪l(fā)送端拿到發(fā)送過程中的失敗原因消息才能針對(duì)性的做出處理方案,ICMP的報(bào)文結(jié)構(gòu)如下所示:
ICMP協(xié)議通過IP協(xié)議發(fā)送,ICMP協(xié)議相當(dāng)于定義一套返回碼枚舉,不同類型的返回碼所帶有的返回信息也不相同。根據(jù)上述報(bào)文結(jié)構(gòu),通過抓包分解圖如下所示:
請(qǐng)看下方紅框十六進(jìn)制顯示報(bào)文內(nèi)容,前三十四字節(jié)表示以太網(wǎng)頭部和IP頭部此處不做詳細(xì)解析,從第三十五字節(jié)開始屬于ICMP的報(bào)文體部分,首先第三十五字節(jié)表示類型,第三十六字節(jié)表示編碼,以ping(ping命令就是以ICMP協(xié)議實(shí)現(xiàn)的)為例,它的類型代碼請(qǐng)求報(bào)文為8,編碼為0(其它類型和編碼可以網(wǎng)上搜索參考“類型編碼表”,此處不做碼表顯示),第三十七到第三十八字節(jié)表示唯一校驗(yàn)和,第三十九字節(jié)到第四十二字節(jié)屬于不同類型內(nèi)容不同的擴(kuò)展報(bào)文,抓包中表示ping的唯一標(biāo)識(shí)碼和自增序列以保證目標(biāo)返回值是對(duì)應(yīng)請(qǐng)求報(bào)文的,第四十三字節(jié)到七十四字節(jié)表示ping附帶的報(bào)文內(nèi)容,可以通過改變配置報(bào)文大小來控制傳輸數(shù)據(jù)大小,如圖所示實(shí)際發(fā)送報(bào)文即為英文小寫字母,這是ICMP的執(zhí)行原理。
1、Ping
ping命令是以ICMP協(xié)議實(shí)現(xiàn)的網(wǎng)絡(luò)工具,主要的作用是檢查主機(jī)連通性、統(tǒng)計(jì)連通時(shí)間,若出現(xiàn)超時(shí)不能連通:一種可能為目標(biāo)IP不存在,第二種可能是對(duì)方主機(jī)屏蔽了ping命令執(zhí)行,示例截圖如圖所示:
如圖所示,展示返回報(bào)文的關(guān)鍵字段:
- 字節(jié)=32:即ICMP抓包中的32字節(jié)英文小寫字母,表示發(fā)送報(bào)文大小
- 時(shí)間=6毫秒:即目標(biāo)主機(jī)響應(yīng)時(shí)間
- TTL=51:即發(fā)送者設(shè)置的數(shù)據(jù)包在網(wǎng)絡(luò)中可以存活的跳數(shù)
2、Tracert
tracert命令是以ICMP協(xié)議實(shí)現(xiàn)的網(wǎng)絡(luò)工具,主要解決網(wǎng)絡(luò)連通性問題,統(tǒng)計(jì)響應(yīng)耗時(shí)時(shí)間,路徑明細(xì)等信息,示例截圖如圖所示:
如圖所示,返回報(bào)文主要字段:
- 第一列:表示經(jīng)歷的網(wǎng)絡(luò)節(jié)點(diǎn),逐一遞增
- 第二列到第四列,三次響應(yīng)的平均時(shí)間
- 經(jīng)歷的ip信息
-
IP
+關(guān)注
關(guān)注
5文章
1803瀏覽量
152475 -
路由器
+關(guān)注
關(guān)注
22文章
3837瀏覽量
116588 -
ICMP
+關(guān)注
關(guān)注
0文章
52瀏覽量
15280 -
ARP
+關(guān)注
關(guān)注
0文章
50瀏覽量
14998
發(fā)布評(píng)論請(qǐng)先 登錄
ARP協(xié)議攻擊及其解決方案
地址解析協(xié)議ARP

地址解析協(xié)議(ARP),地址解析協(xié)議(ARP)是什么意思
ARP協(xié)議動(dòng)態(tài)交互仿真系統(tǒng)的設(shè)計(jì)

ICMP控制報(bào)文協(xié)議
icmp協(xié)議工作原理

arp協(xié)議的作用是什么?arp協(xié)議的工作原理介紹

icmp協(xié)議是什么

icmp協(xié)議行為分析研究

icmp協(xié)議協(xié)議基礎(chǔ)詳解

tcp_ip 協(xié)議講座:介紹ARP,ICMP,DHCP協(xié)議
ARP是什么意思?ARP是什么協(xié)議?ARP協(xié)議用于什么地方
ICMP網(wǎng)絡(luò)控制消息協(xié)議簡(jiǎn)介

ARP協(xié)議原理是什么

ARP協(xié)議的工作流程

評(píng)論