電腦網路與連結技術第十 三章 TCP/IP 與 Internet 連結技術 上一頁    下一頁

13-4 ARP RARP 協定

內容:

TCP/IP 網路下,每一部主機都有一個 IP 位址。理論上,欲傳送封包給任何一部主機只要知道它的 IP 位址,便可依照此 IP 位址傳送給該主機。但事實上,IP 封包在網路上傳遞時,還是必須透過實際網路位址,才能送達目的位址。例如,IP 網路架設在 Ethernet 上(IP over Ethernet),Ethernet 網路上所有工作站依照 Ethernet 位址傳送資料,接收端收到訊框後也依照 Ethernet 位址判斷是否傳送給自己,由此可見,在實體網路上,並沒有使用到 IP 位址。因此,某一部主機欲依照 IP 位址傳送給另一部主機,首先必須知道該主機的實體網路位址(一般稱為 MAC 位址),再依 MAC 位址傳送,亦即,必須擁有該主機的 IP/MAC 對照表,同樣的,任何一部主機也必須知道自己的 IP/MAC 對照關係。問題是當某部主機欲依照 IP 位址發送資料給另一主機時,它該如何得知對方的 MAC 位址(如 Ethernet 位址)?一般主機知道自己的 MAC 位址,又該如何去得到自己的 IP 位址?

TCP/IP 通訊協定裡有兩個協定來解決上述的問題,一為『位址解析協定』(Address Resolution Protocol, ARP);另一為『反向位址解析協定』(Reverse Address Resolution Protocol, RARP)。ARP 是用來查問欲傳送之目地主機的MAC位址,也就是說,由已知的 IP 位址查問其相對應的網路實體位址;而 RARP 是由已知的網路實體位址(MAC 位址)查詢其相對應的 IP 位址。

13-4-1 ARP 協定

位址解析協定』(ARP)是被用來以 IP 位址查詢其相對應的網路實體位址(MAC 位址),其運作方式如圖 13-11 所示。首先主機 A163.15.2.1)的網際層(Internet Layer)發送出 ARP Request(查問 163.15.2.4)訊息給網路存取層(Network Access Layer),網路存取層之 MAC 層(Ethernet 層)再將 ARP Request 訊息包裝在 Ethernet 訊框內,並廣播在網路上。網路上(區域網路內)所有主機接收到廣播訊框再拆解訊框。主機 C163.15.2.4)的網際層收到 ARP Request 後,並由其中瞭解是詢問自己,便回應 ARP Reply(包含 Ethernet 位址) 給網路存取層,網路存取層再發送訊框給主機 A163.15.2.1)。當然,其它主機也會收到 ARP Request 訊號,但皆判斷不是詢問自己而不予理會。

13-11 ARP 運作方式

13-12 ARP 封包格式

        不論 ARP Request Reply,或 RARP Request Reply 都使用 ARP 封包格式。ARP 封包格式如圖 13-12 所示,各欄位功能如下:(值得注意的是 ARP 封包並沒有經過 IP 封包包裝)

(1) Hardware Type表示發送主機使用之網路實體介面種類,如 1 表示 Ethernet 網路介面。

(2) Protocol Type表示所使用的通訊協定,如 0x0800 表示 IP 協定,其它通訊協定模式如表 13-1 所示。

(3) Operation Type表示此封包的工作模式:

        • 1 ARP 要求(ARP Request

        • 2 ARP 回應(ARP Reply

        • 3 RARP 要求(RARP Request

        • 4 RARP 回應(RARP Reply

(4) HLEN網路介面卡硬體位址長度。若 Ethernet 位址的長度為 6

(5) PLEN網路協定位址長度。因為 IP 位址長 4 個位元組,此值為 4

(6) Sender HW發送端的硬體位址。如果是 Ethernet 網路的話,此為 6 個位元組長的地址,如 0x8823AA112233

(7) Target HW目的地的硬體位址。

(8) Sender IP發送端的 IP 位址,如 163.15.2.1

(9) Target IP目的地主機的 IP 位址,如163.15.2.4

並非主機每次欲發送封包之前,都要詢問對方的網路硬體位址。一般主機的快取記憶體(Cache memory)上,都有維護一只『ARP 索引表』(由 ARP 協定建立,又稱為 ARP caching)。當主機電腦欲依照 IP 位址發送封包時,首先到快取記憶體上的 ARP 索引表查詢是否有相對應之硬體位址,如果沒有再發送 ARP Request 到網路上詢問。詢問後將相關的 IP 和硬體位址登錄在索引表上,下次可以再使用。相對應的,網路上任何一部電腦接收到 ARP Request 封包時,不管該封包是否詢問自己,在 ARP 封包內都有紀錄傳送者的 IP 位址和硬體位址(MAC),便將其 IP 位址和硬體位址紀錄在本身的索引表內。

又在 TCP/IP 網路上的任何主機啟動時,都會公佈(announceARP 訊息告訴網路上所有工作站自己的 IP 和硬體位址。快取記憶體上的索引表必須隨時更新,否則所紀錄的資料也許會失去時效性(也許是主機更換 IP 位址),這必須由系統維護人員去設定自動更替時間。

13-4-2 RARP 協定

        一般主機電腦上的 IP 位址設定有靜態設定和動態設定兩種方法。靜態設定是於主機電腦上直接用人工設定 IP 位址,設定後如沒有再用人工修改,則 IP 位址永遠不變;動態設定並未設定 IP 位址,每當主機啟動時,再由網路上某部伺服器給予 IP 位址,因此,每次啟動時得到的 IP 位址不一定相同。如果主機電腦採用動態指定 IP 位址模式,啟動就必須利用『反向位址解析協定』(Reverse Address Resolution Protocol, RARP),向網路上的伺服器(如 DHCP Server)要求給于一個 IP 位址。

RARP 的動作是,主機電腦用自己硬體位址(MAC 位址)向伺服器詢問自己的 IP 位址,如圖 13-13 所示。圖中假設各主機皆以動態設定 IP 位址,主機 A 為『動態主機組態伺服器』(Dynamic Host Configuration Protocol, DHCP),負責分配 IP 位址給網路上主機。電腦主機啟動時便要求 DHCP 伺服器分配一個 IP 位址,電腦主機關機時便釋放該 IP 位址,下次開機時再要求重新分配。例如主機 C 啟動時立即在網路廣播(或傳送給 DHCP 伺服器) RARP Request(要求 IP 位址),主機 A 收到 RARP Request 並驗證其 Ethernet 位址是否可以給予IP 位址,再回應 RARP Reply 給主機 C,其中攜帶對方的 IP MAC 位址。RARP 封包格式和 ARP 一樣,不再另述。

13-13 RARP 運作方式

翻轉工作室:粘添壽

 

電腦網路與連結技術:

 

 

翻轉電子書系列: