为什么我们需要在局域网上创建一个IPheader?

Why do we need to create an IP header on a LAN?

我知道 ARP 用于将 IP 地址映射到 MAC 地址,而在 Ethernet/Layer 2 网络上 MAC 用于寻址其他计算机。我知道如果客户端想要与另一个网络上的服务器通信,它将需要解决代表它的 IP 地址。

所以在同一个网络上,PC 1 已经将 PC 2 映射到一个 IP/MAC 地址,为什么它需要创建一个 IP header PC 2 不会使用?

IP地址不仅仅用于主机之间的传输。它们还用于更高级别的主机识别。例如:当与服务器建立新的 TCP 连接时,服务器可以识别请求的来源(通过客户端 IP address/port)。

此外,最好不要区分本地网络连接和广域网络连接,这样更容易一次性实现所有协议。

顺便说一句 - 在某些情况下,IP 地址在主机之间的传输过程中确实会被跳过。例如,在带有报头压缩的 PPP 的情况下。但这种情况并不常见。