主机A和B位于同一子网上。A发送ARP请求(S)请求B的MAC。不管是什么原因,B都不回应。A也会:
当然,如果B位于不同的子网上,那么A就会直接进入上面的#2。我的问题是,如果它们在同一个子网上,但是ARP失败了,那么主机也会尝试#2。
这是什么时候出现的?两个案件:
我可以想象这种行为是依赖于实现的。因此,我希望不仅是一个理论上的论点,而且引用一个特定的操作系统的行为,或者至少引用一个RFC或标准。
发布于 2018-07-15 12:13:14
如果A的ARP请求没有得到响应,ARP尝试将在几次重试后超时,并返回返回到上层的错误(主机不可访问或类似)。
A不会尝试使用网关路由器,因为B的目标地址位于同一子网中。在尝试本地传送或使用网关之间的决定是基于本地路由表,而本地路由表又基于每个主机接口的网络部件和掩码长度。当本地传递失败时,不存在网关的回退。
A实际上位于与B不同的子网上,但是子网掩码配置错误。
如果A位于其他地方或者根本不存在,那就无关紧要了。B根据他们共同的子网前缀确定A是本地的,如果本地传递失败,那就是它。
A和B位于同一子网上,但它们都在受保护的端口(私有VLAN)中,因此没有路由器就不能直接通信。
同样的事情-如果B的ARP请求没有到达A或A的答复没有到达B,ARP失败并且没有发生本地传递(或任何其他方式)。
ARP是在RFC 826中定义的,有一些更新。
发布于 2018-07-15 09:12:25
每个ARP都会超时,一个新的ARP会周期性地被憎恨。视具体实施情况而定,它可能会在某个阶段放弃。应用程序可能会自行超时,或者较低的层会将错误传递到应用层。
它肯定不会发送到默认网关(除非默认网关响应,代理ARP等)
在两台主机位于不同网络的情况下,可能会出现默认网关为主机执行代理ARP并使用自己的MAC进行应答,然后转发流量的情况。只有当路由器被配置为发送代理ARP时,两台主机都配置了地址/掩码,使它们相信自己位于同一网络上,并且路由器具有较长的掩码,并且认为它们位于不同的网络上,这才会发生)。不过,这不是ARP超时,执行代理ARP的路由器会立即响应。
发布于 2018-07-15 17:04:50
简单地说,不。
当主机ARPs时,它已经通过比较自己的IP地址和子网掩码来计算主机在本地子网中的位置。
https://networkengineering.stackexchange.com/questions/51799
复制相似问题