如果主机不知道目的地所在的网络,将如何发送包

时间:2013-08-14 12:23:19

标签: networking router arp

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

是否将MAC设置为路由的MAC并直接将包发送到路由器?如果路由器收到包裹会怎么做,它会直接发送给B?

相反,如果A认为B在同一个网络中,实际上,B不是,A会终于找到B吗? A可能发送一个arp,但没有人会回复。 A会尝试将包发送到路由器吗?

1 个答案:

答案 0 :(得分: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地址,根据目标IP地址不会改变路由的位置数据包已经交付。