ARP请求单播MAC?

网络工程 arp 线鲨
2021-07-15 22:13:13

我想问一下,通过 ARP 请求,我必须相信目标 MAC 地址在所有情况下都是广播地址。然而我遇到了一个wireshark捕获: ARP Wireshark 捕获

我只是无法理解来自路由器的第三个请求。为什么请求的目标 MAC 地址设置为我的 NIC 而不是广播?来自路由器的最后一个 ARP 请求正是我所假设的(即 MAC 是广播)。

( .1 是路由器, .100 我的 PC, .103 秒 PC )

1个回答

在尝试刷新已过期或即将过期的 ARP 条目时,许多客户端操作系统将向他们已经期望的 MAC 地址发出“目标”ARP 查询。大多数情况下,这会提示预期目标的响应,并允许刷新条目,而无需向整个网络发送广播。

这将是我第一次在路由器上看到它,但认为某处的路由器供应商会以相同的方式实现 ARP 并不太夸张。

将近一年后编辑:我在RFC 1122找到了描述这种行为的引用

2.3.2  Address Resolution Protocol -- ARP
   2.3.2.1  ARP Cache Validation
      An implementation of the Address Resolution Protocol (ARP)
      MUST provide a mechanism to flush out-of-date cache
      entries.  If this mechanism involves a timeout, it SHOULD be

      ...

      IMPLEMENTATION:
           Four mechanisms have been used, sometimes in
           combination, to flush out-of-date cache entries.

           ...

           (2)  Unicast Poll -- Actively poll the remote host by
                periodically sending a point-to-point ARP Request
                to it, and delete the entry if no ARP Reply is
                received from N successive polls.  Again, the
                timeout should be on the order of a minute, and
                typically N is 2.