目标IP地址的网络地址是如何指定的?

目标IP地址的网络地址是如何指定的?

因此,我理解互联网路由器使用其网络地址将数据包从源主机路由到目标主机,因为不可能为每个 IP 地址维护路由表。

我的问题是路由器如何将网络地址与 IP 地址区分开? IP 数据包是否也包含网络地址?或者它是否包含 IP 地址属于哪个类(A/B/C/D)等?

答案1

99% 的时间里,互联网上的路由器在通过互联网路由数据包时只查看目标 IP 地址。它们首先检查数据包的目标 IP 地址,然后在路由表中执行查找,寻找与该 IP 地址最匹配的路由。

如果路由具有较长的网络掩码,则认为路由更具体,在此示例中,考虑路由器在本地路由表中具有这两条路由。

192.168.1.0/24 (255.255.255.0) 通过 10.0.0.1

192.168.1.1/32 (255.255.255.255) 通过 20.0.0.2

如果我们收到一个目标地址为 192.168.1.1 的数据包,我们将使用更具体的路由 (192.168.1.1/32),这是更具体的,因为网络掩码的最大长度为 32 位。因此,数据包将从我们的接口路由出去,提供与下一跳 20.0.0.2 的连接。

而发往 192.168.1.33 的数据包将使用其最具体的路由 192.168.1.0/24,这不是该子网的最佳路由,只是我们目前拥有的最佳路由。此数据包将从提供到下一跳地址 10.0.0.1 的连接接口路由出去

最后值得注意的是,路由表通常是使用称为 BGP 的动态路由协议在互联网上构建的,这将经历一个漫长的过程来确定在路由表中安装的“最佳”路由,甚至在数据包开始路由之前。

答案2

类实际上已不复存在。现代路由器为每个路由设置一个网络号和一个子网长度。数据包仅包含目标 IP 地址。路由器使用子网长度最长的匹配路由来路由数据包。(有时称为“最长前缀”或“最具体”匹配路由。)

维基百科对此有很好的解释最长前缀匹配页。

答案3

完整解释请见 howtuffworksFranklin, Curt。“路由器的工作原理”2000 年 7 月 31 日。HowStuffWorks.com。

基本上,路由器只需要知道数据包是本地的还是远程的。如果是本地的,则直接传送数据包;如果是其他的,则传送到路由器本身所连接的另一个路由器,依此类推。

相关内容