參考兩篇文章
http://blog.csdn.net/zdavb/article/details/50703898
https://www.zhihu.com/question/49335649
IP地址和MAC地址
本科的時候老師講到這兩個地址的時候說過這樣一句話:IP地址就像家里的門牌號邀窃,MAC地址就像你的身份證號荸哟,只知道MAC地址是無法知道你在什么位置的,除非是有個超大功率的擴音器瞬捕,世界上所有人都能聽到:***你在哪鞍历?然后你再用著一個擴音器喊:我在這。然后通信才能這樣進行肪虎。而IP地址呢劣砍?不管你人去了哪?總會有個郵件地址扇救,比如北京市海淀區(qū)閔莊路87號一樣刑枝,很容易就會定位到你的位置。
這樣理解起來很清楚迅腔,但是我們還是要深入的對這兩個地址探討一下仅讽。
MAC地址是什么
首先,說明一下MAC地址是啥钾挟?MAC地址是MAC(Media Access Control)協(xié)議所使用的地址洁灵,最早是在以太網(wǎng)中使用的,后來在IEEE中定義的802協(xié)議中被廣泛使用掺出,但也不是全部徽千。因此,MAC地址只在802協(xié)議的網(wǎng)絡(luò)中才有汤锨,MAC協(xié)議是數(shù)據(jù)鏈路層的子層双抽,并不能說MAC地址就是數(shù)據(jù)鏈路層地址。什么是802協(xié)議闲礼,就是IEEE定義的一些協(xié)議牍汹,常見的由802.3(以太網(wǎng))\802.11(無線局域網(wǎng))等等铐维。那難道還有其他類型的嗎?當(dāng)然慎菲!比如移動蜂窩網(wǎng)絡(luò)嫁蛇、ATM網(wǎng)絡(luò)、IBM開發(fā)的SAN網(wǎng)絡(luò)等等露该,這些都是沒有MAC地址的睬棚。
所以,這也就解釋了為啥有了IP解幼,IP是網(wǎng)絡(luò)層的地址抑党,而網(wǎng)絡(luò)層的出現(xiàn)目的之一就是屏蔽底層硬件的差異化,也就是在LAN上撵摆,到底用什么樣的方式來找到目標(biāo)主機并發(fā)送消息底靠,IP是不管的。
所以特铝,這個問題也變得容易回答了苛骨,可不可以沒有MAC地址,答案是可以的苟呐。只要你能有種方式可以準(zhǔn)確無誤的將數(shù)據(jù)傳送給目標(biāo)主機即可痒芝。由于現(xiàn)在LAN中以太網(wǎng)占據(jù)了統(tǒng)治地位,所以MAC地址也相應(yīng)的水漲船高了牵素。
IP地址是什么
上面提到了IP地址的一個用途是屏蔽底層的差異化严衬,實際上卻遠不止如此,IP地址包含兩部分笆呆,一部分是網(wǎng)絡(luò)號请琳,一部分是主機號。對于中間路由器而言赠幕,并不關(guān)心它的主機號俄精,而只關(guān)注網(wǎng)絡(luò)號,在路由表中有如下對應(yīng)<網(wǎng)絡(luò)號榕堰,輸出端口>(路由表由路由算法生成)竖慧,然后轉(zhuǎn)發(fā)。路由通過一些算法逆屡,如距離矢量協(xié)議和鏈路狀態(tài)協(xié)議來更新路由表圾旨,這些在協(xié)議通過在路由器之間交換信息,使得路由器對整個網(wǎng)絡(luò)拓撲有個清楚的認識魏蔗。IP協(xié)議還有很多其他方面砍的,比如擁塞控制(當(dāng)路由器檢測到擁塞時,可以發(fā)送源端抑制的ICMP分組莺治,請求降低發(fā)送速度廓鞠,不過現(xiàn)在更多在傳輸層做)帚稠、分段等方面。
知乎的回答中有
二層設(shè)備基于MAC地址轉(zhuǎn)發(fā)數(shù)據(jù)幀床佳,三層基于IP地址轉(zhuǎn)發(fā)報文”MAC地址是燒錄在網(wǎng)卡或者接口上的物理地址滋早,具有二層意義和全球唯一性,一般不能被改變夕土。IP地址是網(wǎng)絡(luò)中的主機或者三層接口在網(wǎng)絡(luò)中的邏輯地址馆衔,在同一個網(wǎng)絡(luò)內(nèi)具有唯一性瘟判。
每個可以連接到以太網(wǎng)(Ethernet)的設(shè)備必須有一個 MAC 地址
下面這個回答很棒
題主已經(jīng)知道了『每個電腦』都有一個 MAC 地址(Media Access Control address)怨绣,準(zhǔn)確說應(yīng)該是『每個可以連接到以太網(wǎng)(Ethernet)的設(shè)備必須有一個 MAC 地址』,這個地址就是為了當(dāng)別的設(shè)備向這個設(shè)備發(fā)數(shù)據(jù)包的時候可以指定地址(換言之拷获,快遞員要想給某個客戶送包裹篮撑,總要有個地址對吧)。
理解了 MAC 地址匆瓜,那我們看看可以怎么用這個 MAC 地址赢笨。我們可以把兩臺電腦連起來,然后這兩臺電腦就可以直接使用數(shù)據(jù)鏈路層(OSI 第二層)的 PPP 協(xié)議(Point to Point Protocol) 收發(fā)數(shù)據(jù)了驮吱,這個時候每個數(shù)據(jù)包都會直接使用這兩臺電腦的 MAC 地址(源地址和目標(biāo)地址)茧妒。在這種場景下我們沒用到 IP 地址就實現(xiàn)了設(shè)備之間的數(shù)據(jù)交換。
IP 可以用于更長距離的設(shè)備之間的互聯(lián)左冬。假設(shè)你在中國有一臺電腦 A桐筏,想訪問美國的一臺電腦 B,你不可能直接從中國拉一條網(wǎng)線連接到美國拇砰,理論上說得通梅忌,但是不具可行性。所以在中國和美國之間需要眾多的中轉(zhuǎn)路由器除破,電腦 A 每發(fā)一個數(shù)據(jù)包牧氮,都要經(jīng)過這些路由器,才能到達電腦 B瑰枫,在這種情況下踱葛,你不可能直接使用 PPP 協(xié)議,因為兩臺電腦不是直連的光坝。
現(xiàn)在回到我們生活中最常見用一臺電腦(電腦 A)連接一臺家用路由器剖毯,大多數(shù)人家里都有一個或者多個無線路由器,當(dāng)你連接上去之后教馆,電腦 A 的網(wǎng)絡(luò)默認設(shè)置里面會有一個已經(jīng)幫你設(shè)置好的網(wǎng)關(guān)地址逊谋,Windows 下叫 Gateway(網(wǎng)關(guān)),Mac 下叫 Router(路由器)土铺,在這里它們只是同一個東西的不同叫法胶滋,通常會是類似 192.168.1.1 這樣一個地址板鬓,這就是路由器的 IP 地址。現(xiàn)在電腦 A 上發(fā)送出去的每個數(shù)據(jù)包究恤,首先要經(jīng)過這個路由器俭令,但是它只有路由器的 IP 地址,沒有路由器的 MAC 地址部宿,這樣是發(fā)不了數(shù)據(jù)的(數(shù)據(jù)鏈路層的數(shù)據(jù)包協(xié)議中要求定義目標(biāo) MAC 地址抄腔,這樣當(dāng)路由器收到一個數(shù)據(jù)包的時候,看到數(shù)據(jù)包里面指定的目標(biāo)地址跟自己的 MAC 地址一致理张,才會進行下一步處理赫蛇,否則,數(shù)據(jù)包會被丟棄)雾叭,所以電腦 A 需要找出路由器的 MAC 地址悟耘,這時候它使用 ARP 協(xié)議(Address Resolution Protocol)向它的子網(wǎng)(還記得那個子網(wǎng)掩碼的東西嗎? 255.255.255.0 )發(fā)送一個 ARP 廣播(Broadcast),這個廣播實際上是在問一個問題:請問誰的 IP 地址是 192.168.1.1织狐?麻煩你告訴我你的 MAC 地址暂幼。這個時候路由器收到這個 ARP 廣播,就會直接給電腦 A 發(fā)送一個 ARP 響應(yīng)移迫,在里面包含自己的 MAC 地址旺嬉。至此,電腦 A 知道了路由器的 MAC 地址厨埋,就可以直接向路由器發(fā)送它的數(shù)據(jù)包了邪媳。這個時候數(shù)據(jù)包里面包含了電腦 A 的 MAC 地址、本地路由器的 MAC 地址揽咕、電腦 A 的 IP 地址和電腦 B 的 IP 地址悲酷。接下來的你的路由器會把數(shù)據(jù)包傳給你的 ISP,方式跟上面說的大同小異亲善,而 ISP 與 ISP 之間則需要根據(jù)數(shù)據(jù)包中指定的目標(biāo) IP 和路由器存的路由表(Routing Table)來確定把數(shù)據(jù)包傳給接下來的哪個路由器设易,直到數(shù)據(jù)包被傳到跟電腦 B。
上面說了 MAC 和 IP 各自的使用場景蛹头,但是并沒有說到他們的區(qū)別顿肺。他們的核心區(qū)別是在一個子網(wǎng)絡(luò)里面(比如一個公司可以有自己的內(nèi)部網(wǎng)絡(luò)),MAC 地址可以在這個子網(wǎng)絡(luò)里面定位到不同的網(wǎng)絡(luò)設(shè)備渣蜗,IP 可以在整個 internet 中定位到不同的子網(wǎng)絡(luò)屠尊。所以 MAC 是『設(shè)備 <-> 設(shè)備』,而 IP 是『網(wǎng)絡(luò) <-> 網(wǎng)絡(luò)』耕拷。
到這里你可能還有疑問讼昆,假設(shè)沒有 IP,只用 MAC 就不能實現(xiàn)這種超遠程的互聯(lián)嗎骚烧?答案是可以的浸赫,但那樣會失去很多的靈活性闰围,因為 MAC 是全局唯一的,不存在『MAC 子網(wǎng)』這樣的東西既峡,意味著只使用 MAC 沒辦法創(chuàng)建子網(wǎng)絡(luò)羡榴,全人類只有唯一一個大網(wǎng)絡(luò)。舉個不太恰當(dāng)?shù)睦釉烁遥悬c像域名之于 IP 地址(我指的不是可讀性問題校仑,而是這種 indirection 帶來的創(chuàng)造靈活性的可能)。