chrome web获取mac地址_老鬼傻瓜式讲解网络知识:网络设备如何通过IP地址获取设备MAC地址...
原創(chuàng)版權(quán)聲明:本文為今日頭條自媒體-老鬼非鬼的原創(chuàng)文章,遵循CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
這是物聯(lián)老鬼在【今日頭條】寫的第119篇文章
本文將按照以下目錄引導(dǎo)介紹:
1.ARP協(xié)議用來做什么
2.ARP協(xié)議報(bào)文介紹
3.ARP工作過程
4.免費(fèi)ARP介紹
1.ARP協(xié)議用來做什么
一臺(tái)網(wǎng)絡(luò)設(shè)備要發(fā)送數(shù)據(jù)給另一太網(wǎng)絡(luò)設(shè)備時(shí),必須要知道對(duì)方的IP地 址。但是,僅有IP地址是不夠的,因?yàn)镮P數(shù)據(jù)報(bào)文必須封裝成幀才能通 過數(shù)據(jù)鏈路進(jìn)行發(fā)送,而數(shù)據(jù)幀必須要包含目的MAC地址,因此發(fā)送端 還必須獲取到目的MAC地址。每一個(gè)網(wǎng)絡(luò)設(shè)備在數(shù)據(jù)封裝前都需要獲取 下一跳的MAC地址。IP地址由網(wǎng)絡(luò)層來提供,MAC地址通過ARP協(xié)議 來獲取。ARP協(xié)議是TCP/IP協(xié)議簇中的重要組成部分,ARP能夠通過目 的IP地址發(fā)現(xiàn)目標(biāo)設(shè)備的MAC地址,從而實(shí)現(xiàn)數(shù)據(jù)鏈路層的可達(dá)性。
2.ARP協(xié)議報(bào)文介紹
ARP報(bào)文中包含以下字段 :
- 1. Hardware Type表示硬件地址類型,一般為以太網(wǎng);
- 2. Protocol Type表示三層協(xié)議地址類型,一般為IP;
- 3. Hardware Length和Protocol Length為MAC地址和IP地址的長度, 單位是字節(jié);
- 4. Operation Code指定了ARP報(bào)文的類型,包括ARP request和ARP reply;
- 5. Source Hardware Address指的是發(fā)送ARP報(bào)文的設(shè)備MAC地址;
- 6. Source Protocol Address指的是發(fā)送ARP報(bào)文的設(shè)備IP地址;
- 7. Destination Hardware Address指的是接收者M(jìn)AC地址,在ARP request報(bào)文中,該字段值為0;
- 8. Destination Protocol Address指的是指接收者的IP地址
3.ARP工作過程
總覽
通過ARP協(xié)議,網(wǎng)絡(luò)設(shè)備可以建立目標(biāo)IP地址和MAC地址之間的映射。 網(wǎng)絡(luò)設(shè)備通過網(wǎng)絡(luò)層獲取到目的IP地址之后,還要判斷目的MAC地址是 否已知。
ARP緩存表
網(wǎng)絡(luò)設(shè)備一般都有一個(gè)ARP緩存(ARP Cache),ARP緩存用來存放IP 地址和MAC地址的關(guān)聯(lián)信息。在發(fā)送數(shù)據(jù)前,設(shè)備會(huì)先查找ARP緩存表 。如果緩存表中存在對(duì)方設(shè)備的MAC地址,則直接采用該MAC地址來 封裝幀,然后將幀發(fā)送出去。如果緩存表中不存在相應(yīng)信息,則通過發(fā) 送ARP request報(bào)文來獲得它。學(xué)習(xí)到的IP地址和MAC地址的映射關(guān)系 會(huì)被放入ARP緩存表中存放一段時(shí)間。在有效期內(nèi),設(shè)備可以直接從這 個(gè)表中查找目的MAC地址來進(jìn)行數(shù)據(jù)封裝,而無需進(jìn)行ARP查詢。過了 這段有效期,ARP表項(xiàng)會(huì)被自動(dòng)刪除。 如果目標(biāo)設(shè)備位于其他網(wǎng)絡(luò),則源設(shè)備會(huì)在ARP緩存表中查找網(wǎng)關(guān)的 MAC地址,然后將數(shù)據(jù)發(fā)送給網(wǎng)關(guān),網(wǎng)關(guān)再把數(shù)據(jù)轉(zhuǎn)發(fā)給目的設(shè)備
Step1:ARP請(qǐng)求
本例中,主機(jī)A的ARP緩存表中不存在主機(jī)C的MAC地址,所以主機(jī)A會(huì) 發(fā)送ARP request來獲取目的MAC地址。ARP request報(bào)文封裝在以太 幀里。幀頭中的源MAC地址為發(fā)送端主機(jī)A的MAC地址。此時(shí),由于主 機(jī)A不知道主機(jī)C的MAC地址,所以目的MAC地址為廣播地址FF-FFFF-FF-FF-FF。ARP request報(bào)文中包含源IP地址、目的IP地址、源 MAC地址、目的MAC地址,其中目的MAC地址的值為0。ARP Request 報(bào)文會(huì)在整個(gè)網(wǎng)絡(luò)上傳播,該網(wǎng)絡(luò)中所有主機(jī)包括網(wǎng)關(guān)都會(huì)接收到此 ARP request報(bào)文。網(wǎng)關(guān)將會(huì)阻止該報(bào)文發(fā)送到其他網(wǎng)絡(luò)上
Step2:ARP響應(yīng)
所有的主機(jī)接收到該ARP Request報(bào)文后,會(huì)檢查它的目的協(xié)議地址字 段與自身的IP地址是否匹配。如果不匹配,則該主機(jī)將不會(huì)響應(yīng)該ARP Request報(bào)文。如果匹配,則該主機(jī)會(huì)將ARP報(bào)文中的源MAC地址和源 IP地址信息記錄到自己的ARP緩存表中,然后通過ARP Reply報(bào)文進(jìn)行 響應(yīng)。
主機(jī)C會(huì)向主機(jī)A回應(yīng)ARP Reply報(bào)文。ARP Reply報(bào)文中的源協(xié)議地址 是主機(jī)C自己的IP地址,目標(biāo)協(xié)議地址是主機(jī)A的IP地址,目的MAC地 址是主機(jī)A的MAC地址,源MAC地址是自己的MAC地址,同時(shí) Operation Code被設(shè)置為reply。ARPReply報(bào)文通過單播傳送
Step3:寫入ARP緩存
主機(jī)A收到ARP Reply以后,會(huì)檢查ARP報(bào)文中目的MAC地址是否與自 己的MAC匹配。如果匹配,ARP報(bào)文中的源MAC地址和源IP地址會(huì)被 記錄到主機(jī)A的ARP緩存表中。ARP表項(xiàng)的老化超時(shí)時(shí)間缺省為1200秒。
跨網(wǎng)段如何訪問
在上述例子的組網(wǎng)中,主機(jī)A需要與主機(jī)B通信時(shí),目的IP地址與本機(jī)的 IP地址位于不同網(wǎng)絡(luò),但是由于主機(jī)A未配置網(wǎng)關(guān),所以它將會(huì)以廣播 形式發(fā)送ARP Request報(bào)文,請(qǐng)求主機(jī)B的MAC地址。但是,廣播報(bào)文 無法被路由器轉(zhuǎn)發(fā),所以主機(jī)B無法收到主機(jī)A的ARP請(qǐng)求報(bào)文,當(dāng)然也 就無法應(yīng)答。 在路由器上啟用代理ARP功能,就可以解決這個(gè)問題。啟用代理ARP后 ,路由器收到這樣的請(qǐng)求,會(huì)查找路由表,如果存在主機(jī)B的路由表項(xiàng) ,路由器將會(huì)使用自己的G0/0/0接口的MAC地址來回應(yīng)該ARP request 。主機(jī)A收到ARP reply后,將以路由器的G0/0/0接口MAC地址作為目的 MAC地址進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。
4.免費(fèi)ARP介紹
主機(jī)被分配了IP地址或者IP地址發(fā)生變更后,必須立刻檢測(cè)其所分配的 IP地址在網(wǎng)絡(luò)上是否是唯一的,以避免地址沖突。主機(jī)通過發(fā)送ARP request報(bào)文來進(jìn)行地址沖突檢測(cè)。 主機(jī)A將ARP Request廣播報(bào)文中的目的IP地址字段設(shè)置為自己的IP地 址,該網(wǎng)絡(luò)中所有主機(jī)包括網(wǎng)關(guān)都會(huì)接收到此報(bào)文。當(dāng)目的IP地址已經(jīng) 被某一個(gè)主機(jī)或網(wǎng)關(guān)使用時(shí),該主機(jī)或網(wǎng)關(guān)就會(huì)回應(yīng)ARP reply報(bào)文。 通過這種方式,主機(jī)A就能探測(cè)到IP地址沖突了
尾言
好了至此大家應(yīng)該比較清楚了ARP協(xié)議的作用以及其作為免費(fèi)偵測(cè)IP地址沖突的工作過程和原理。
老鬼非鬼-致力于關(guān)注社會(huì)、科技、軍事、民生的自媒體,提供一個(gè)專業(yè)、嚴(yán)謹(jǐn)、科學(xué)的新媒體深度解讀和分析平臺(tái)!
總結(jié)
以上是生活随笔為你收集整理的chrome web获取mac地址_老鬼傻瓜式讲解网络知识:网络设备如何通过IP地址获取设备MAC地址...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 如果你的年龄大于18_py
- 下一篇: 在一个无序的int数组上构建一个最小堆的