IPv6、MAC地址的關係,看完這一篇全明白了

IPv6會取代MAC地址嗎?

這個問題儘管有點荒唐,但是很有討論的價值。

無論是IPv4還是IPv6地址,在互聯網上都是全球唯一,可以僅僅依靠IP地址就可以唯一識別主機,MAC地址還有啥用?

沒錯,非常有邏輯性!僅僅依靠IP地址能完美解決通信的三種模式嗎?

一點問題沒有!

單播

當前的網絡是怎麼工作的?

數據包的二層嵌入了MAC地址,數據包到達目的主機,目的主機憑藉MAC地址是否和自己的相同,決定要不要接收。

沒有MAC地址如何工作?

數據包的二層沒有了MAC地址,數據包到達目的主機,目的主機憑藉IPv4/IPv6地址是否和自己的相同,決定要不要接收。

IPv4/IPv6地址,網卡如何知道?

需要TCP/IP協議棧向網卡註冊自己IPv4/IPv6地址。

組播

當前的網絡是怎麼工作的?

IPv4/IPv6主機希望接收哪個組播數據了,需要向網卡訂閱(關注)該組播IP的數據包。網卡需要根據訂閱的IPv4/IPv6組播地址,換算成組播MAC地址。當組播數據到達時,依據本地訂閱的組播MAC地址,與組播包裡的目的MAC做比較。如果相同則接受,如果不同則拒絕。

沒有MAC地址如何工作?

數據包的二層沒有了MAC地址,數據包到達目的主機,目的主機網卡憑藉IPv4/IPv6地址和用戶訂閱的IPv4/IPv6組播地址是否相同,決定是接收還是拒絕。

廣播

廣播是一種特殊的組播,是組播的一個子集,接收/拒絕的行為方式和組播一致。

讀者還會有很多疑問,網卡沒有了MAC地址,如何動態獲取IPv4/IPv6地址呢?

完全可以借用網卡的序列號代替MAC地址,畢竟一個廠家網卡的序列號是唯一的。

如果不同廠家使用了相同的序列號,那麼每一個廠家分別使用一個廠家代號(OUI),然後使用廠家代號(OUI)+ 產品序列號的組合予以區別,完美的解決方案!

但是想過沒有,網卡脫離IPv4,IPv6,想直接給應用層提供服務,沒有MAC地址了,如何識別自己呢?

讀者說了,網卡不是有廠家代號(OUI)+ 產品序列號

的嗎?

對,非常聰明的答案!

廠家代號(OUI)+ 產品序列號

不就是MAC地址嗎?

看,兜了一圈,咱們又回到了原地,看來網卡有一個全球唯一的MAC地址是很有必要的。


IPv6、MAC地址的關係,看完這一篇全明白了


更深層次的探討

在計算機網絡的世界裡,有很多二層協議,諸如以太網、ATM網、幀中繼網、FDDI網、令牌環網。但是這些協議設計之初的時候,協議設計者是獨立設計出來的,其設計初衷是給應用程序直接提供服務的,所以需要提供全球唯一。

以"以太網"為例,需要一個全球唯一的MAC地址來識別自己。由於以太網簡單易用,所以才流行起來。後來TCP/IP打敗了其競爭對手,和以太網一拍即合,雙方為了迎合對方,才能使得自己變得更加強大。

這種迎合表現在使用ARP協議提供MAC地址與IP地址的映射,但是各自還是有自己的獨立自主的一面,那就是網卡可以使用MAC地址來直接給應用程序提供服務,而並需要IP協議的參與!

綜上所述,

IPv6永遠無法代替MAC地址!


分享到:


相關文章: