ARP广播应答

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bobozai86/article/details/82693339

        之前对ARP的理解是,request为广播,而reply为单播。但是今天在做项目解析arp数据包时,老大(ps:神一般的存在)给我说arp响应也有广播这种情况,于是去google,查到在知乎上也有人问到同样的问题,并且还贴出了抓取的数据包,刚好省去我抓包的工作,他抓取的数据包如下:

我们可以看到第14个数据包的op字段值为2,即为arp响应,target mac为ff:ff:ff:ff:ff:ff。确实存在arp广播应答包,为什么会出现这种情况呢?

大家看第14个Packet,其IP=140.138.17.193,再看看前面13个Packet,没有一个是ARP请求IP= 140.138.17.193 的MAC地址的,所以第14个Packet是主机主动(Gratuitous ARP)发出来的,其目的是:主动告诉广播域里的其它主机,IP= 140.138.17.193 对应的MAC = 90.e7.c4.15.40.fe,其它主机都会将这个对应关系缓存(Cache)下来,即ARP Table Cache,这样可以避免别的主机和140.138.17.193 通信时,事先还需要先ARP广播请求,大大减少ARP广播。

在《TCP/IP》讲解了免费ARP:
1、定义:

它是指主机发送ARP查找自己的IP地址。通常发生在系统引导期间进行接口配置的时候。

2、作用:

a、一个主机可以通过它来确定另一个主机是否设置了相同的IP地址。
b、如果发送免费ARP的主机正好改变了硬件地址(很可能是主机关机了,并换了一块接口卡,然后重启),那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应更新。

猜你喜欢

转载自blog.csdn.net/bobozai86/article/details/82693339
arp