完整的新手问题:
比如说地址:8.8.8.8
计算机怎么知道这个地址是在互联网上,而不是本地网络上?
本地网络上的设备8.8.8.8
也可以有该地址吗?
答案1
您的计算机知道 8.8.8.8 不在您的本地网络上,因为该地址不是您的计算机接口卡配置的子网的一部分。
假设您的 PC 有一个配置为 192.168.0.100 255.255.255.0 的以太网适配器。当您的计算机想要将数据包转发到 8.8.8.8 时,它会查看其路由表以查看应使用哪个接口。路由表列出了您的计算机所知道的所有网络。在典型的 PC 上,您将在路由表中看到两个条目:
- 您的本地网络,192.168.0.0 255.255.255.0
- 默认路由(列为 0.0.0.0 0.0.0.0)
首先,您的计算机应用路由表中每个条目的子网掩码,以查看目标是否与任何网络匹配。因此,它将掩码 255.255.255.0 应用于 8.8.8.8,并获取网络 8.8.8.0。这与第一个条目不匹配。
它还应用了默认路由 0.0.0.0 的掩码,并获取网络 0.0.0.0。这与条目 0.0.0.0 匹配,因此计算机会查找应该将该数据包转发到哪里。该条目列出了下一跳地址(也称为默认网关),因此您的计算机会创建一个包含以下信息的以太网数据包:
- 源IP地址:你的电脑接口的IP地址>
- 源 MAC 地址:你的接口的 MAC 地址
- 目标 IP:8.8.8.8
- 目标 MAC:默认网关的 MAC 地址
然后将其转发到默认网关,再由默认网关将其转发到目的地。
在 Windows PC 上,您可以在命令提示符下键入“route print”来查看您的路由表。
“互联网”和您的本地网络之间没有真正的区别,除了 8.8.8.8 不是您的直接连接网络。
答案2
NAT(网络地址转换)将您的本地 IP 地址从您的私有网络(LAN)转换为通常由您的 ISP 提供的公共 IP 地址,以连接到互联网(WAN)。您的私有 IP 不是可路由的 IP,这意味着它们无法通过互联网路由到达其目标网络,而公共 IP 是可路由的 IP,可通过多个 WAN 在互联网上传输。