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 所示。首先主機 A(163.15.2.1)的網際層(Internet Layer)發送出 ARP Request(查問 163.15.2.4)訊息給網路存取層(Network Access Layer),網路存取層之 MAC 層(Ethernet 層)再將 ARP Request 訊息包裝在 Ethernet 訊框內,並廣播在網路上。網路上(區域網路內)所有主機接收到廣播訊框再拆解訊框。主機 C(163.15.2.4)的網際層收到 ARP Request 後,並由其中瞭解是詢問自己,便回應 ARP Reply(包含 Ethernet 位址) 給網路存取層,網路存取層再發送訊框給主機 A(163.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:表示此封包的工作模式:
(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 網路上的任何主機啟動時,都會公佈(announce)ARP 訊息告訴網路上所有工作站自己的 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 運作方式 |
翻轉工作室:粘添壽
電腦網路與連結技術:
翻轉電子書系列:
|