从子网 ID 中减去 2 是必要的吗?

Is subtracting 2 from subnet ID necessary?

一个classB主机的地址要被分割成一个6位子网号的子网。子网的最大数量和每个子网中的最大主机数量是多少?

  1. 62 个子网和 262142 个主机。
  2. 64 个子网和 262142 个主机
  3. 62 个子网和 1022 个主机。
  4. 64 个子网和 1022 台主机。

我的尝试:

在classB网络ID为16位。给定子网 ID 的 6 位,因此主机 ID 的剩余位为 = 32- (16+6) = 10 位。

每个子网中的最大主机数 = 2^(主机的位数)- 2(主机 ID 中不允许全 0 和全 1,因为第一个是子网 ID,最后一个是广播 ID)= 2^ 10 - 2 = 1022.

我在某处读过 :

Subtracting 2 from host IDs is necessary while subtracting 2 from 
subnet IDs is not necessary.

因此,子网ID的最大数量为= 2^(子网ID的位数)- 2(非强制性)= 2^6 = 64是最大的。

Can you explain please, Is subtracting 2 from subnet ID necessary?

很多年前,您必须从子网数量中减去 2,而较旧的网络文档和培训仍然如此。这在 RFC 中被澄清为并非如此。由于 IPv4 地址短缺,您需要能够使用每个可用的子网。

仅供参考,关于主机不使用子网和广播地址的规则有一个例外:您可以使用 /31 子网进行点对点链接。阐明这一点的 RFC 已有 15 年历史,但许多人仍在使用 /30,认为它是可用的最小子网。使用 /31 将使您可以拥有的点对点链接数量增加一倍。