linux/net/ipv4/arp.c 中同网段的两张网卡为什么会对应相同的MAC
时间: 2023-09-25 19:10:15 浏览: 161
基于MAC网卡物理地址的通信类,可实现不同网段之间通信
5星 · 资源好评率100%
在ARM Linux系统中,当同一网络(子网)内存在多个网卡时,它们都使用相同的网络地址前缀和子网掩码,因此它们的网络地址是相同的。ARP协议是一种将IP地址映射到MAC地址的协议,当一个设备需要与另一个设备通信时,它需要知道目标设备的MAC地址。为了获取目标设备的MAC地址,源设备会先在ARP缓存表中查找是否存在目标设备的IP地址对应的MAC地址,如果存在,则直接使用该MAC地址进行通信;如果不存在,则会向同一网络(子网)内的所有设备发送ARP请求,请求目标设备的MAC地址。
当同一网络(子网)内的多个网卡收到ARP请求后,如果发现请求的IP地址与自己的IP地址匹配,则会将自己的MAC地址回复给源设备。因此,在同一网络(子网)内的多个网卡之间,它们的IP地址和MAC地址也是一一对应的,这也是为什么同一网络(子网)内的多个网卡会对应相同的MAC地址。
需要注意的是,同一网络(子网)内的多个网卡使用相同的MAC地址只是一种局限于该网络(子网)内部的现象。当不同网络(子网)之间的设备进行通信时,需要通过路由器进行转发,此时设备之间的MAC地址就不再相同。
阅读全文