tft每日頭條

 > 生活

 > 具體描述arp協議的工作原理

具體描述arp協議的工作原理

生活 更新时间:2024-08-16 08:19:53
ARP學結1.ARP出現原因

ARP協議是“Address Resolution Protocol”(地址解析協議)的縮寫。其作用是在以太網環境中,數據的傳輸所依懶的是MAC地址而非IP地址,而将已知IP地址轉換為MAC地址的工作是由ARP協議來完成的。

在局域網中,網絡中實際傳輸的是“幀”,幀裡面是有目标主機的MAC地址的。在以太網中,一個主機和另一個主機進行直接通信,必須要知道目标主機的MAC地址。但這個目标MAC地址是如何獲得的呢?它就是通過地址解析協議獲得的。所謂“地址解析”就是主機在發送幀前将目标IP地址轉換成目标MAC地址的過程。ARP協議的基本功能就是通過目标設備的IP地址,查詢目标設備的MAC地址,以保證通信的順利進行。

2.ARP映射方式2.1. 靜态映射

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

(1)機器可能更換NIC(網絡适配器),結果變成一個新的物理地址。

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

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

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

2.2. 動态映射

動态映射時,每次隻要機器知道另一台機器的邏輯(IP)地址,就可以使用協議找出相對應的物理地址。已經設計出的實現了動态映射協議的有ARP和RARP兩種。ARP把邏輯(IP)地址映射為物理地址。RARP把物理地址映射為邏輯(IP)地址。

3.ARP原理及流程

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

更多linux内核視頻教程文檔資料免費領取後台私信【内核】自行獲取.

具體描述arp協議的工作原理(一文講解--ARP協議詳解)1

具體描述arp協議的工作原理(一文講解--ARP協議詳解)2

Linux内核源碼/内存調優/文件系統/進程管理/設備驅動/網絡協議棧-學習視頻教程-騰訊課堂

3.1.ARP請求

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

具體描述arp協議的工作原理(一文講解--ARP協議詳解)3

3.2.ARP響應

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

具體描述arp協議的工作原理(一文講解--ARP協議詳解)4

4.ARP協議報文字段抓包解析4.1.報文格式

具體描述arp協議的工作原理(一文講解--ARP協議詳解)5

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

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

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

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

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

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

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

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

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

4.2. ARP報文總長度

ARP報文的總長度為64字節。

首先要知道幀的概念 幀是在數據鍊路層傳輸的數據格式,比如以太網v2,以太網IEEE802.3和PPP等。

所以wireshark抓到的幀是包含幀頭的,即包含以太網v2的幀頭,長14 bytes;

而ARP數據包的長度固定為28 bytes;

幀總長度 = 幀頭 網絡層包頭 傳輸層報文頭 應用數據;

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

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

而真正 發包的時為了保證以太網幀的最小幀長為64 bytes,會在報文裡添加一個padding字段,用來填充數據包大小。

使用wireshark抓包時,抓到的包為60 bytes。比以太網幀的最小幀長掃了4 bytes,原因是因為wireshark抓包時不能抓到數據包最後的CRC字段。

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

4.3. 報文封裝

ARP報文直接封裝在數據鍊路幀中,例如,圖4中,ARP分組被封裝在以太網的幀中。注意,幀中的類型字段指出此幀所攜帶的數據是ARP報文。

具體描述arp協議的工作原理(一文講解--ARP協議詳解)6

4.4. 報文抓包解析

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

例:

具體描述arp協議的工作原理(一文講解--ARP協議詳解)7

如圖5所示,pc1給pc2發送ARP請求,此時使用Wireshark獲取ARP抓包數據

具體描述arp協議的工作原理(一文講解--ARP協議詳解)8

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

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

具體描述arp協議的工作原理(一文講解--ARP協議詳解)9

PS: 報文中的padding字段是填充數據,為了保證幀最少有64個字節

- - 内核技術中文網 - 構建全國最權威的内核技術交流分享論壇

轉載地址:一文講解--ARP協議詳解 - 圈點 - 内核技術中文網 - 構建全國最權威的内核技術交流分享論壇

具體描述arp協議的工作原理(一文講解--ARP協議詳解)10

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved