数据如何从节点传输到目标 IP 地址?

网络工程 ip MAC地址 ARP 国家发展计划
2022-02-05 02:02:25

假设我有很多设备连接到单个交换机,而交换机本身连接到提供 Internet 连接的路由器。

每当节点上的应用程序需要通信时,它都需要一个 IP 地址,该地址可以是内部的,也可以是外部的。事实上,IP 数据包被分解成较小的片段作为以太网帧的有效载荷,节点将以太网帧发送到交换机,让交换机决定帧应该去哪里。

以下情况下以太网帧的目的MAC地址是什么:

  1. 目标 IP 地址是内部的
  2. 目标 IP 地址是外部的

我在某处读到路由器决定是否应转发 IP 数据包或保留在内部网络中。我感到困惑的是所有 L2 数据的去向。这是我的两个理论:

  1. 主机上的应用程序并不关心,只是将所有内容发送到路由器。路由器决定数据应该去哪里:到另一个内部主机或被转发到另一个网络。
  2. 主机上的应用程序将目标 IP 地址与其自己的 IP 地址进行比较,并确定目标是否具有相同的网络前缀。如果它在同一网络上,则目标 MAC 将是目标节点的。如果 IP 不在同一个网络,则目标 MAC 将是路由器。如果通信是内部的,则路由器不参与。

哪一个是正确的?

1个回答

发送方的本地 IP 地址(在其子网内)通过 ARP (IPv4) 或 NDP (IPv6) 解析为其 MAC 地址。

发送者子网之外的 MAC 地址是没有意义的。出站 IP 数据包被发送到网关(由发送方的路由表确定)并使用网关的 MAC 地址。