为什么ip地址和mac地址共存 ?
为了在抽象的网络层面标识各个主机,于是提出了ip地址
问:既然有了能标识网络也能标识主机的ip地址,为什么还需要mac地址?或者说只靠ip地址进行互联网通信行不行?
答:如果没有mac地址,而是使用网络层协议进行通信,理论上来说是可以的,但是不好,原因如下
以太网诞生之初,ip还没有垄断网络层协议(那时还有Novell网的IPX/SPX协议、DEC公司开发的CLNP网络协议,以及Apple公司开发的Apple Talk协议)
如果没有mac地址,势必需要以太网卡解读网络层协议帧头的地址信息,而不同网络层协议帧头的地址都大相径庭,这就大大增加了以太网卡的实现复杂度。
如果借助mac地址,就可以不依赖于任何网络层协议,独立判断一个帧是否接收(依据mac地址是否匹配),这就大大简化了以太网卡的实现。
并且即使以后出现更多的网络层协议,网卡也无需太多改变,这就体现出了以OSI7层模型为代表的分层网络架构的精髓(一层的内部实现无需知晓其上层、或下层)
其实,《计算机网络自顶向下方法》对该问题有明确的回答
英文原版
中译版
Tips
- ARP协议负责ip到mac的转换
- ip地址是可以动态变化的,而mac地址是写死的,一般不能变(当然也有随机 MAC 的手段)