网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址
ARP作用:已知对方ip地址,来获取对方的mac地址
因为主机在发送数据之前,会进行封装 发现封装到二层的时候 DMAC地址这一块我获取不了 我主机这边会发送一个request的广播报文出去 知道收到reply相应消息后 我主机才能够封装完成,并把数据发送出去
普通ARP的工作过程
第一步:主机A想要和主机C通信
第二步:主机A首先会查询自己的ARP缓存表
这个ARP缓存表根据主机系统的不同,缓存时间也会不同,在windows系统当中缓存时间为20分钟左右
第三步:主机A发送广播
的ARP请求(REQUEST)
第四步:目标主机收到,回复ARP,发送单播
的REPAY响应
注意:此时目标主机也会在对应的缓存表里面存储着主机A的IP地址和对应的MAC地址
第五步:主机A收到目标主机的回复
免费ARP
主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突
功能一: 检查IP地址配置是否有冲突
功能二:刷新交换机的MAC地址表(VRRP的场景下)
如果Master发生故障 设备的状态变为Master之后,会立刻发送免费ARP来刷新交换机上的MAC表项,从而把用户的流量引到此设备上来,整个过程对用户完全透明。
图片来源于:
https://blog.51cto.com/13817711/2450225