以太网-在同一个LAN内,主机是如何获取到目的主机的MAC地址的?ARP协议解析

发布时间 2023-09-15 10:39:59作者: 三万光年

按照通讯的层级划分来说,无论设备是2层设备如交换机,3层设备如路由器,7层设备如主机,防火墙等等,所有的通讯最终都是基于2层来实现。

所以获取目的主机的MAC地址是通讯的前提,获取了MAC地址才可以进行帧的封装。

那么一个目标主机有几种方式可以获取到目的主机的MAC地址呢?

1. ARP缓存:如果ARP缓存里已经有了目的主机IP和MAC地址的对应关系,可直接获取进行帧封装

2.发送ARP请求:如果ARP缓存里没有目的主机的MAC地址,则主机会自动运行ARP,ARP协议会发送ARP请求分组。

ARP协议是一个3层协议,分组中包括源主机的IP和MAC地址以及目的主机的IP。

该ARP请求分组会被封装进一个广播帧中,该广播帧的源MAC地址为发送主机MAC地址,目的MAC位全F。该广播帧会被发送在同一个广播域内(LAN或VLAN)内的所有主机,所有主机查看该广播帧中的ARP请求分组后,

目标主机会进行ARP响应,其余主机则不理睬。ARP响应为普通的单播帧,直接发送给源主机。同时目的主机也会将发送主机的MAC地址协议自己的ARP缓存。

3. 接受ARP请求:如上所述,如果一台主机接收到别的主机的ARP请求分组,可以将发送主机的MAC地址直接进行缓存。ARP请求变相的相当于将自己的MAC地址广播给了广播域内的所有主机。

 

解决了获取目的主机MAC地址的问题后,如果目的主机的MAC地址变了(如更换网卡)或者目的主机退出此网络了,如何解决?

每条ARP缓存是有生效时间TTL的, 超时后ARP缓存记录会被删除。