以太網(wǎng)交換機是數(shù)據(jù)鏈路層的機器,以太網(wǎng)使用物理地址(MAC地址),48位,6字節(jié)。其工作原理為:當有一個幀到來時,他會檢查其目的地址并對應自己的MAC地址表,如果存在目的地址,則轉(zhuǎn)發(fā),如果不存在則泛洪(廣播),廣播后如果沒有主機的MAC地址與幀的目的MAC地址相同,則丟棄,若有主機相同,則會將主機的MAC自動添加到其MAC地址表中。
每個以太網(wǎng)設(shè)備在出廠時都有一個唯一的MAC地址,為什么還需要為每臺主機再分配一個IP地址?或者說每臺主機都分配唯一的IP地址,為什么還要在網(wǎng)絡設(shè)備(如網(wǎng)卡,集線器,路由器等)生產(chǎn)時內(nèi)嵌一個唯一的MAC地址呢?
主要原因有以下幾點:
(1)IP地址的分配是根據(jù)網(wǎng)絡的拓樸結(jié)構(gòu),而不是根據(jù)誰制造了網(wǎng)絡設(shè)置。若將高效的路由選擇方案建立在設(shè)備制造商的基礎(chǔ)上而不是網(wǎng)絡所處的拓撲位置基礎(chǔ)上,這種方案是不可行的。
(2)當存在一個附加層的地址尋址時,設(shè)備更易于移動和維修。例如,如果一個以太網(wǎng)卡壞了,可以被更換,而無須取得一個新的IP地址。如果一個IP主機從一個網(wǎng)絡移到另一個網(wǎng)絡,可以給它一個新的IP地址,而無須換一個新的網(wǎng)卡。
(3)方便數(shù)據(jù)傳輸。無論是局域網(wǎng),還是廣域網(wǎng)中的計算機之間的通信,最終都表現(xiàn)為將數(shù)據(jù)包從某種形式的鏈路上的初始節(jié)點出發(fā),從一個節(jié)點傳遞到另一個節(jié)點,最終傳送到目的節(jié)點。數(shù)據(jù)包在這些節(jié)點之間的移動都是由ARP協(xié)議負責將IP地址映射到MAC地址上來完成的。
假設(shè)網(wǎng)絡上要將一個數(shù)據(jù)包(名為PAC)由北京的一臺主機(名稱為A,IP地址為IP_A,MAC地址為MAC_A)發(fā)送到華盛頓的一臺主機(名稱為B,IP地址為IP_B,MAC地址為MAC_B)。這兩臺主機之間不可能是直接連接起來的,因而數(shù)據(jù)包在傳遞時必然要經(jīng)過許多中間節(jié)點(如路由器,服務器等等),我們假定在傳輸過程中要經(jīng)過C1、C2、C3(其MAC地址分別為M1,M2,M3)三個節(jié)點。A在將PAC發(fā)出之前,先發(fā)送一個ARP請求,找到其要到達IP_B所必須經(jīng)歷的第一個中間節(jié)點C1的MAC地址M1,然后在其數(shù)據(jù)包中封裝(Encapsulation)這些地址:IP_A、IP_B,MAC_A和M1。當PAC傳到C1后,再由ARP根據(jù)其目的IP地址IP_B,找到其要經(jīng)歷的第二個中間節(jié)點C2的MAC地址M2,然后再將帶有M2的數(shù)據(jù)包傳送到C2。如此類推,直到最后找到帶有IP地址為IP_B的B主機的地址MAC_B,最終傳送給主機B。在傳輸過程中,IP_A、IP_B和MAC_A不變,而中間節(jié)點的MAC地址通過ARP在不斷改變(M1,M2,M3),直至目的地址MAC_B。