假设我们有一个值为 value 的子网掩码255.255.255.128
。我可以知道为什么这会将网络分成 2 个子网,每个子网有 126 台主机?
据我了解,如果子网掩码是255.255.255.0
,则意味着我们有 254 个主机,因为有 2 个保留 IP 用于广播(全 0)和一个用于网络主机(全 1)。我不确定为什么255.255.255.128
会给 2 个网络,每个网络有 126 个主机。
假设我们有一个值为 value 的子网掩码255.255.255.128
。我可以知道为什么这会将网络分成 2 个子网,每个子网有 126 台主机?
据我了解,如果子网掩码是255.255.255.0
,则意味着我们有 254 个主机,因为有 2 个保留 IP 用于广播(全 0)和一个用于网络主机(全 1)。我不确定为什么255.255.255.128
会给 2 个网络,每个网络有 126 个主机。
正确,但此时更重要的是您拥有256 个地址,而不是拥有 254 个主机。
全一和全零地址仅在过程的最后才获得其特殊含义,此时网络实际上是在接口上配置的(即使它们不适用于主机,它们仍然包含在网络)。但由于原网络不会直接在某个接口上使用,“预留”折扣尚不适用。
因此,在进行子网划分时,您并没有将 254 个主机分成两半——而是将整个256 个地址的网络分成两个 128 个地址的一半,然后才将每一半计算为“126 个主机 + 2 个保留”。
(另外,你把保留地址弄错了:全1是现代广播地址。全零曾经是1980年代的广播地址,现在它被称为“网络地址”,只是出于遗留原因而保留。)
子网掩码的工作方式,每个“1”位定义地址的网络部分,而每个“0”位定义主机部分。例如,您的原始网络掩码 (255.255.255.0) 允许 256 个地址,因为它有 8 个“主机”位,并且这些位可以表示 2 8个不同的值。
因此,如果您将两个网络掩码都转换为二进制,您应该会看到它们相差一位(因此将原始网络分成 2 1部分),并且您应该看到较小的网络有 7 个“主机”位(因此给您 2 7总地址)。
如今,网络大小不再使用网络掩码,而是以“前缀长度”表示法编写,计算“1”位的数量(例如,“/24”表示 255.255.255.0)。