国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一文講解--ARP協(xié)議詳解

2022-09-22 15:52 作者:補給站Linux內(nèi)核  | 我要投稿

ARP學習總結(jié)

1.ARP出現(xiàn)原因

ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。其作用是在以太網(wǎng)環(huán)境中,數(shù)據(jù)的傳輸所依懶的是MAC地址而非IP地址,而將已知IP地址轉(zhuǎn)換為MAC地址的工作是由ARP協(xié)議來完成的。

在局域網(wǎng)中,網(wǎng)絡中實際傳輸?shù)氖恰皫保瑤锩媸怯心繕酥鳈C的MAC地址的。在以太網(wǎng)中,一個主機和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標IP地址轉(zhuǎn)換成目標MAC地址的過程。ARP協(xié)議的基本功能就是通過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行。


2.ARP映射方式

2.1. 靜態(tài)映射

靜態(tài)映射的意思是要手動創(chuàng)建一張ARP表,把邏輯(IP)地址和物理地址關聯(lián)起來。這個ARP表儲存在網(wǎng)絡中的每一臺機器上。例如,知道其機器的IP地址但不知道其物理地址的機器就可以通過查ARP表找出對應的物理地址。這樣做有一定的局限性,因為物理地址可能發(fā)生變化:

(1)機器可能更換NIC(網(wǎng)絡適配器),結(jié)果變成一個新的物理地址。

(2)在某些局域網(wǎng)中,每當計算機加電時,他的物理地址都要改變一次。

(3)移動電腦可以從一個物理網(wǎng)絡轉(zhuǎn)移到另一個物理網(wǎng)絡,這樣會時物理地址改變。

要避免這些問題出現(xiàn),必須定期維護更新ARP表,此類比較麻煩而且會影響網(wǎng)絡性能。

2.2. 動態(tài)映射

動態(tài)映射時,每次只要機器知道另一臺機器的邏輯(IP)地址,就可以使用協(xié)議找出相對應的物理地址。已經(jīng)設計出的實現(xiàn)了動態(tài)映射協(xié)議的有ARP和RARP兩種。ARP把邏輯(IP)地址映射為物理地址。RARP把物理地址映射為邏輯(IP)地址。

3.ARP原理及流程

在任何時候,一臺主機有IP數(shù)據(jù)報文發(fā)送給另一臺主機,它都要知道接收方的邏輯(IP)地址。但是IP地址必須封裝成幀才能通過物理網(wǎng)絡。這就意味著發(fā)送方必須有接收方的物理(MAC)地址,因此需要完成邏輯地址到物理地址的映射。而ARP協(xié)議可以接收來自IP協(xié)議的邏輯地址,將其映射為相應的物理地址,然后把物理地址遞交給數(shù)據(jù)鏈路層。


【文章福利】小編推薦自己的Linux內(nèi)核技術(shù)交流群:【891587639】整理了一些個人覺得比較好的學習書籍、視頻資料共享在群文件里面,有需要的可以自行添加哦!?。。ê曨l教程、電子書、實戰(zhàn)項目及代碼)??

3.1.ARP請求

任何時候,當主機需要找出這個網(wǎng)絡中的另一個主機的物理地址時,它就可以發(fā)送一個ARP請求報文,這個報文包好了發(fā)送方的MAC地址和IP地址以及接收方的IP地址。因為發(fā)送方不知道接收方的物理地址,所以這個查詢分組會在網(wǎng)絡層中進行廣播。(見圖1)


3.2.ARP響應

局域網(wǎng)中的每一臺主機都會接受并處理這個ARP請求報文,然后進行驗證,查看接收方的IP地址是不是自己的地址,只有驗證成功的主機才會返回一個ARP響應報文,這個響應報文包含接收方的IP地址和物理地址。這個報文利用收到的ARP請求報文中的請求方物理地址以單播的方式直接發(fā)送給ARP請求報文的請求方。(見圖2)


4.ARP協(xié)議報文字段抓包解析

4.1.報文格式


硬件類型:16位字段,用來定義運行ARP的網(wǎng)絡類型。每個局域網(wǎng)基于其類型被指派一個整數(shù)。例如:以太網(wǎng)的類型為1。ARP可用在任何物理網(wǎng)絡上。

協(xié)議類型:16位字段,用來定義使用的協(xié)議。例如:對IPv4協(xié)議這個字段是0800。ARP可用于任何高層協(xié)議

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

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

