ARP與RARP

ARP與RARP都屬於網絡層協議,但是他們是爲了解決鏈路層的幀轉發問題,ARP的功能是將IP解析成MAC地址,而RARP則相反。

ARP

地址解析協議(Address Resolution Protocol),其基本功能爲透過目標設備的IP地址,查詢目標設備的MAC地址。

① 首先,每個主機都有一個ARP列表,以緩存IP地址和MAC地址之間的對應關係。

②當源主機要發送數據時,首先檢查ARP列表中是否有對應的IP地址的目的地址的主機的MAC地址,如果有,則直接發送數據。如果沒有,則以廣播的形式向本子網所有主機發送ARP數據包,該數據包包括的內容有:源主機IP地址,源主機MAC地址,目的主機的IP地址。

③當本網段的所有主機收到該ARP數據包時,首先檢查數據包中的IP地址是否有自己的IP地址,如果沒有,則忽略該數據包。如果有,則首先從數據包中取出源主機的IP和MAC地址寫入到ARP列表中,如果已存在,則覆蓋,然後將自己的MAC地址寫入ARP響應包中,告訴源主機自己是它想要找的MAC地址。

④源主機收到ARP響應包後,將目的主機的IP和MAC地址寫入到ARP列表,並利用此信息發送數據。如果源主機一直沒有收到ARP相應數據包,表示ARP查詢失敗。廣播發送ARP請求,單播發送ARP響應。

使用ARP協議的四種典型情況

(1) 發送方是主機,要把 IP 數據發送到本地網絡上的另一個主機。這時用ARP獲取目的主機的MAC地址。 (2) 發送方是主機,要把 IP 數據發送到另一個網絡上的一個主機,這時需要使用ARP獲取路由器的MAC地址,將數據發送到路由器,由路由器完成在不同路由器之間跨越網絡的數據傳輸此時處於(4)情形,當到達目標網絡的路由器時,處於(3)的情形。 (3) 發送方是路由器,需要把 IP 數據發送到本地網絡上的一個主機,這時用 ARP 找到目標主機的 IP地址。 (4) 發送方是路由器,需要把 IP 數據包轉發到另一個網絡的主機。這時用 ARP找到去往該主機的下一跳路由器,之後的工作由下一個路由器完成。

(路由器收到ARP時,選擇傳輸哪一個端口,採用的是路由器的選路算法進行判斷)

 

RARP

RARP是將MAC物理地址轉換成IP地址。RARP也有request與reply,並且RARP request也是廣播,沒有目標地址;RARP reply也是有目標地址,也是單播。這兩點與ARP都相同。看起來雖然僅僅是ARP協議的逆向操作,但是RARP server設計的複雜性是遠遠超過ARP server的。首先,ARP server是存在於kernel中,而RARP server僅僅是一個用戶進程,RARP就有些"先天不足"。其次,RARP是尋找與物理地址對應的IP地址,這就表明了RARP request packet包中沒有IP地址,自然也就無法通過路由器進行轉發了。因爲路由器是工作在網絡層,網絡層的協議是IP協議,ARP request能夠通過路由器進行轉發,是因爲在ARP request packet中有IP地址的字段,而RARP request packet沒有,所以路由器對RARP也就沒有幫助了。

RARP還有一個機制,就是在每個網絡中都有多個RARP server。我猜想這可能是爲了增大可靠性,是用的主從服務器的設計理念。源地址一般只接受第一個RARP reply。有多個服務器,自然也就可能出現衝突。所以RARP server是這樣設計的:一般有一個主服務器是接收到request後立刻發送RARP reply,沒有發送延遲;而其他的服務器即使接收到了request,也會在一個隨機的發送延遲後才能發送reply,而且一般是在短時間內收到重複的第二個request纔可以發送reply。因爲如果這些次要的服務器都收到了第二次相同的request,那麼這種情況一般是主服務器掛了。

RARP工作原理:

1)將源設備和目標設備的MAC地址字段都設爲發送者的MAC地址和IP地址,發送主機發送一個本地的RARP廣播,能夠到達網絡上的所有設備,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的RARP服務器分配一個IP地址; ​ 2)本地網段上的RARP服務器收到此請求後,檢查其RARP列表,查找該MAC地址對應的IP地址; ​ 3)如果存在,RARP服務器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;如果不存在,RARP服務器對此不做任何的響應; ​ 4) 源主機收到從RARP服務器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到RARP服務器的響應信息,表示初始化失敗。

 

參考:

https://www.cnblogs.com/zhousysu/p/5483900.html

https://blog.csdn.net/Stream_star/article/details/74498593

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章