精品秘无码一区二区三区老师-精品秘一区二三区免费雷安-精品蜜桃秘一区二区三区-精品蜜桃秘一区二区三区粉嫩-精品蜜桃一区二区三区-精品蜜臀国产aⅴ一区二区三区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

ARP地址解析協(xié)議(Address Resolution Protocol)協(xié)議詳解,將IPv4地址轉(zhuǎn)換為硬件地址

admin
2025年1月2日 8:51 本文熱度 2233

ARP概述

ARP協(xié)議的定義

地址解析協(xié)議(Address Resolution Protocol,ARP):ARP協(xié)議可以將IPv4地址(一種邏輯地址)轉(zhuǎn)換為各種網(wǎng)絡(luò)所需的硬件地址(一種物理地址)。換句話說,所謂的地址解析的目標(biāo)就是發(fā)現(xiàn)邏輯地址與物理地址的映射關(guān)系。 ARP僅用于IPv4協(xié)議,IPv6使用鄰居發(fā)現(xiàn)協(xié)議(NDP)替代。

ARP協(xié)議目前最廣泛應(yīng)用于尋找32位IPv4地址與以太網(wǎng)的48位MAC地址之間的映射。

掌握ARP協(xié)議前,需要理解什么是邏輯地址和物理地址。

物理地址

物理地址:物理地址對于主機就類似身份證對于人類。對于每個網(wǎng)絡(luò)適配器,設(shè)置制造商都會給定一個永久的物理地址,將其存儲在設(shè)備的永久性內(nèi)存中。就像身份證一樣,物理地址就是網(wǎng)絡(luò)適配器的ID。注意,物理地址是和網(wǎng)絡(luò)適配器綁定的,如果主機更換了網(wǎng)絡(luò)適配器,那么它的物理地址也會相應(yīng)改變。(雖然網(wǎng)絡(luò)適配器的物理地址是固定的,但也可以通過特殊方法修改,但這種情況極少出現(xiàn),不影響我們理解)

在TCP/IP分層體系結(jié)構(gòu)中,數(shù)據(jù)鏈路層和物理層使用的地址是物理地址。而網(wǎng)絡(luò)層、傳輸層和應(yīng)用層使用的地址是IP地址(邏輯地址)。

邏輯地址

邏輯地址:邏輯地址就是我們常說的IP地址,因為IP地址是由軟件實現(xiàn)的,所以把它稱為邏輯地址。IP地址是不固定的,它通常從某個網(wǎng)絡(luò)的IP地址池中獲得,改變網(wǎng)絡(luò)環(huán)境,IP地址就會改變。

為什么需要2級地址    

分組進(jìn)行傳輸必須要2級地址:邏輯地址和物理地址。

IP地址和物理地址是在不同的層次下運行的。同一個目的IP地址可能經(jīng)過多段鏈路,每段鏈路都可能運行不同的鏈路層和物理層協(xié)議,它們的物理地址格式可能都截然不同;同理,同一段鏈路可能接收來自不同的網(wǎng)絡(luò)層協(xié)議,比如IPv4或者IPX。

有人可能覺得,直接用物理地址替代IP地址不就行了么?

這是因為對IP地址不夠了解。現(xiàn)實中,有很多鏈路層和物理層的協(xié)議,它們都有不同的物理地址。如果完全依賴物理地址,那么路由表就需要對每個物理地址建立一個項,那樣沒有一個路由器能夠負(fù)擔(dān)如此龐大的表項。

而IP地址提供了更高層次的抽象,將不同的物理地址抽象為統(tǒng)一的邏輯地址。

IP地址有良好的分層。如果分組轉(zhuǎn)發(fā)到同一子網(wǎng),只需要在路由表中記錄統(tǒng)一的網(wǎng)絡(luò)前綴。比如,一個子網(wǎng)有6000個IP地址,對應(yīng)6000個物理地址。記錄IP地址網(wǎng)絡(luò)前綴只需要1行,記錄物理地址則需要6000行。

