繁体   English   中英

为什么我的路由表存储一个mac地址?

[英]Why my routing tables stores a mac address?

我是一名学习计算机网络的学生。

这是我的网络的样子:

   Router(NAT)
  /         \
My PC     My iPad

我查看了我的计算机的路由表,它显示以下内容:

$ netstat -r
Routing tables

Internet:
Destination        Gateway            Flags           Netif Expire
default            172.22.128.1       UGScg             en0
127.0.0.1          127.0.0.1          UH                lo0
172.22.128.1       0:74:9c:96:72:55   UHLWIir           en0   1200
172.22.161.13      ba:2e:b1:6f:69:39  UHLWI             en0    740

我确认 ip 172.22.161.13的网关ba:2e:b1:6f:69:39是我的 iPad 的 MAC 地址。

我有几个疑问:

  1. 路由表不应该记录下一跳的ip地址吗? 它如何存储MAC地址?
  2. 如果命令netstat -r也查找 arp 表,它应该如何在不通过路由器的情况下向我的 iPad 发送数据包?

这里的问题是理解网络中第 2 层和第 3 层的功能。

将数据包转发到位于同一子网的设备和位于不同子网的设备之间是有区别的。

我认为没有比可以通过第 2 层协议相互通信的设备更好的子网定义了。 路由器用于在不同子网的设备之间转发数据包,也就是说,同一子网中的两个设备不通过路由器进行通信,至少不通过路由器的“路由器”部分。

位于同一子网中的设备应分配相同的 IP 前缀(即网络掩码覆盖的位相同)。 “应该”表示如果不是这样,那么你的网络配置错误,可能无法正常工作。 这样,您的 PC 和 IPad 可以确定它们在同一子网中,并且不需要通过默认网关进行 go。

由于您的 PC 和您的 IPad 位于同一子网中,因此它们将使用第 2 层相互通信。从您的配置中,我不确定实际上有多少接口是无线的。 如果两个接口都是无线的,它们实际上可能能够直接通话(我不确定 AP 模式下的 wifi 协议是否允许,我认为可以)。 如果您的 PC 通过以太网连接,那么您的路由器还充当交换机/网桥(这是第 2 层设备)并根据以太网规范转发数据包。 您可以通过谷歌搜索 MAC 学习来了解它。

这应该回答第二个问题,现在回答第一个问题。

实际上,我想知道为什么该表存储 IP 地址。 IP 下一跳地址不用于转发。 首先,请注意,从第 3 层(即路由器)的角度来看,距离为两跳的设备之间的通信使用第 2 层进行。当设备做出路由决策时,in 从 IP header 获取目标地址并查找下一跳,其中设备需要的是 a) 出接口 b) 如何使用接口的第 2 层协议到达下一跳。 然后设备构造一个适当的第 2 层 header 并将数据包发送到下一跳设备,这或多或少是相同的。 因此,实际上您的 PC 需要路由器接口的 MAC 地址,以便将数据包发送到子网之外的某个位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM