【发布时间】:2018-08-04 10:24:14
【问题描述】:
我了解 ARP 工作原理的基础知识,一台主机发送一个 MAC 广播,内容为“谁拥有此 IP?”并且网络中的一些主机回答“我有那个 IP”。
但是如果路由器连接到同一个局域网会发生什么,路由器的功能是将局域网连接到广域网(希望我没看错)。请求地址的主机是否会自动切换并向连接的路由器发送一条带有其数据的消息,或者会发生什么?
【问题讨论】:
标签: networking protocols arp
我了解 ARP 工作原理的基础知识,一台主机发送一个 MAC 广播,内容为“谁拥有此 IP?”并且网络中的一些主机回答“我有那个 IP”。
但是如果路由器连接到同一个局域网会发生什么,路由器的功能是将局域网连接到广域网(希望我没看错)。请求地址的主机是否会自动切换并向连接的路由器发送一条带有其数据的消息,或者会发生什么?
【问题讨论】:
标签: networking protocols arp
发生的情况是,您的 IP 堆栈首先确定它需要将数据包发送到哪里。如果是直连网络中的IP地址,则直接发送数据包,否则,将数据包发送到网关。
这对您来说可能听起来很抽象。举个简单的例子,假设您有以下网络:
host_a host_b
+----------+ +----------+
|10.1.1.101| |10.1.1.102|
+-----+----+ +-----+----+
| | +--------+ <--------->
-----+--------------+-----------+10.1.1.1|--------< INTERNET >
+--------+ <--------->
Router
在您的 host_a 上,您将拥有
在您的 host_b 上,您将拥有
假设 host_a 想向 10.1.1.102 发送一个数据包。如果您使用 IP 地址和网络掩码,您会看到它在同一个子网中。因此,host_a 将向网络发送一个 ARP 请求,询问“嘿,谁有 10.1.1.102?” Host_b 将使用其 MAC-ID 进行响应。
现在假设 host_a 想要发送到 8.8.8.8。那不在本地网络上。因此,host_a 现在会将其发送到其默认网关 10.1.1.1。 Host_a 将发送一个 ARP 请求“嘿,谁有 10.1.1.1?”并且路由器将使用其 MAC-ID 进行响应。
上述过程极大地简化了实际发生的情况,但它可以帮助您更进一步了解网络的工作方式。
(这个问题可能更适合另一个 SE 站点,但随后有人可能会迁移它)
【讨论】: