A 想要向 B 发送数据报。A 知道 B 的 IP 地址。但是 B 的 MAC 地址不在 A 的 ARP 表中。因此 A 向 LAN 上的所有机器广播 ARP 查询数据包。B 识别出自己的 IP,因此它通过向 A 发送自己的 MAC 地址来做出响应。
是这样吗?在这种情况下,A 可能是路由器吗?这似乎没有道理,因为路由器是为每个主机提供 IP 地址的,对吧?那么 A 难道不应该始终知道每个 IP 地址的 MAC 地址吗?
如果 A 是连接到路由器的主机,那么它还会这样做吗,还是会做一些不同的事情?
答案1
是的,它就是这样运作的。
路由器并不总是给主机分配 IP 地址的设备。
即使路由器知道主机的 IP 地址,它也不一定知道主机的 MAC 地址,因此需要对其进行 ARP 处理。
ARP 表(在大多数情况下)是暂时的,这意味着 ARP 条目会被缓存一段时间然后被刷新。
答案2
首先,SF 并不是一个为孩子们做作业而设立的问答网站。
是的,ARP 的工作原理基本就是这样的。路由器就像网络上的任何计算机一样,都是主机,它们的工作原理都一样。ARP 表条目会过期,否则它们最终会填满并停止工作。路由器不分配 IP,它们路线(我知道,名字很复杂)。DHCP 服务器使用 DHCP 来分配 IP 地址。
答案3
是的,基本上这就是 ARP 的工作方式。是的,A 可以是路由器或“普通”主机,这没什么区别。
路由器提供 IP 地址是一种特殊的“边缘”情况,通常只在非常小的网络中才会出现。其他系统可以通过 DHCP 提供 IP 地址,或者系统可以配置为使用静态 IP 地址,因此在这两种情况下,路由器都不知道这一点,需要自己使用 ARP。