题目
既然有了 MAC 地址,为啥还需要 IP 地址?
答案
先有 MAC 地址,再有 IP 地址的。

> 路由器是用来转发的(它拥有不同子网的信息,路由器的每一个端口/网卡都拥有一个 MAC 地址和一个 IP 地址,路由器的每一个端口都连着一个局域网或者另一个路由器)
**假设只有 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 协议)本身没有传输数据的功能,数据的实际传输是委托给数据链路层(以太网中的交换机)来实现的,网络层起指导作用,指导数据在数据链路层到底该怎么走**
