地址解析協議ARP和逆地址解析協議RARP

 

地址解析協議ARP和逆地址解析協議RARP

                                                  作者:方曉華

        實際應用中我們經常會遇到這樣的問題:已經知道了一臺機器(主機或路由器)的IP地址,需要知道找出起相應的物理地址,或反過來,已經知道了物理地址,需要找出起相應的IP地址。

        地址解析協議ARP和逆地址解析協議RARP就是用來解決這樣問題的。

   圖4-1說明了兩種 協議的作用

 

 

 

                                             圖4-1 ARP和RARP協議的作用

          逆地址解析協議RARP在過去曾起到重要的作用,但現在的DHCP協議已經包含了RARP協議的功能。因此,現已經沒有人再單獨的使用RARP協議了。這裏我們就隨便的瞭解一下RARP協議的作用:逆地址解析協議RARP的作用是隻知道自己的硬件地址的主機能夠通過RARP協議找出起相應的IP地址。

          在網絡層使用的是IP地址,但在實際的網絡鏈路上傳送數據幀時,最終還是必須使用該網絡的硬件地址。但IP地址和下面的硬件地址之間由於格式不同而存在 簡單的映射關係,(eg。、:IP地址有32位,而局域網的硬件地址是48位)。此外在一個網絡上可能會有新的機子加入進來或撤走一些主機。更換網絡適配器也 使主機的硬件地址發生改變。地址解析協議ARP解決這個問題的方法實在主機ARP高速緩存中應存放一個從IP地址到硬件地址的映射表,並且這個映射表要經常動態更新(新增或超市刪除)。

         每臺主機上都設有一個ARP高速緩存(ARP cache),裏面有本局域網上的各主機和路由器的IP地址到硬件地址的映射表,這些都是該主機目前知道的一些地址。那麼主機是怎麼知道這些地址呢?下面我通過例子來說明

          當主機A要想向局域網上的某臺主機B發送IP數據報時,就現在奇ARP高速緩存中直接查看有無主機B的IP地址。如果有,就在ARP高速緩存中查出其對應的硬件地址,再把這個硬件地址寫入MAC幀中去,然後通過局域網把MAC幀發往次硬件地址。

      也可能找不到主機B的IP地址的項目,這可能是主機B才入網,也可能是主機A剛加電,其高速緩存還是空的,在這種情況下,主機A就自動運行ARP,然後按一下步驟找出主機B的硬件地址

     (1)ARP進程在本局域網用廣播發送一個ARP請求分組如圖4-2(a)是主機A廣播發送ARP請求分組的示意圖。ARP請求分組的主要內容表明:“我的IP地址時209.0.0.5硬件地址是00-00-C0-15-AD-18,我想知道IP地址爲209.0.0.6的主機硬件地址。”

 

                                                                    圖4-2(a)主機A廣播發送ARP請求分組

 

                                                       圖4-2(b)主機B響A發送ARP響應分組

                                              圖4-2地址解析協議ARP的工作原理

        (2)在本局域網上所有運行ARP協議的主機都收到詞ARP請求分組。

         (3)主機B在ARP請求分組中見到自己的IP地址,就向主機A返送ARP響應分組,並寫如自己的硬件地址,其它主機都不理睬這個ARP請求分組。見圖4-2(b)ARP響應分組的主要內容是:“我的IP地址是209.0.0.6我的硬件地址是08-00-2B-00-EE-0A”請注意雖然ARP請求分組是廣播方式發送的但是ARP響應分組是普通的單播,即從一個源地址發送到一目的地址。

        (4)主機A收到主機B的ARP響應分組後,就在其高速緩存中寫入主機B的IP地址到硬件地址的映射。

          爲了減少網絡上的通信量,主機A在發送其ARP請求分組的時,就把自己的IP地址到硬件地址的映射寫入ARP請求分組。當主機B收到主機A的ARP請求分組時,就把主機A的這與地址映射寫入到主機B自己的高速緩存裏,以後主機B發送向主機A發送數據報的時候就很方便了。

    可見ARP高速緩存是非常有用的,如果不使用ARP高速緩存,那麼任何一臺主機只要進行一次通信就必須在網絡中廣播方式發送ARP請求分組,這樣使網絡上的通信量就大大增加了,ARP把已經得到的地址映射保存在高速緩存中,這樣就使得該主機下次再和具有相同的地址的主機通信時,可以直接從高速緩存中找到所需要的硬件地址而不必再用廣播方式發送ARP請求分組。

      生存時間

   ARP把保存在高速中的每一個映射地址項目都要設置生存時間(eg:10-20分鐘)反超過生存時間的項目就可以從高速緩存中刪除。設置這種地址映射項目的生存時間是很重要的。設想有一種情況,主機A和B通信。A的高速緩存中有B的物理地址,但B的網絡適配器突然壞了,B立即更換了網絡適配器,因此B的硬件地址改變了。假定A有愛和B繼續通信。A在其高速緩存中查到B的原先的硬件地址,並使用該硬件地址向B發送數據幀。但B的原先的硬件地址已經失效了,因此A無法找到主機B。但是過了一段不長的時間,A的ARP高速緩存中已經刪除了B原先的硬件地址(因爲它的聲粗時間到了)於是A重新廣播發送ARP請求分組,又找到主機B了。

   注意:ARP是解決同一局域網上的主機或路由器的IP地址和硬件地址的映射問題,如歸所要找的主機和原主機不在同一局域網上。例如 如圖4-3中主機H1就無法解析出主機H2的硬件地址(實際上主機H1也不需要知道主機H2的硬件地址)。主機H1發送給H2的數據報首先需要通過與主機連接在同一局域網上的路由器R1來轉發。因此主機H1這是需要把路由器R1的IP地址IP3解析爲硬件地址HA3,以便能過把IP數據報傳送到路由器R1。以後R1從轉發表中找出了下一路由器的R2同時使用ARP協議解析出R2的硬件地址HA5,於是IP數據報按照硬件地址HA5轉發到路由器R2,路由器R2在轉發這個數據報時用類似的方法解析出目的主機H2的硬件地址HA2,使IP數據報最終交付給主機H2

                        圖4-3

 

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