今天有个实习生问了这个问题,估计很多人都有这个疑问,但没见哪本书上解释清楚,都只是描述IP是什么,MAC是什么。希望这篇文章能帮您解惑。
假设只有 MAC 地址,对于 A 来说,如何做到,把发送给 C 和 D 的消息,统统先发送给路由器呢?
不难想到这样一个点子,假如电脑 C 和 D 的 MAC 地址拥有共同的前缀,比如分别是
C 的 MAC 地址:FFFF-FFFF-CCCC
D 的 MAC 地址:FFFF-FFFF-DDDD
那我们就可以说,将目标 MAC 地址为 FFFF-FFFF-?开头的,统统先发送给路由器。
这就需要要求厂商在生产网络设备烧录 MAC 地址时,提前按照规划好的子网结构来定 MAC 地址,并且日后这个网络的结构都不能轻易改变。这显然是不现实的。
于是就发明了一个新的地址,IP 地址!
现在每一个网卡,同时有自己的 MAC 地址,又有自己的 IP 地址,只不过 IP 地址是软件层面上的,可以随时修改,MAC 地址一般是无法修改的。
这样一个可以随时修改的 IP 地址,就可以根据规划的网络拓扑结构,来调整了。IP 地址是和地域相关的,对于位于同一个子网上的设备,我们给他们分配的 IP 地址前缀都是一样的
发给路由器之后,对于子网内部的查询,就可以根据 MAC 地址来了
所以总结说,IP 地址用于动态标识设备,便于动态组网和分发,在大网络中效率更高;而 MAC 地址用于静态标识设备,在无需分发的小网络内效率更高
另外,这种设计也符合 TCP/IP 协议体系的这种分层理念,网络层(IP 协议)本身没有传输数据的功能,数据的实际传输是委托给数据链路层(以太网中的交换机)来实现的,网络层起指导作用,指导数据在数据链路层到底该怎么走 |