广播消息中的ARP超时

假设我有源主机H1(10.1.1.2/24)谁想要沟通主机H2(10.1.1.3/24)。 由于两台主机都在同一个子网中,H1发送一个ARP广播。 H2回复这个广播,最后H1得到H2的MAC地址。 因此沟通build立。

现在如果H2下降,H1将不会收到来自H2的ARP答复。 那么H1在什么时候会等ARP答复呢? RFC 826不会谈论任何这样的计时器。

我在一些论坛上发现它是5到30秒。 这是对的吗?

问候,Sudhansu

在你的描述中你至少错过了一件事。 ARP回复缓存为ARP条目一段时间。 所以H1在H2停机后会把一些车流发送到黑洞。 这段时间被选为base_reachable_time/23*base_reachable_time/2之间的随机数。 (随机用于及时分发来自不同设备的请求)。 默认情况下,base_reachable_time是30秒。

在这个随机时间过去之后,H1尝试更新ARP条目。 通过以间隔retrans_time_ms (缺省为1秒)发送ARP请求来更新单播消息(直接发送到H1,而不向网络广播)。 如果ucast_solicit (默认为3)尝试失败,则执行广播探测。

如果广播探测也失败( mcast_solicit尝试间隔retrans_time_ms ),则ARP条目被认为是不完整的。 在这个检查过程中,内核可以将数据包发送到ARP队列中的H2。

加起来:

  • ARP入口重新生效之前已经过了15-45秒
  • (3 + 3)* 1000毫秒后探头启动,并认为无效的ARP条目。