假设主机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会尝试将包裹发送到路由器吗?
假设主机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会尝试将包裹发送到路由器吗?
路由完全基于目标地址和路由表(取决于子网的配置)。
让我们假设,
主机 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 的路由位置数据包已送达。