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