3

根据 arp(7) - Linux 手册页:

base_reachable_time (自 Linux 2.2 起)一旦找到邻居,该条目被认为至少对 base_reachable_time/2 和 3*base_reachable_time/2 之间的随机值有效。如果条目收到来自更高级别协议的积极反馈,则条目的有效性将被延长。默认为 30 秒。该文件现在已过时,取而代之的是 base_reachable_time_ms。base_reachable_time_ms(自 Linux 2.6.12 起) 至于 base_reachable_time,但以毫秒为单位测量时间。默认为 30000 毫秒。

我不理解这种解释——尤其是关于来自更高级别协议的积极反馈的声明。有人请澄清吗?

4

2 回答 2

1

arp(7) 手册页

当一段时间后没有对现有映射的积极反馈时(请参阅下面的 /proc 接口),邻居缓存条目被认为是陈旧的。可以从更高层获得积极的反馈; 例如来自成功的 TCP ACK。其他协议可以使用 MSG_CONFIRM 标志向 sendmsg(2) 发送转发进度信号。当没有向前进展时,ARP 会尝试重新探测。

基本上这意味着,如果在有很多成功的 ACK 的情况下发生了诸如持续 TCP 连接之类的事情,那么它假定它拥有的 IP/MAC 对是有效的,并且当表中的条目正常时不会打扰执行新的 ARP 请求到期。

于 2012-11-14T20:04:08.560 回答
1

对于 IPv6,该功能ndisc_router_discovery可以更新base_reachable_time.
IPv6 邻居发现协议(取代 ARP)获取此信息并对其进行更新。

于 2012-04-19T13:11:34.953 回答