在看ARP地址解析协议的书籍,书中介绍arp请求报文的目的MAC地址是广播地址(ff:ff:ff:ff:ff:ff),如图:

自己在PC上用wireshark抓了arp协议报文,发现抓到的包中目的MAC不是广播地址

奇怪了,难道是把arp请求直接发给了网关。这个猜想是错的,因为目的地址192.168.1.3是我PC局域网的IP地址,而源地址192.168.1.1是局域网网关IP。
调研一下原因:
arp缓存表中,每条表项到期后,系统会先直接发送一条地址解析包到表中对应的以太网地址,如果在短时间内没有回复,则删除此表项。请求包是直接发送到目的地的,所以可以不打扰到以太网中的其他站点;而直接删除此表项会造成有用的信息被删除,并且需要重新来获取此信息。
而重新获取信息还需要重新发送广播帧来请求目的mac地址,这样做因为广播而打扰其他站点。考虑到如果以太网中的主机很多,那么每台机器中的arp表中的表项也会很多,如果每条表项生存时间一到就直接删除表项,那么局域网中的广播数量会很多,这会在一定程度上影响网络的利用率,因此在删除表项之前,直接向该表项的目的地址发送一条请求报文来确认。如果短时间内没有收到回复,则说明此mac地址的拥有者已经改变了ip地址,或者已经离开了此以太网,直接删除此表项即可。
参考:有些arp请求报文中为什么会有目的mac地址(不使用广播地址) - AprilCal - 博客园