有了IP地址,分組的路由(也就是找路)的工作仿佛在同一個網(wǎng)絡(luò)中進(jìn)行。如果傳輸IPv4分組,那么IPv4分組傳輸過程中經(jīng)過的所有網(wǎng)絡(luò)都使用IPv4協(xié)議,仿佛它們在一個邏輯上的網(wǎng)絡(luò)中。

ARP工作原理

ARP協(xié)議主要依賴ARP高速緩存(ARP cache)。ARP高速緩存就是一個映射表,它記錄了IP地址和物理地址的映射關(guān)系。每一臺主機和路由器都設(shè)有ARP高速緩存,在實際傳輸中,通常已知下一跳的目的IP地址(這是通過查詢路由表完成的,不是本篇的知識),通過查詢ARP高速緩存即可知道對應(yīng)的物理地址。

如何建立ARP高速緩存

高速緩存記錄的映射表不是一開始就有的。假設(shè)已知下一跳的目的IP地址,如何通過ARP協(xié)議得知下一跳對應(yīng)的物理地址呢?    

答案是通過廣播ARP請求分組。

ARP請求分組有3個重要信息:1.源IP地址。2.對應(yīng)的源物理地址。3.目的IP地址。

查詢的內(nèi)容為:對應(yīng)的目的物理地址。

以下是具體步驟:

源主機或者路由器會給該網(wǎng)絡(luò)的所有主機發(fā)送ARP請求分組(也就是給這個網(wǎng)絡(luò)廣播該分組),所有主機會檢查分組的目的IP地址是否與自身的IP地址相同。如果不相同,就丟棄該分組;如果相同,就說明自己就是被尋找的目的主機或者路由器。

目的主機(或目的路由器)在收到ARP請求分組后,會做兩件事:

1.將源主機的IP地址和對應(yīng)的物理地址添加進(jìn)自身的ARP高速緩存映射表。

這是因為既然源主機會和自己通信,那么自己之后也可能會主動和源主機通信,提前建立源主機的映射表項是有必要的,之后自己要主動和源主機通信就不用廣播ARP請求分組了。

2.給源主機發(fā)送ARP響應(yīng)報文(注意,該報文是單播的)

目的主機需要給源主機發(fā)送ARP響應(yīng)報文,告知源主機自己的物理地址。源主機在收到所需的ARP響應(yīng)報文,就可以發(fā)送幀給目的主機了。

為什么是單播而不是廣播呢?那是因為目的主機已經(jīng)有源主機的物理地址了,可以直接給源主機發(fā)送對應(yīng)的幀,不需要廣播。

當(dāng)源主機接收到ARP響應(yīng)報文后,也會將目的主機的IP地址和對應(yīng)的物理地址添加到自己的ARP高速緩存映射表中,這樣下次再和該主機通信,就不用廣播ARP分組了。之后就可以通過物理地址,給目的主機發(fā)送幀了。

使用ARP協(xié)議的4種不同情況

ARP協(xié)議是在單個網(wǎng)絡(luò)內(nèi)部運行的。如果源主機和目的主機不在一個網(wǎng)絡(luò)中,必須多次使用ARP協(xié)議。    

無論情況多復(fù)雜,都是由以下4種情況組合而成的。

如果源主機和目的主機在一個網(wǎng)絡(luò)中,這就很簡單,源主機直接通過ARP協(xié)議尋找目的主機的物理地址。

也就是情況1:源主機直接通過ARP協(xié)議尋找同一個網(wǎng)絡(luò)下目的主機的物理地址。    

如果源主機和目的主機不在一個網(wǎng)絡(luò)中,就必須通過路由器路由。通過查找路由表,將目的主機的IP地址轉(zhuǎn)換為下一跳的IP地址。再通過ARP協(xié)議,將下一跳的IP地址轉(zhuǎn)換為對應(yīng)的物理地址。

細(xì)分有3種情況:

情況2:源主機尋找下一跳路由器的物理地址。

情況3:路由器尋找在同一個網(wǎng)絡(luò)中的目的主機的物理地址。

情況4:路由器和目的主機不在同一個網(wǎng)絡(luò)中,路由器A尋找下一條路由器B的物理地址。

其實這4種情況非常好理解,只需要理解路由表的作用和ARP映射表的作用即可。

高速緩存的生存周期

