计算网络地址的困惑(Tricky One)

网络工程 子网 IP地址
2022-02-17 16:36:21

从 IPv4 地址和子网掩码计算网络地址时,我在理解网络地址时遇到问题。

IP Address:       192.168.10.131  | 11000000.10101000.00001010.10000011    

Subnet Mask:      255.255.255.192 | 11111111.11111111.11111111.11000000  

Network Address:  192.168.10.128  | 11000000.10101000.00001010.10000000  

从理论上讲,我们知道子网掩码中的所有 1 标识网络部分,而 0 标识主机部分,但在这里我可以猜测网络地址是 192.168.10 部分(全 1)但为什么 131 不包含在网络部分中因为它也有1s。

如果子网掩码是255.255.255.0 | 11111111.11111111.11111111.00000000那么它会很简单,因为最后一个八位字节中没有 1,所以它会被归类为主机部分,但是在上面的子网掩码中,它是令人困惑的,因为它在最后一个八位字节中也有 1 . 请帮忙。非常感谢!

1个回答

为什么 131 不包含在网络部分中,因为它也有 1。

“IP 地址”中第四个八位字节的前两位(下面用 * 突出显示)包含在网络部分中。这是因为“子网掩码”中第四个八位字节的前两位(下面用 ! 突出显示)决定了这一点。

                                                               **
IP Address:       192.168.10.131  | 11000000.10101000.00001010.10000011    

                                                               !!
Subnet Mask:      255.255.255.192 | 11111111.11111111.11111111.11000000  

换句话说,子网掩码决定了有多少位是网络位。因为子网掩码从第四个八位字节 (128 + 64) 中获取两个最高有效位,所以我们得到一个子网掩码,其第四个八位字节设置为 192。

由于主机地址使用两个最低有效位 (1 + 2),所以我们得到 3。当将 3 添加到网络地址的最后一个八位字节 (128 + 3) 时,我们得到 131。

顺便说一句,如果您有兴趣,我已经写了很多关于子网划分的博文。

编辑以回应您的评论 - “您基本上告诉我如何计算子网掩码 (128 + 64) = 192,但问题是为什么 131 是主机地址?”

当两者在同一个八位字节中时,只需将主机位添加到子网位即可找到主机地址。

让我们再看一下您给出的示例:

                                                                 HHHHHH
IP Address:       192.168.10.131  | 11000000.10101000.00001010.10000011    
                                                               SS
Subnet Mask:      255.255.255.192 | 11111111.11111111.11111111.11000000  
                                                               NN
Network Address:  192.168.10.128  | 11000000.10101000.00001010.10000000  
  • “S”位表示已“保留”为子网掩码位的位。
  • “N”位代表网络地址位。
  • “H”位代表主机位。

请注意“IP 地址”部分的前两位如何与“网络地址”的前两位相同。这就是我们知道主机地址位于该网络中的方式。

为了找到主机的 IP 地址,我们将所有主机位加在一起 ​​- 128 + 2 + 1 = 131。

如上所述,我已经在我的博客上详细解释了这一点。这篇文章与您的问题最相关。