操作碼:16位字段,用來定義報文的類型。已定義的分組類型有兩種:ARP請求(1),ARP響應(2)。

源硬件地址:這是一個可變長度字段,用來定義發(fā)送方的物理地址。例如:對于以太網(wǎng)這個字段的長度是6字節(jié)。

源邏輯地址:這是一個可變長度字段,用來定義發(fā)送方的邏輯(IP)地址。例如:對于IP協(xié)議這個字段的長度是4字節(jié)。

目的硬件地址:這是一個可變長度字段,用來定義目標的物理地址,例如,對以太網(wǎng)來說這個字段位6字節(jié)。對于ARP請求報文,這個字段為全0,因為發(fā)送方并不知道目標的硬件地址。

目的邏輯地址:這是一個可變長度字段,用來定義目標的邏輯(IP)地址,對于IPv4協(xié)議這個字段的長度為4個字節(jié)。

4.2. ARP報文總長度

ARP報文的總長度為64字節(jié)。

首先要知道幀的概念 幀是在數(shù)據(jù)鏈路層傳輸?shù)臄?shù)據(jù)格式,比如以太網(wǎng)v2,以太網(wǎng)IEEE802.3和PPP等。

所以Wireshark抓到的幀是包含幀頭的,即包含以太網(wǎng)v2的幀頭,長14 bytes;

而ARP數(shù)據(jù)包的長度固定為28 bytes;

幀總長度 = 幀頭 + 網(wǎng)絡層包頭 + 傳輸層報文頭 + 應用數(shù)據(jù);

而ARP請求中ARP包已經(jīng)是最高層,之上沒有傳輸層和應用層,所以總長度為:

幀總長度 = 幀頭 + ARP包頭 = 14 + 28 = 42 bytes;

而真正 發(fā)包的時為了保證以太網(wǎng)幀的最小幀長為64 bytes,會在報文里添加一個padding字段,用來填充數(shù)據(jù)包大小。

使用wireshark抓包時,抓到的包為60 bytes。比以太網(wǎng)幀的最小幀長掃了4 bytes,原因是因為wireshark抓包時不能抓到數(shù)據(jù)包最后的CRC字段。

CRC字段是為了校驗以太網(wǎng)幀的正確性。在數(shù)據(jù)包填充完成后,回去通過算法計算一個值放到數(shù)據(jù)包的CRC字段中。當接受端收到數(shù)據(jù)包后,會同樣使用算法計算一個值,然后和CRC字段的值進行對比,查看是否相同。如果不同則證明數(shù)據(jù)包被更改,如果相同則證明數(shù)據(jù)包并未被更改。

4.3. 報文封裝

ARP報文直接封裝在數(shù)據(jù)鏈路幀中,例如,圖4中,ARP分組被封裝在以太網(wǎng)的幀中。注意,幀中的類型字段指出此幀所攜帶的數(shù)據(jù)是ARP報文。

4.4. 報文抓包解析

既然了解了ARP的詳細格式,就嘗試獲取ARP報文。

例:


如圖5所示,pc1給pc2發(fā)送ARP請求,此時使用Wireshark獲取ARP抓包數(shù)據(jù)


當PC1發(fā)送的ARP請求報文,以廣播報的形式發(fā)送到局域網(wǎng)后,當pc2檢測到IP地址與自己的IP相同,就會發(fā)送給PC1響應報文。

對于ARP響應包來說,源IP,目地IP,源MAC,目地MAC都是知道的。


PS: 報文中的padding字段是填充數(shù)據(jù),為了保證幀最少有64個字節(jié)




一文講解--ARP協(xié)議詳解的評論 (共 條)

分享到微博請遵守國家法律
辽阳县| 洛阳市| 罗江县| 塘沽区| 彭阳县| 南昌市| 东光县| 桦川县| 平罗县| 含山县| 台东市| 泰安市| 泗水县| 都江堰市| 宜阳县| 南平市| 江孜县| 灌南县| 仙桃市| 高州市| 灵山县| 峨眉山市| 噶尔县| 鸡东县| 岳阳县| 临高县| 凤山市| 惠水县| 迁西县| 黔南| 林口县| 无极县| 赞皇县| 德令哈市| 漠河县| 三都| 崇礼县| 阿拉尔市| 平泉县| 慈利县| 洮南市|