協議位址結構 計算機網路之ARP協議

2021-10-16 03:22:51 字數 2478 閱讀 6340

引子:眾所周知,在網際網路上進行相互通訊的裝置必須有乙個ip位址才行。假設,現在兩個有ip位址的裝置要進行通訊,用專業一點的術語來說就是要互相傳送網路包,要知道網路包是要在實實在在的物理裝置上傳輸的(不管是網線也好還是wifi也好),但是物理層的傳輸是不認識ip位址,它只認識mac位址,所以兩個有ip的裝置要進行通訊還要依賴於底層的mac位址,那如何根據ip位址來找到對應裝置的mac位址呢?這個就是下面要講的arp協議的功能。
arp協議的全名是address resolution protocol。簡單的說arp協議的功能就是根據目標裝置的ip位址找到目標裝置的mac位址。既然是乙個協議,那肯定有其獨特的結構,來一起看一下arp分組的組成:

arp包

從上圖中其實已經可以看清楚arp協議的組成結構了,下面還是要稍微解釋下arp協議中每乙個欄位的意義:

在解釋arp工作原理之前,先解釋乙個概念,之前已經說過真正的資料報是要在物理裝置上傳輸的,而直接在物理裝置上傳輸的也不是arp分組,arp分組還要先封裝成資料鏈路幀然後物理層才會將資料鏈路幀傳送出去,下面來看一下資料鏈路幀的結構:

arp分組

arp分組就是被封裝到了資料鏈路幀的資料字段中了,但是資料鏈路真中不僅僅能是傳輸arp分組,還能傳輸ip資料報等上層協議,那資料鏈路幀如何知道資料字段中的資料到底是啥?實際上就是通過型別欄位來區分的,如果是arp分組,則型別欄位的字就是0x806。

為了方便起見,在介紹arp協議的工作原理的時候會按照下圖來解釋,圖中省略了一些不必要的字段:

資料鏈路幀

step1:當pc1要和pc2通訊的時候,如果pc1的快取表中有pc2的記錄,則直接將pc2的mac位址放入目的mac位址中,直接傳送相關的資料報。如果pc1的arp快取表中沒有pc2的記錄,就會發起乙個arp請求。

step2:pc1會將自己的ip位址和mac位址填入arp請求分組的源字段中,同時將pc2的ip位址填入arp請求分組的目的ip欄位中,並且將目的mac位址置空(即設定成全為0)。 同時將pc1的mac位址填入到資料鏈路幀的源mac欄位中,將資料鏈路幀的目的mac欄位置成廣播位址(即全為1)。這樣同乙個網路中的所有主機都會收到這個arp請求分組。

step4:pc2收到了arp請求分組,就知道了是想要自己的mac位址,因此就會封裝乙個arp響應分組用於響應這個arp請求分組。 pc2會將自己的ip位址和mac位址填入到arp響應分組的源ip和源mac欄位中,同時將pc1的ip和mac填入到arp響應分組的目的ip和目的mac欄位中(pc1的資訊可以在pc1發出的arp請求分組中得知)。同時將pc2的mac位址和pc1的mac位址填入到資料鏈路幀的源mac和目的mac欄位中。最後將arp響應分組以單播的形式發出(因為目的mac是知道的所以只需要用單播即可)。 同時pc2還會做一件很重要的事情,就是將pc1的mac和ip的資訊儲存到pc2的arp快取表中,至於為什麼要這麼做大家應該都可以想到。

上面說了這麼多,實際上總結一下就是一句話:arp請求採用廣播傳送, arp響應採用單播發送。

關於arp協議說了這麼多了,那真是情況下arp協議長到底長什麼樣呢?畢竟看過真實的東西要比僅看看文字描述理解的更深入,所以我就用wireshark在我本機上抓了一些包。讓我們來看看arp協議到底長什麼樣:

這是我本機的網路情況,下面的arp分組就是基於本機和路由器的乙個互動:

這是路由器發來的arp請求分組

路由器發來的arp請求分組

這是本機響應給路由器的arp響應分組

本機響應給路由器的arp響應分組

根據上面三張的內容和之前講的應該很容易對照起來,也可以發現實際情況下arp的乙個流程和之前說的也是一致的。通過抓包可以對arp分組有乙個更具體的映像。

計算機網路的知識還是很有必要要了解一下的,儘管可能和平時寫**的關聯不大。在學習計算機網路的時候一些資料將的還是很抽象的,所以要更好的理解可能的話最好還是要動手抓包看看實際情況下網路中傳輸的到底是什麼,資料上說的資料報到底是什麼。

該篇文章是之前寫的一些技術文章中的一篇,後面陸陸續續會遷移到這裡,希望可以幫助到一些乎友

計算機網路 位址解析協議ARP

如果傳送乙個幀到另乙個主機,僅知道ip位址是不夠的,乙太網驅動程式還需要知道目的主機的硬體位址 首先我們強調最重要的一點,arp僅用於ipv4,ipv6使用的是鄰居發現協議,鄰居發現協議被併入icmpv6,另外點到點網路不會使用arp,必須處在同一ip子網,arp才能正常工作 arp主要是廣播機制,...

計算機網路 1位址解析協議(ARP)

實驗1 位址解析協議 arp 一 實驗背景 實驗目的 掌握arp協議的報文格式 掌握arp協議的工作原理 掌握arp快取記憶體的作用 掌握arp請求和應答的實現方式 掌握arp快取表的維護過程 二 實驗主要過程與結果 練習一 a主機arp d,用a去pingc,所有人截獲arp請求與響應兩個arp報...

計算機網路arp隨筆

mac位址的作用 具有唯一標識性,標記我們的計算機,就像身份證一樣 ip位址的作用 從網路中標記計算機,但不聯網也是有ip的,只要有tcp 協議關係就會有ip位址 ip位址和mac位址的關係 ip位址通過詢問應答 arp協議 來得到對應的mac位址 arp協議 計算機c想要獲取到計算機a的mac位址...