ARP高速緩存是動態(tài)的,而且緩存記錄的映射項有生存周期,一般默認(rèn)是20分鐘。超過生存周期,那條映射就會從映射表中移除。

為什么需要設(shè)置生存周期呢?

是因為物理地址和IP地址都可能改變。比如目的主機更換了網(wǎng)絡(luò)適配器,那么目的主機的物理地址就改變了。

如果源主機通過查看ARP映射表得到了目的主機以前的物理地址,肯定是無法正常通信的。但隨著該表項生存周期到時,源主機會重新廣播ARP請求分組,這樣就可以得到目的主機新的物理地址。從而和目的主機正常通信。

ARP報文格式    

硬件類型:該字段有16bit。指定運行ARP協(xié)議的物理網(wǎng)絡(luò)類型,ARP協(xié)議可以運行在任何物理網(wǎng)絡(luò)上。以太網(wǎng)是類型1。

協(xié)議類型:該字段有16bit。指定高層協(xié)議的類型。ARP可用于任何高層協(xié)議。IPv4協(xié)議的值為0x0800。

硬件長度:該字段有8bit。定義物理地址的長度,以字節(jié)為單位。對于以太網(wǎng),該值為6字節(jié)。

協(xié)議長度:該字段有8bit。定義邏輯地址的長度,以字節(jié)為單位。對于IPv4,該值為4字節(jié)。

操作:該字段有16bit。用于定義分組類型,目前常用2種。ARP請求分組和ARP響應(yīng)分組。

發(fā)送方硬件地址:記錄發(fā)送方的物理地址。    

發(fā)送方協(xié)議地址:記錄發(fā)送方的邏輯地址。

接收方硬件地址:如果是ARP請求報文,由于不知道接收方的物理地址(請求報文就是通過廣播詢問接收方物理地址,當(dāng)然事先不知道),該字段全部填充為0。

接收方協(xié)議地址:記錄接收方的邏輯地址。

封裝ARP協(xié)議

ARP協(xié)議是很特殊的協(xié)議,它像是介于網(wǎng)絡(luò)層和鏈路層之間的協(xié)議。

ARP協(xié)議是封裝在幀中的,就像IPv4協(xié)議封裝在以太網(wǎng)幀一樣,從這個角度講,ARP協(xié)議像網(wǎng)絡(luò)層協(xié)議。

但是ARP協(xié)議是為網(wǎng)絡(luò)層協(xié)議服務(wù)的,從服務(wù)的角度講,它又像鏈路層協(xié)議。

實際中,ARP協(xié)議常封裝在以太網(wǎng)幀中。

當(dāng)廣播ARP請求分組時,該網(wǎng)絡(luò)中的所有主機都會從以太網(wǎng)幀中提取出ARP協(xié)議分組,檢查接收方協(xié)議地址字段,如果和自身IP地址不相同,就丟棄該分組。如果相同,說明自身的物理地址就是被尋找的地址。就需要給發(fā)送方回復(fù)ARP響應(yīng)分組(通過單播)。

ARP的響應(yīng)報文會將發(fā)送方硬件地址字段和發(fā)送方協(xié)議地址字段填寫成自身的物理地址和IP地址。將接收方硬件地址和接收方協(xié)議地址填寫為ARP請求報文的發(fā)送方硬件地址和發(fā)送方協(xié)議地址。

抓包分析

抓取ARP請求報文    

從上圖可知,ARP協(xié)議被封裝在Ethernet協(xié)議(以太網(wǎng)協(xié)議)中。

我們先看Ethernet II部分:

Destination(目的物理地址)字段的值為:ff:ff:ff:ff:ff:ff

說明該以太網(wǎng)幀是廣播幀,和ARP請求分組是通過廣播形式發(fā)送吻合。

Source(源物理地址)字段的值為:50:eb:f6:56:ca:57

這是發(fā)送方主機的物理地址,和ARP協(xié)議的Sender MAC address字段的值完全吻合。

Type字段為:ARP(0x0806)。

說明該以太網(wǎng)幀封裝的是一個ARP協(xié)議分組。

再看ARP協(xié)議部分:

