arp被稱為位址解析協議,它在區域網內部通過ip位址查詢到目標主機的mac位址。即arp協議完成了一次從ip位址到mac位址的轉化。
因為在區域網中,如果源主機要和目的主機建立通訊關係,那麼源主機必須要知道目的主機的mac位址(即硬體位址),但是如果目的主機或者源主機是第一次進行通訊的,那麼源主機要怎樣才能知道目的主機的mac位址呢? 所以這樣就引入了arp位址協議。
什麼是arp資料報? 由上面的問題我們知道了,arp位址解析協議的引入是為了讓源主機和目標主句在進行通訊時能夠獲得目標主機的mac位址,那麼是如何獲得的呢?
我們知道,在網路中,主機a要獲得主機b的資訊,主機b不能給主機a主動傳送它自己的資訊,主機a要想獲得主機b的資訊,它就必須向主機b傳送相關資訊,請求主機b把自己的資訊傳送給他,這裡主機a傳送的請求資訊和主機b的應答資訊就是我們所說的arp資料報,它有請求和應答兩種型別。
arp協議的資料報格式如下圖:
下面我們就來談一談arp位址解析協議是如何把目的位址的ip位址轉化成mac位址的。
1. 首先,主機a想要向主機b傳送訊息,但它不知道主機b的mac位址,只知道主機b的ip位址。這時,主機a會在當前區域網下以廣播的形式傳送arp請求資料報,表示主機a想知道主機b的mac位址(注:廣播時,乙太網首部的目的位址為全f)。
2. 由於是廣播,所以在本區域網上的所有主機都會受到主機a傳送的arp資料報,然後所有主機會把乙太網首部這個報頭給去掉,向上面的網路層傳送arp資料報。在這裡我們便可以回答上面的問題了,乙太網首部和arp資料報內的mac位址都不能少,乙個是在資料鏈路層使用的,乙個是在網路層使用的,因為兩個層都不能看到互相的資料。
3. 網路層首先會檢查op欄位,發現這時個arp請求資料報,然後又會檢查目的ip位址字段,檢查完畢後,這時除了主機b外,在這個區域網內的其他主機都會把資料報丟棄,因為只有主機b的ip位址和目的ip位址是相同的。
5. 主機a在收到主機b的arp應答資料報後,會在其arp快取記憶體中寫入主機b的ip位址到主機b的硬體位址的對映,還會設定相應的生存時間。
注:快取記憶體的引入是為了解決如果主機a在一段時間內反覆向主機b傳送資料,如果沒有快取記憶體儲存第一次傳送後得到的主機b的mac位址,那麼每次都要傳送arp資料報帶來的開銷是非常大的。
生存時間的引入是為了每次都要定期更新各個快取記憶體的對映關係,防止主機位址發生變化而導致沒有主機可以收到資料報,這個生存時間就是更新時間。
網路協議 ARP 位址解析協議
由於網路層的ip協議呼叫了arp協議,因此通常將 arp 協議歸為網路層協議。其訊息由資料鏈路層協議封裝,它是在同一區域網內部通訊的,從不跨網路節點路由。因此,也可以認為 arp 協議是資料鏈路層協議。建立tcp連線與arp的關係 應用接受使用者提交的資料,觸發tcp建立連線,tcp的第乙個syn報...
網路層 位址解析協議ARP
ip位址與實體地址的相互轉換問題 如下圖,主機h10向主機h1傳送了ip包,路由器r1要想在區域網中將ip包傳送給主機h1,需知道h1的實體地址 位址解析協議arp address resolution protocol 逆位址解析協議rarp reverse address resolution ...
ARP協議 位址解析協議
網路層使用的是ip位址,但實際網路的鏈路上傳送資料幀時,最終還是必須使用該網路的硬體位址。arp快取記憶體 ip位址到硬體位址的對映表 那麼一台主機 a 是如何獲知本區域網內其他主機或路由的硬體位址的?主機a廣播arp請求分組 我的ip是 硬體位址是 請告知我ip位址為 主機的硬體位址。本區域網內的...