(4)ARP:地址解析協議

一、簡介

    ARP爲IP地址到對應的硬件地址之間提供動態映射。之所以稱爲動態是因爲這個過程是自動完成的。一般應用程序用戶或系統管理員不必關心。RARP是被那些沒有磁盤驅動器的系統使用,它需要系統管理員進行手動設置。稍後介紹。

    點對點鏈路不適用ARP。當設置這些鏈路時,必須告知內核鏈路每一端的IP地址。

二、ARP高速緩存

    ARP高效運行的關鍵是由於每個主機上都有一個ARP高速緩存。這個緩存存放了最近Internet地址到硬件地址之間的映射記錄。高速緩存中的每一項的生存時間一般爲20分鐘,起始時間從被創建時開始算起。

    arp -a可用來顯示高速緩存中所有的內容。

三、ARP的分組格式

    ARP請求和應答分組的格式如下所示:


    以太網報頭中的前兩個字段是以太網的源地址和目的地址。目的地址爲全1的特殊地址是廣播地址。電纜上的所有以太網接口都要接收廣播的數據幀。
    兩個字節長的以太網幀類型表示後面數據的類型。對於ARP請求或應答來說,該字段的值爲0x0806。
    硬件類型字段表示硬件地址的類型。它的值爲1即表示以太網地址。協議類型字段表示要映射的協議地址類型。它的值爲0x0800即表示IP地址。它的值與包含IP數據報的以太網數據幀中的類型字段的值相同,這是有意設計的。
    接下來的兩個1字節的字段,硬件地址長度和協議地址長度分別指出硬件地址和協議地址的長度,以字節爲單位。對於以太網上IP地址的ARP請求或應答來說,它們的值分別爲6和4。
    操作字段指出四種操作類型,它們是ARP請求(值爲1)、ARP應答(值爲2)、RARP請求(值爲3)和RARP應答(值爲4)。這個字段必需的,因爲ARP請求和ARP應答的幀類型字段值是相同的。
    接下來的四個字段是發送端的硬件地址(在本例中是以太網地址)、發送端的協議地址(IP地址)、目的端的硬件地址和目的端的協議地址。注意,這裏有一些重複信息:在以太網的數據幀報頭中和ARP請求數據幀中都有發送端的硬件地址。
    對於一個ARP請求來說,除目的端硬件地址外的所有其他的字段都有填充值。當系統收到一份目的端爲本機的ARP請求報文後,它就把硬件地址填進去,然後用兩個目的端地址分別替換兩個發送端地址,並把操作字段置爲2,最後把它發送回去。

四、對不存在主機的ARP請求

    對不存在主機的ARP請求會按一定時間間隔重複發送ARP請求報文。直到上層應用放棄(如TCP連接大約在75s左右放棄連接)。

五、ARP高速緩存超時設置

    對完整的表項設置超時值爲20分鐘,對於不完整的表項(對一個不存在的主機發出ARP請求)設置超時值爲3分鐘。

六、免費ARP

    除了ARP代理外,ARP另一個特性稱爲免費ARP,它是指主機發送ARP查找自己的IP地址。通常,它發生在系統引導期間進行接口配置的時候。它有兩方面的作用:

    (1)一個主機可以通過它來確定另一個主機是否設置了相同的IP地址;

    (2)如果發送免費ARP的主機正好改變了硬件地址,那麼這個分組就可以使其他主機告訴緩存中舊的硬件地址進行相應的更新。

七、ARP命令

    arp -a用來顯示ARP高速緩存中的所有內容。

    arp -d用來刪除arp高速緩存中的某一項內容。

    arp -s用來增加高速緩存中的內容。新增加的內容是永久性的,除非在命令行的末尾附上關鍵字temp。

    位於命令行末尾的關鍵字pub和-s選項一起,可以使系統起着主機ARP代理的作用。系統將回答與主機名對應的IP地址的ARP請求,並以指定的以太網地址作爲應答。如果廣播地址爲系統本身,那麼系統就爲指定的主機名起着委託ARP代理的作用。

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