1. 程式人生 > >IP地址與MAC地址的區別

IP地址與MAC地址的區別

相信很多人都對這兩個地址有所迷惑,為啥要有兩個地址呢?一個行不行?下面是些個人的想法,歡迎討論。

IP地址和MAC地址

本科的時候老師講到這兩個地址的時候說過這樣一句話:IP地址就像家裡的門牌號,MAC地址就像你的身份證號,只知道MAC地址是無法知道你在什麼位置的,除非是有個超大功率的擴音器,世界上所有人都能聽到:*你在哪?然後你再用著一個擴音器喊:我在這。然後通訊才能這樣進行。而IP地址呢?不管你人去了哪?總會有個郵件地址,比如北京市海淀區閔莊路87號一樣,很容易就會定位到你的位置。
這樣理解起來很清楚,但是我們還是要深入的對這兩個地址探討一下。

MAC地址是什麼

首先,說明一下MAC地址是啥?MAC地址是MAC(Media Access Control)協議所使用的地址,最早是在乙太網中使用的,後來在IEEE中定義的802協議中被廣泛使用,但也不是全部。因此,MAC地址只在802協議的網路中才有,MAC協議是資料鏈路層的子層,並不能說MAC地址就是資料鏈路層地址

。什麼是802協議,就是IEEE定義的一些協議,常見的由802.3(乙太網)\802.11(無線區域網)等等。那難道還有其他型別的嗎?當然!比如移動蜂窩網路、ATM網路、IBM開發的SAN網路等等,這些都是沒有MAC地址的。

所以,這也就解釋了為啥有了IP,IP是網路層的地址,而網路層的出現目的之一就是遮蔽底層硬體的差異化,也就是在LAN上,到底用什麼樣的方式來找到目標主機併發送訊息,IP是不管的。

所以,這個問題也變得容易回答了,可不可以沒有MAC地址,答案是可以的。只要你能有種方式可以準確無誤的將資料傳送給目標主機即可。由於現在LAN中乙太網佔據了統治地位,所以MAC地址也相應的水漲船高了。

IP地址是什麼

上面提到了IP地址的一個用途是遮蔽底層的差異化,實際上卻遠不止如此,IP地址包含兩部分,一部分是網路號,一部分是主機號。對於中間路由器而言,並不關心它的主機號,而只關注網路號,在路由表中有如下對應<網路號,輸出埠>(路由表由路由演算法生成),然後轉發。路由通過一些演算法,如距離向量協議和鏈路狀態協議來更新路由表,這些在協議通過在路由器之間交換資訊,使得路由器對整個網路拓撲有個清楚的認識。IP協議還有很多其他方面,比如擁塞控制(當路由器檢測到擁塞時,可以傳送源端抑制的ICMP分組,請求降低傳送速度,不過現在更多在傳輸層做)、分段等方面。