每個以太網裝置在出廠時都有一個唯一的MAC位址,為什麼還需要為每台主機再配置設定一個IP位址?或者說每台主機都配置設定唯一的IP位址,為什麼還要在網絡裝置(如網卡,集線器,路由器等)生産時内嵌一個唯一的MAC位址呢?
主要原因有以下幾點:
(1)IP位址的配置設定是根據網絡的拓樸結構,而不是根據誰制造了網絡設定。若将高效的路由選擇方案建立在裝置制造商的基礎上而不是網絡所處的拓撲位置基礎上,這種方案是不可行的。
(2)當存在一個附加層的位址尋址時,裝置更易于移動和維修。例如,如果一個以太網卡壞了,可以被更換,而無須取得一個新的IP位址。如果一個IP主機從一個網絡移到另一個網絡,可以給它一個新的IP位址,而無須換一個新的網卡。
(3)友善資料傳輸。無論是區域網路,還是廣域網中的計算機之間的通信,最終都表現為将資料包從某種形式的鍊路上的初始節點出發,從一個節點傳遞到另一個節點,最終傳送到目的節點。資料包在這些節點之間的移動都是由ARP協定負責将IP位址映射到MAC位址上來完成的。
IP位址和MAC位址結合起來傳送資料包的例子:
假設網絡上要将一個資料包(名為PAC)由北京的一台主機(名稱為A,IP位址為IP_A,MAC位址為MAC_A)發送到華盛頓的一台主機(名稱為B,IP位址為IP_B,MAC位址為MAC_B)。這兩台主機之間不可能是直接連接配接起來的,因而資料包在傳遞時必然要經過許多中間節點(如路由器,伺服器等等),我們假定在傳輸過程中要經過C1、C2、C3(其MAC位址分别為M1,M2,M3)三個節點。
A在将PAC發出之前,先發送一個ARP請求,找到其要到達IP_B所必須經曆的第一個中間節點C1的MAC位址M1,然後在其資料包中封裝(Encapsulation)這些位址:IP_A、IP_B,MAC_A和M1。
當PAC傳到C1後,再由ARP根據其目的IP位址IP_B,找到其要經曆的第二個中間節點C2的MAC位址M2,然後再将帶有M2的資料包傳送到C2。
如此類推,直到最後找到帶有IP位址為IP_B的B主機的位址MAC_B,最終傳送給主機B。
在傳輸過程中,IP_A、IP_B和MAC_A不變,而中間節點的MAC位址通過ARP在不斷改變(M1,M2,M3),直至目的位址MAC_B。