同等问题:为什么有了MAC地址,还需要IP地址?

首先,我们先来看IP地址和MAC地址。

IP地址

IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,是因特网上唯一标明主机的地址。可以是动态的,好比是你住址的门牌号。

MAC地址

是在数据链路层上标志每一个主机或者设备的独立标识符。在局域网中,称为硬件地址或者物理地址。是每个适配器(网卡)都有的一个全球唯一的48位二进制地址,是一出厂就可以确定一个MAC地址。好比一个人的身份证号码。(MAC地址是以太网卡的物理标识。)


角度1:只有IP,没有MAC。网卡的实现上极其困难。

如果没有MAC地址,网卡就需要解读网络层协议头的地址信息,而每一种网络层的地址又都差不多,这增加了以太网卡的实现复杂度。而网卡有了MAC地址,就可以不依赖于任何网络层协议,可以独立判断一个以太帧是否接收(依据MAC地址匹配),这样大大简化了网卡的实现。即使有更多的网络层协议,网卡也无需太多改变。思想:分层,内部实现无需知晓上层或下层协议字段。

角度2:只有MAC,没有IP。网卡的实现上极其困难。

如果只使用MAC地址的话,路由器就需要记住每个MAC地址所在的子网是哪一个,而世界上有2的48次方个MAC地址,这就意味着即使我们给每个 MAC 地址只留 1 字节的储存空间,每个路由器也需要 256 TB 的内存!这显然是不可能实现的。

角度3:只有IP,没有MAC。IP地址的局限。

IP地址是要设备上线以后,才能根据他进入了哪个子网来分配的,在设备还没有IP地址的时候(或者分配IP地址的过程中),还需要用MAC地址来区分不同的设备,并根据MAC地址通信。

【类比形象理解】:

IP地址好比住址的门牌号,住在不同的地方就有不同的门牌号,邮局送信的时候回根据这个门牌号找到你的位置。

MAC地址好比身份证号码,一出生就有的且不会发生改变。但是知道身份证号码是无法找到你的,身份证号码和地理位置无关。


参考文章

1、https://www.zhihu.com/questio... 你好啊世界
2、https://www.zhihu.com/questio... 车小胖


纸飞机78
18 声望4 粉丝