arp概念及前置知識:
網路層以上的協議用ip位址來標識網路介面,但以太資料幀傳輸時,以實體地址來標識網路介面。因此我們需要進行ip位址與實體地址之間的轉化。
mac位址由裝置製造商定義/分配,每乙個硬體裝置都有乙個鏈路層主位址(mac位址),儲存在裝置的永久記憶體中。裝置的mac位址不會改變(現在可以進行mac位址偽裝)
ip位址由使用者配置給網路介面, 網路介面的ip位址是可以發生變化的(通過dhcp獲取ip,變化速度比較快)
arp協議報文格式
arp快取表
為了實現ip位址與mac位址的查詢與轉換,arp協議引入了arp快取表的概念。
每台主機或路由器在維護著乙個arp快取表(arp table),這個表包含ip位址到mac位址的對映關係,表中記錄了
如我們前面那張圖所展示的一樣,是主機最近執行時獲得關於其他主機的ip位址到mac位址的對映,當需要傳送資料的時候,主機就會根據資料報中的目標ip位址資訊,然後在arp快取表中進行查詢對應的mac位址,最後通過網絡卡將資料傳送出去。
arp快取表包含乙個壽命值(ttl,也稱作生存時間),它將記錄每個arp表項的生存時間,生存時間到了就會從快取表中刪除。
arp協議工作原理
每個主機都會在自己的arp 緩衝區中建立乙個 arp 列表,以表示 ip 位址和 mac 位址之間的對應關係。
主機(網路介面)新加入網路時(也可能只是mac位址發生變化,介面重啟等), 會傳送免費arp報文把自己ip位址與mac位址的對映關係廣播給其他主機。
網路上的主機接收到免費arp報文時,會更新自己的arp緩衝區。將新的對映關係更新到自己的arp表中。
某個主機需要傳送報文時,首先檢查 arp 列表中是否有對應 ip 位址的目的主機的 mac 位址,如果有,則直接傳送資料,如果沒有,就向本網段的所有主機傳送 arp 資料報,該資料報包括的內容有:源主機 ip 位址,源主機 mac 位址,目的主機的 ip 位址等。
當本網路的所有主機收到該 arp 資料報時:
(1)首先檢查資料報中的 ip 位址是否是自己的 ip 位址,如果不是,則忽略該資料報。
(2)如果是,則首先從資料報中取出源主機的 ip 和 mac 位址寫入到 arp 列表中,如果已經存在,則覆蓋。
(3) 然後將自己的 mac 位址寫入 arp 響應包中,告訴源主機自己是它想要找的 mac 位址。
源主機收到 arp 響應包後。將目的主機的 ip 和 mac 位址寫入 arp 列表,並利用此資訊傳送資料。如果源主機一直沒有收到 arp 響應資料報,表示 arp 查詢失敗。
arp協議工作過程:
arp如何將 ip位址 轉換為 mac位址?
首先,主機a想要向主機b傳送訊息,但它不知道主機b的mac位址,只知道主機b的ip位址。
這時,主機a會在當前區域網下以廣播的形式傳送arp請求資料報,表示主機a想知道主機b的mac位址(注:廣播時,乙太網首部的目的位址為全f)。
由於是廣播,所以在本區域網上的所有主機都會受到主機a傳送的arp資料報,然後所有主機會把乙太網首部這個報頭給去掉,向上面的網路層傳送arp資料報。在這裡我們便可以回答上面的問題了,乙太網首部和arp資料報內的mac位址都不能少,乙個是在資料鏈路層使用的,乙個是在網路層使用的,因為兩個層都不能看到互相的資料。
網路層首先會檢查op欄位,發現這時個arp請求資料報,然後又會檢查目的ip位址字段,檢查完畢後,這時除了主機b外,在這個區域網內的其他主機都會把資料報丟棄,因為只有主機b的ip位址和目的ip位址是相同的。
ARP協議 位址解析協議
網路層使用的是ip位址,但實際網路的鏈路上傳送資料幀時,最終還是必須使用該網路的硬體位址。arp快取記憶體 ip位址到硬體位址的對映表 那麼一台主機 a 是如何獲知本區域網內其他主機或路由的硬體位址的?主機a廣播arp請求分組 我的ip是 硬體位址是 請告知我ip位址為 主機的硬體位址。本區域網內的...
位址解析協議 ARP
1.什麼是arp?英文原義 address resolution protocol 中文釋義 是乙個位於tcp ip協議棧中的低層協議,負責將某個ip位址解析成對應的mac位址。區域網中,網路中實際傳輸的是 幀 幀裡面是有目標主機的mac位址的。所謂 位址解析 就是主機在傳送幀前將目標ip位址轉換成...
位址解析協議(ARP)
位址解析協議 arp 作用是將邏輯位址對映為實體地址,即將ip位址和實體地址關聯起來。當主機或路由器想要知道網路上另一台主機或者路由器的實體地址的時候,它就會傳送arp查詢分組。這個分組包括傳送端的實體地址和ip位址,以及接收端的ip位址。因為傳送端不知道接收端的實體地址,所以查詢就在網路上廣播。a...