沒(méi)有任何聯(lián)系。 MAC是Media Access Control Address的縮寫,,是大部分IEEE 802網(wǎng)絡(luò)設(shè)備使用的物理地址格式,。這個(gè)地址用于物理上直接可達(dá)的網(wǎng)絡(luò)內(nèi)的網(wǎng)絡(luò)設(shè)備之間的通訊,在ISO-OSI七層模型中位于第二層數(shù)據(jù)鏈路層,。 在使用CDMA-CD協(xié)議的以太網(wǎng)中,,打個(gè)比方的話,這個(gè)地址的作用是,,網(wǎng)卡A大喊網(wǎng)卡B的名字(MAC地址),,其它網(wǎng)卡要假裝沒(méi)聽(tīng)到。 注意這個(gè)“假裝沒(méi)聽(tīng)到”:只要你打開(kāi)了網(wǎng)卡的混雜模式(Promiscuous Mode),,你就可以收到局域網(wǎng)上傳輸?shù)乃袛?shù)據(jù)包了,。 處于這種狀態(tài)的計(jì)算機(jī)被稱為“sniffer”,這是一種偵測(cè)局域網(wǎng)故障或者盜取內(nèi)網(wǎng)數(shù)據(jù)的常用技術(shù),,因此很多公司嚴(yán)厲禁止員工把自己的網(wǎng)卡設(shè)置到混雜模式,。 總之,MAC用于連接在同一個(gè)局域網(wǎng)的網(wǎng)卡間的直接通訊,;通訊模式是用帶著目標(biāo)MAC地址的數(shù)據(jù)報(bào)文在網(wǎng)絡(luò)中廣播,,只有地址正確的那個(gè)網(wǎng)卡才會(huì)接收這個(gè)報(bào)文,其它網(wǎng)卡不予理睬(設(shè)置為混雜模式除外),。 IP地址是網(wǎng)絡(luò)層地址,,它屬于ISO-OSI七層協(xié)議的第三層網(wǎng)絡(luò)層。 IP地址的設(shè)計(jì)重點(diǎn)在于路由,,也就是要考慮如何規(guī)劃路徑才能把報(bào)文投遞給目標(biāo)設(shè)備,。 打個(gè)比方的話,IP地址類似于郵政編碼,,隱含了國(guó)家,、地區(qū)、城市,、街道等信息,;攜帶IP地址信息的報(bào)文到了路由器之后,路由器要完成分揀工作,、按照南來(lái)北往東投西遞等不同方向給IP不同的報(bào)文分類,、投遞到正確的端口——比如,,這一批郵件是發(fā)往X省的,都給997號(hào)班車,;另一批郵件是發(fā)往Y省的,,都給996號(hào)班車,等等,。 等到了X省,,那里的分揀中心(路由器)要進(jìn)一步分揀,這一批到Y(jié)P地區(qū),,走8235號(hào)班車,;那一批到Y(jié)Y地區(qū),走8233號(hào)班車,,依此類推,。 最終,等郵件到了你所在小區(qū)(局域網(wǎng)),,IP地址就無(wú)能為力了,。它只管分揀(路由)這一層,不管數(shù)據(jù)鏈路層,。 這時(shí)候怎么辦呢,? 轉(zhuǎn)交給MAC地址,讓它投遞給正確的網(wǎng)卡,。 因此,,IP協(xié)議需要數(shù)據(jù)鏈路層協(xié)議承載才能工作,單靠它是完成不了消息投遞工作的,。 但是,,互聯(lián)網(wǎng)上的IP報(bào)文并不攜帶MAC地址啊,?它是投遞到小區(qū)了,,怎么找到正確的網(wǎng)卡呢? 這時(shí)就需要ARP協(xié)議來(lái)幫忙了,。 ARP協(xié)議在你家/你公司的出口路由器里面維護(hù)一張ARP表,,記錄了本地局域網(wǎng)里面每一塊網(wǎng)卡的MAC地址和IP地址的對(duì)應(yīng)關(guān)系,;互聯(lián)網(wǎng)過(guò)來(lái)個(gè)報(bào)文,,一看IP地址是202.11.123.13,ARP表一查,,MAC地址FE.AC.12.34.56.78,,于是在外面包裝一層,打包成以太網(wǎng)數(shù)據(jù),,局域網(wǎng)一丟,,完事,。 注意,這里是在IP報(bào)文外面附加個(gè)以太網(wǎng)報(bào)頭,,并不影響IP報(bào)文本身,。 換句話說(shuō),IP并不在乎自己的承載協(xié)議是不是以太網(wǎng)協(xié)議,、也不在乎物理地址是不是MAC地址——所以才說(shuō)IP地址和MAC地址毫無(wú)關(guān)系——你完全可以用另外一套地址協(xié)議取代以太網(wǎng)/MAC地址,。只要實(shí)現(xiàn)個(gè)自己特有的ARP體系即可。 舉例來(lái)說(shuō),,你自己玩無(wú)線電,,自己定了個(gè)地址協(xié)議,用甲,、乙,、丙、丁標(biāo)記不同的接收機(jī)(或者用載波頻率90MHZ,、94MHZ,、96MHZ、104MHZ區(qū)分也沒(méi)問(wèn)題),;那么只要你做一個(gè)甲,、乙、丙,、丁和IP的對(duì)應(yīng)表,、正確實(shí)現(xiàn)了相關(guān)地址的翻譯工作,這些接收機(jī)就可以通過(guò)互聯(lián)網(wǎng)訪問(wèn),,對(duì)IP報(bào)文沒(méi)有絲毫影響,。 最后,額外提一提NAT,。 我們用的PC,、手機(jī)往往有一個(gè)局域網(wǎng)ip地址,一般是192.168.0.*,;這個(gè)地址并不能用于互聯(lián)網(wǎng)訪問(wèn),。它和真實(shí)的互聯(lián)網(wǎng)地址之間可以通過(guò)NAT協(xié)議相互轉(zhuǎn)換。 比如,,路由器的互聯(lián)網(wǎng)地址是202.10.11.123,,你的局域網(wǎng)ip地址是192.168.1.16;當(dāng)你訪問(wèn)互聯(lián)網(wǎng)時(shí),,路由器會(huì)把你的IP地址替換成202.10.11.123然后才發(fā)送到互聯(lián)網(wǎng),;互聯(lián)網(wǎng)服務(wù)器回應(yīng)你時(shí),也會(huì)使用202.10.11.123這個(gè)地址(也就是你的路由器的互聯(lián)網(wǎng)地址),。 然后,,你的路由器會(huì)維護(hù)一個(gè)對(duì)外通信端口和內(nèi)部ip的對(duì)應(yīng)表,。比如,它把你的報(bào)文通過(guò)端口14566和互聯(lián)網(wǎng)服務(wù)器通訊,;那么當(dāng)端口14566端口收到報(bào)文時(shí),,它就會(huì)把ip地址202.10.11.123替換成你的局域網(wǎng)ip 192.168.1.16,然后再查ARP表,、打包成以太網(wǎng)報(bào)文并最終完成通信,。 這個(gè)過(guò)程,就是所謂的NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換),。 如果你所在的公司很大的話,,路由器可能僅僅完成局域網(wǎng)IP的翻譯工作,報(bào)文仍然需要借助路由協(xié)議投遞到你所在部門的子網(wǎng),,然后再打包成以太網(wǎng)報(bào)文,,這才能投遞給你。 注意,,在公司很大這個(gè)場(chǎng)景下,,不同部門的子網(wǎng)可能仍然是通過(guò)以太網(wǎng)協(xié)議接入的;因此,,“報(bào)文投遞到正確子網(wǎng)”這一步也要打包成以太網(wǎng)報(bào)文,、投遞給子網(wǎng)網(wǎng)關(guān)(此時(shí)用的MAC地址是子網(wǎng)網(wǎng)關(guān)的MAC);然后子網(wǎng)網(wǎng)關(guān)從中解出IP報(bào)文,、把以太網(wǎng)包頭丟棄,,之后再次用你的MAC打包成以太網(wǎng)包,這才能投遞給你,。 其中,,公司主網(wǎng)關(guān)使用部門子網(wǎng)網(wǎng)關(guān)MAC打包、投遞這一步,,對(duì)你來(lái)說(shuō)是不可見(jiàn)的——甚至于,,這一步可能在互聯(lián)網(wǎng)上就要執(zhí)行十多次(沒(méi)錯(cuò),你用trace router追蹤時(shí),,看到的每一跳可能都對(duì)應(yīng)著一個(gè)重新打包-解包過(guò)程),。 由此也可見(jiàn),IP地址和MAC地址其實(shí)是毫無(wú)瓜葛的,。兩者僅僅是在傳輸過(guò)程中偶遇,、旋即分開(kāi)而已——那僅僅是報(bào)文投遞過(guò)程中的一個(gè)實(shí)現(xiàn)細(xì)節(jié)罷了。 網(wǎng)絡(luò)上各種設(shè)備既是分散在不同位置,、不同崗位上的,、職責(zé)各不相同的一堆個(gè)體,又是彼此聯(lián)系,、彼此合作的一個(gè)整體,。 因此,學(xué)網(wǎng)絡(luò),,一定要搞明白不同階段,、不同位置報(bào)文的投遞原理以及地址轉(zhuǎn)換/翻譯的具體機(jī)制;同時(shí)還要搞明白每個(gè)設(shè)備的職責(zé)以及在報(bào)文投遞鏈上的作用和位置,;千萬(wàn)不要膠柱鼓瑟,,死板的記憶一堆散亂的名詞——那只會(huì)越學(xué)越暈。 |
|