0

假设主机A要向10.3.3.3发送一个包,10.3.3.3是主机B与A在同一个子网中。但是A认为B在另一个网络中,A会尝试使用arp来获取B的mac地址?

将A设置MAC到路由的MAC并直接将包发送到路由器吗?路由器收到包裹怎么办,直接发给B?

相反,如果 A 认为 B 在同一个网络中,而实际上 B 不在,那么 A 最终会找到 B 吗?A 可能会发送一个 arp,但没有人会响应。A会尝试将包裹发送到路由器吗?

4

1 回答 1

2

路由完全基于目标地址和路由表(取决于子网的配置)。

让我们假设,

主机 A 是 10.3.4.4,配置了网络掩码 255.255.255.0 和路由器 10.3.4.1

主机 B 是 10.3.3.3,配置了网络掩码 255.255.255.0。

在这种情况下,主机 A 的路由表看起来像,

Dest       Gateway   Mask
0.0.0.0    10.3.4.1  0.0.0.0
10.3.4.0   0.0.0.0   255.255.255.0

从底部开始,主机 A 将尝试查找要使用的路由。如果主机 A 尝试联系 10.3.4.x,它将匹配第一个路由,而不是使用网关,它将发送一个 ARP 请求“谁拥有 10.3.4.x?” 在子网广播地址 (10.3.4.255) 上。

如果主机 A 尝试联系主机 B,它将不匹配第一个路由规则,并且默认将数据包发送到网关(本例中为 10.3.4.1)。

所以不,如果没有配置主机 B 在同一个子网中,A 不会尝试使用 ARP 来获取主机 B 的 MAC。如果路由器配置了路由规则以在子网之间路由,它将传递数据包,否则它将被丢弃。

相反,如果 A 认为 B 在同一个网络中,而实际上 B 不在,那么 A 最终会找到 B 吗?A 可能会发送一个 arp,但没有人会响应。A会尝试将包裹发送到路由器吗?

不会。ARP 请求将被发送到子网广播地址。如果 B 不在该子网上并且忽略 ARP 请求,A 不会将数据包发送到路由器,因为它发送数据包的位置仅基于目标 IP 地址,不会更改基于 if 的路由位置数据包已送达。

于 2013-08-14T19:17:59.310 回答