如果所有主机位都为零,为什么这是一个网络?

网络工程 路由器 ipv4
2021-07-11 19:27:29

假设我们有一个地址为:172.31.219.33/27的路由器,我可以告诉你几件事:

  1. 子网掩码:255.255.255.224
  2. 广播地址(这里我不确定最后一位应该是 64 还是 65 - 见下文):172.31.219.64
  3. 最后一个主机地址(因为我们知道广播地址;也不确定最后一位应该是 63 还是 62):172.31.219.63

我们还可以分辨出第一个主机地址(172.31.219.33)和网络地址(172.31.219.32)。

我不明白两件事:

  1. 为什么第一个主机地址是XXX33好像路由器已经是主机了?
  2. 为什么网络地址是XXX32换句话说,为什么不是XXX33(来自路由器地址)?
2个回答

为什么第一个主机地址是XXX33?

  1. 好像路由器已经是主机了?
  2. 为什么网络地址是XXX32?换句话说,为什么不是XXX33(来自路由器地址)?

像这样计算网络地址和主机地址的原因在RFC 950RFC 1878 中指定连续的二进制网络掩码用于将 IPv4 地址划分为主机部分和网络部分;如果主机部分是全零,则根据定义是网络,而不是主机。

10101100.00011111.11011011.00100001    => IP 172.31.219.33 as binary
11111111.11111111.11111111.11100000    => 27-bit network mask (binary AND with IP for net)
                              ^^^^^
                                Host bits are zero in a network mask
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             Network bits are ones in a network mask
----------------------------------------------------------------------------
10101100.00011111.11011011.00100000    <= 172.31.219.32 is the *network*

如果您在理解如何正确计算这些方面需要帮助,我们有许多问答已经回答了这个问题。

每个子网的首地址可以是广播地址。

“等等”,我听到你在尖叫。“我以为每个子网LAST地址就是广播地址!”

是的,这就是他们教你的,不是吗?“他们”只是希望人们信任并遵循人们教的任何规则。

嗯,秘诀是:这取决于您使用的是什么设备。一些较旧的设备实际上使用第一个地址作为广播地址。(这可能是在其他技术(例如令牌环而不是以太网)与当今更常用的标准竞争的时代。)人们开始将第一个地址视为“网络 ID”,也许部分是因为他们试图避免使用该地址。人们传播了将其视为“无法使用”的建议。常见的原因只是它是一个“网络 ID”。结果似乎是积极的:只要人们遵循该建议,人们就会设法避免与旧设备发生冲突。而最终,一些网络硬件/软件可能已经开始假设人们遵循推荐的建议。所以规则被强制执行以遵循推荐的建议,这意味着现在更多的设备(包括一些更新的东西)可能无法使用这些地址。所以现在,结果是,即使采用现代标准,/30 中的 IPv4 地址也不是只有 75% 被认为可用,而是有 50% 可用。我们有 50% 的浪费,而不是 25% 的浪费。

我对此进行了介绍,可能更详细地位于:][Cyber​​Pillar][ 词汇表:网络 ID注释 1和/或广播地址的词汇表条目。(例如,那里引用了更多 RFC。)

希望这有助于解释原因


注 1完全披露,我开始了 ][Cyber​​Pillar][ 网站