- 源主机会向当前局域网中发送 ARP 请求,目标的 MAC 地址是 FF-FF-FF-FF-FF-FF,这表示当前请求是一个广播请求,局域网内的所有设备都会收到该请求;
- 接收到 ARP 请求的主机都会检查目的 IP 和自己的 IP 地址是否一致;
- 如果 IP 地址不一致,主机会忽略当前的 ARP 请求;
- 如果 IP 地址一致,主机会直接向源主机发送 ARP 响应;
- 源主机在接收到 ARP 的响应之后,会更新本地的缓存表并继续向目的主机发送数据;

文章插图
图 4 - 地址解析协议
在局域网中我们一般会使用集线器(Hub)或者交换机(Switch)来连接不同的网络设备 。因为在集线器连接的局域网中,所有的数据帧都会被广播给局域网内的全部主机,所以使用相同的 MAC 地址一般也不会出现太多的问题;但是交换机会学习局域网中不同设备的 MAC 地址并将数据帧转发给特定主机,所以如果局域网是由交换机构成的,就会影响网络的通信 。

文章插图
图 5 - 集线器和交换机
假设局域网中的具有两台 MAC 地址完全相同的网络设备 A 和 B,即6e:77:0f:b8:8b:6b,当设备 A 想要向设备 B 发送以太网帧时会遇到如下所示的情况:
- 设备 A 在构造的以太网帧中将源地址和目的地址都设置为 6e:77:0f:b8:8b:6b 并向交换机发送数据;
- 交换机接收到了设备 A 发送的数据帧后,会从数据帧的源地址学习到设备 A 的 MAC 地址并将 6e:77:0f:b8:8b:6b -> A 这条记录插入本地缓存中;
- 交换机发现收到数据帧的目的地址会指向了网络设备 A,所以它会将该数据转发回 A;
总结MAC 地址是链路层网络中的重要概念,在局域网中会通过 MAC 地址转发以太网数据帧,全球唯一的 MAC 地址是非常理想的情况,然而在实际的网络场景中,我们不需要保证如此强的限制:
- MAC 地址可以通过软件进行修改,而第三方的山寨厂商不会在 IEEE 中申请独立的 MAC 地址段,它们也可能会盗用其他厂商申请的 MAC 地址;
- 保证 MAC 地址在局域网中唯一就不会造成网络问题,不同局域网中的 MAC 地址可以相同;
- MAC 地址和 IP 地址之间有什么样的关系?
- 为什么我们有了 MAC 地址还需要 IP 地址?
推荐阅读
- 为什么你写的代码总是有 Bug?用它来保证 Go 代码质量
- java枚举类型,为什么强烈推荐使用?看看它的7种场景方法
- 南通家纺城在哪 南通家纺城地址
- 淘宝店铺销量突然下降是什么原因 为什么淘宝销量突然减少
- 淘宝不实名认证 为什么会不符合淘宝认证的要求
- 飞机失事乘客很难生还,为什么不让乘客跳伞逃生呢?
- 为什么很多人宁愿把车丢掉,也不拿去报废?汽车报废没钱拿吗?
- 翡翠|新人购买翡翠,却总是碰不到合适的翡翠,这是为什么?
- 手撕包菜为什么好吃?
- 为什么康师傅红茶要换成圆瓶,原来方瓶挺好的,现在换完圆瓶还没有方瓶好呢![红茶]