前4個字段表明物理地址和邏輯地址的類型和長度,和之前講解的吻合。

第五個字段Opcode的值為1,說明是ARP請求報文。

后面4個字段是源物理地址和IP地址,以及目標(biāo)物理地址和IP地址。

值得注意的是,目標(biāo)物理地址正如之前所說,全部填充的0。因為該字段正是ARP請求報文需要獲取的,目前不知,只能全部填充為0。

抓取ARP響應(yīng)報文

先看Ethernet II部分:

Destination(目的物理地址)字段的值正好是ARP請求報文的Source字段的值。

也就是說,該ARP響應(yīng)報文是用來回應(yīng)之前的ARP請求分組的。    

該值也和Target MAC address的值相同。

Source(源物理地址)字段的值為目的端的物理地址,該值和Sender MAC address的值相同。

Padding是填充字段,用來填充以太網(wǎng)幀到最小幀長。

再看ARP協(xié)議部分:

前4個字段沒什么好講的。

第五個字段Opcode為2,表示這是ARP響應(yīng)分組。

后面4個字段,源MAC地址正是ARP請求報文想尋找的物理地址。源IP地址正好是ARP請求分組的目的IP地址。目的物理地址和目的IP地址正好是ARP請求分組的源物理地址和源IP地址。

查看ARP高速緩存    

在windows系統(tǒng)的終端,輸入arp -a命令可以顯示ARP緩存中的所有條目。

可以看到,當(dāng)源主機192.168.1.1向目的主機192.168.1.2發(fā)送ARP請求分組,并且得到對應(yīng)的ARP響應(yīng)分組后。

該表項192.168.1.2 8e-47-af-ef-a2-66就被添加到了ARP高速緩存中(第二項)。

靜態(tài)映射與動態(tài)映射

可以看到,ARP高速緩存中,有的是靜態(tài)映射,有的是動態(tài)映射。

通過ARP協(xié)議動態(tài)配置的表項就是動態(tài)映射。發(fā)送方檢查ARP緩存,如果沒找到所需物理地址,就發(fā)送ARP請求報文,并得到ARP響應(yīng)報文。之后再將對應(yīng)的映射添加到ARP映射表上。這種方式得到的映射表項就是動態(tài)映射。

通過手動方式添加的表項就是靜態(tài)映射。這種方式添加的表項比較死板,因為對應(yīng)的映射關(guān)系不一定固定不變。但是,靜態(tài)映射更加安全,不會被攻擊者通過ARP請求響應(yīng)報文添加錯誤的映射關(guān)系。


該文章在 2025/1/2 8:51:06 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产日韩欧美911 | 国产69精品久久久久人妻刘玥 | 精品国产av无码一区二区三区 | www视频无码综合gay青青河边 | 91福利国产在线观一区二区 | 中文www新版资源在线 | 国产精品日韩欧美一区二区三 | 亚洲第一区无码专区 | 亚洲最大的福利网站在线观看 | 中字无码在线观看 | 国产三级级在线电影 | 亚洲一级免费视频 | 国产麻豆三级在线观看 | 久久精品国产亚洲av | 国产69精品久久久久乱码 | 国产精品久久久久激情影院 | 天天日天天干人人摸 | 日韩精品第1页 | 国产第一页浮力影院入口 | 国产三级91 | 国产成人无码视频一区二区三区 | 国产三级自拍亚洲性爱在线 | 亚洲成av人片在线观看m | 亚洲中文字幕无码av在线 | 国产无人区码一码二码三mba | 中文无码天天av天天爽 | 91精品久久久久久久久中文字幕 | 伊人久久精品一区二区 | 亚州精品在线播放视频 | 午夜无遮挡男女啪啪免费软件 | 一区二区精品日韩欧美在 | 日本亚洲免费无线码 | 绝顶潮喷绝叫在线观看 | 亚洲熟妇少妇任你躁在线观看 | 在线精品亚洲一区二区三区 | 亚洲亚中文99 | 最新亚洲精品小视频免费看 | 少妇太爽了在线观看 | 亚洲一区综合在线播放 | 国产毛片毛多水多密月 | 91精品一区国产高清在线 |