按照通讯的层级划分来说,无论设备是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缓存记录会被删除。
标签:ARP,缓存,主机,目的,地址,MAC,以太网 From: https://www.cnblogs.com/hanlei-wenwen/p/17704345.html