当连接断开时或仅在缓存超时后才必须重新发送 ARP 请求?

当连接断开时或仅在缓存超时后才必须重新发送 ARP 请求?

我遇到的情况是,IP 地址从一个设备移动到另一个设备,并且没有发送免费 ARP(地址解析协议)消息来更新此网络上的成员。

此网络上有一个设备可能需要长达 20 分钟的时间才能重新开始通信,因为 ARP 缓存超时时间很长。另一个设备在识别到断开的连接后立即发送其 ARP 请求,因此它很快就可以再次在网络上使用。

我想知道是否存在某种定义,即如果设备的目标 MAC 地址或 IP 通信不再可用,则设备必须重新发送 ARP 请求?

这个问题与“ARP 如何处理 IP 地址移动到另一台设备?“。

答案1

我想知道是否存在某种定义,即如果设备的目标 MAC 地址或 IP 通信不再可用,则设备必须重新发送 ARP 请求?

没有。甚至没有要求主机的 ARP 表中的条目超时。

RFC 826,以太网地址解析协议——或——将网络协议地址转换为 48 位以太网地址,以便在以太网硬件上传输讨论与此相关的问题:

可能需要表老化和/或超时。这些的实现超出了本协议的范围。这里有更详细的描述(感谢 MOON@SCRC@MIT-MC)。

如果主机移动,则该主机发起的任何连接都将有效,前提是其自己的地址解析表在移动时被清除。但是,其他主机发起的连接没有特别的理由知道要丢弃其旧地址。但是,48 位以太网地址应该是唯一的并且永远固定不变,因此它们不应该改变。如果主机名(以及某些其他协议中的地址)被重新分配给不同的物理硬件,则主机可能会“移动”。此外,根据我们的经验,总是存在通过硬件或软件错误意外传输不正确的路由信息​​的危险;不应允许它永远存在。也许启动连接失败应该通知地址解析模块删除该信息,因为主机无法访问,可能是因为它已关闭或旧转换不再有效。或者也许从主机接收数据包应该重置用于向该主机传输数据包的地址解析条目中的超时;如果在适当的时间内没有从主机接收到数据包,则地址解析条目将被遗忘。这可能会导致额外的开销来扫描每个传入数据包的表。也许哈希或索引可以使这个速度更快。

建议的接收地址解析数据包的算法试图减少主机移动时恢复所需的时间。回想一下,如果 <协议类型,发送方协议地址> 已经在转换表中,则发送方硬件地址将取代现有条目。因此,在完美的以太网上,广播请求到达电缆上的所有站点,每个站点都将获得新的硬件地址。

另一种方法是让守护进程执行超时。经过适当的时间后,守护进程会考虑删除条目。它首先将带有操作码 REQUEST 的地址解析数据包(如果需要,会进行少量重新传输)直接发送到表中的以太网地址。如果在短时间内未看到 REPLY,则删除该条目。请求会直接发送,以免打扰以太网上的每个站。忘记条目可能会导致有用的信息被遗忘,必须重新获取这些信息。

由于主机不传输除自身之外的任何人的信息,因此重新启动主机将使其地址映射表保持最新。不良信息不能通过在机器之间传递而永远存在;唯一可能存在的不良信息是机器不知道其他机器已更改其 48 位以太网地址。也许手动重置(或清除)地址映射表就足够了。

如果认为这个问题很重要,那么显然需要进一步思考。任何类似地址解析的协议都会导致这个问题。

相关内容