IPv6会取代MAC地址吗?

来自:车小胖谈网络 (微信号:chexiaopangnetwork),作者:车小胖谈网络

这个问题尽管有点荒唐,但是很有讨论的价值。

 

无论是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+  产品序列号的组合予以区别,完美的解决方案!

 

但是想过没有,网卡脱离IPv4IPv6,想直接给应用层提供服务,没有MAC地址了,如何识别自己呢?

 

读者说了,网卡不是有厂家代号(OUI+  产品序列号的吗?

 

对,非常聪明的答案!

 

厂家代号(OUI+  产品序列号

 

不就是MAC地址吗?

 

看,兜了一圈,咱们又回到了原地,看来网卡有一个全球唯一的MAC地址是很有必要的。

 

 

更深层次的探讨

在计算机网络的世界里,有很多二层协议,诸如以太网、ATM网、帧中继网、FDDI网、令牌环网。但是这些协议设计之初的时候,协议设计者是独立设计出来的,其设计初衷是给应用程序直接提供服务的,所以需要提供全球唯一。

 

以"以太网"为例,需要一个全球唯一的MAC地址来识别自己。由于以太网简单易用,所以才流行起来。后来TCP/IP打败了其竞争对手,和以太网一拍即合,双方为了迎合对方,才能使得自己变得更加强大。

 

这种迎合表现在使用ARP协议提供MAC地址与IP地址的映射,但是各自还是有自己的独立自主的一面,那就是网卡可以使用MAC地址来直接给应用程序提供服务,而并需要IP协议的参与!

 

综上所述,IPv6永远无法代替MAC地址!

推荐↓↓↓
程序员的那点事
上一篇:互联网灾难回顾(一) 下一篇:网段起始IP,终点IP快速算法