我在这里有一个本地网络。我正在做traceroute到同一网络上的另一个系统。我期待两个结果。一个是打到我的路由器,然后是另一台机器。但我只看到如下结果
1 13 ms 4 ms 12 ms nj-PC [192.168.1.110]
为什么未显示有关路由器的信息?
1)路由器是否在此处充当交换机,或者
2)如果在同一接口上转发数据包,是否不返回数据包?要么
3)数据包根本不通过路由器。一旦获得目的地的MAC地址,它将直接将其发送到目的地吗?我的疑问是数据包是否仍将通过路由器,对吗?它会只是作为这些数据包的通过吗?
基本上,运行时会发生以下情况traceroute nj-PC
:
源主机解析 nj-PC
为IP地址。(这里不做详细介绍)
源主机检查其本地路由表中是否有到该IP地址的路由。
路由表示例:
Destination Gateway Genmask ... 0.0.0.0 192.168.1.254 0.0.0.0 ... # default route 192.168.2.0 192.168.1.253 255.255.255.0 ... # net route 192.168.3.23 192.168.1.252 255.255.255.255 ... # host route 192.168.1.0 0.0.0.0 255.255.255.0 ... # directly reachable
如果可以直接访问目标(网关0.0.0.0
或On-link
,具体取决于您的操作系统),则通过ARP解析目标IP地址的MAC地址,并将数据包直接发送到目标主机(通过以太网)。
如果无法直接到达目的地,则通过ARP解析网关IP地址的MAC地址,并将数据包传递到网关(通过以太网),然后网关根据其自己的路由表转发该数据包。
该默认路由捕捉任何直接或通过显式的主机或网络路径不可达或者所有目标地址。和以前一样,(默认)网关的MAC地址通过ARP解析,数据包通过以太网传递到网关以进行进一步传递。
在您的情况下,源IP地址和目标IP地址都在同一子网中,因此可以直接访问目标,因此无需路由器的参与即可直接传送数据包。这就是为什么您在traceroute
输出中仅看到一个跃点的原因。
如果路由器设备具有内置交换机并且两个设备都连接到该交换机,则它仍可以在此处充当交换机,但这是另一回事,并且与路由无关。交换(以太网)发生在数据链路层(OSI模型的第2层),而路由(IP)发生在网络层(第3层)。