我认为标题非常具有描述性。
我似乎在标准中找不到任何关于什么样的数据包可以在邻居缓存条目中触发从状态 STALE 到状态 DELAY 的转换。
我从 RFC4861 标准中找到相应的文本:
DELAY:自上次收到前向路径正常运行的肯定确认以来,已经过去了超过 ReachableTime 毫秒,并且在最后的 DELAY_FIRST_PROBE_TIME 秒内发送了一个数据包。如果在进入 DELAY 状态后的 DELAY_FIRST_PROBE_TIME 秒内没有收到可达性确认,则发送 Neighbor Solicitation 并将状态更改为 PROBE。
所以,当它说“当一个数据包被发送时......”。
什么样的数据包可以触发这种转变?
所有可能的数据包,甚至是对邻居请求的响应,都能触发吗?
例如:
当主机 A 第一次向另一个主机 B 发送 NS 请求时,主机 B 以 NA 回答。
在主机 A 的邻居缓存中,主机 B 的状态条目从未完成变为可访问,当 NA 返回时。
并且主机 B 应该添加一个具有主机 A 地址且处于STALE 状态的新条目。
可能是因为该条目处于 STALE 状态,然后向主机 A 发送了一个 NA 数据包,因此邻居缓存条目状态更新为 DELAY 并且主机 B 在一段时间后开始发送 prob 数据包?
谢谢!