![为什么子网掩码以完整的点表示法指定,而不是仅仅一个数字?](https://linux22.com/image/675414/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%AD%90%E7%BD%91%E6%8E%A9%E7%A0%81%E4%BB%A5%E5%AE%8C%E6%95%B4%E7%9A%84%E7%82%B9%E8%A1%A8%E7%A4%BA%E6%B3%95%E6%8C%87%E5%AE%9A%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E4%BB%85%E4%BB%85%E4%B8%80%E4%B8%AA%E6%95%B0%E5%AD%97%EF%BC%9F.png)
IPv4 的子网掩码(不知道 v6 是否如此)以完整的点表示法指定,例如255.255.255.0
。这意味着低八位可用于为 LAN 上的设备分配 IP 地址(如果我理解正确的话)。为什么要写出完整的子网,而我只需说8
,即掩码中的 0 位数量(因为它们都在低端)?
答案1
因为指示掩码中设置的位数比指示未设置的位数更有意义。那就是 /24。反过来,这是因为掩码更常用于回答“目的地是否与我在同一个网络中?”这个问题,而答案取决于按位和掩码与IP地址之间,如果这样对源IP和掩码以及目的IP和掩码相同的操作结果相同,说明它们在同一个网络内,不需要网关交互。
是的,斜线表示法更方便,但理解起来也更复杂,因为它需要理解掩码/前缀的用途。很多人缺乏这种理解,所以他们更容易使用他们熟悉的常用 IP 表示法。这就是这种表示法的主要原因。
答案2
有些网络掩码可以用点分表示法定义,但不能用 CIDR 表示法定义。在实际生活中,您应该避免使用非 CIDR 网络掩码。例如:
10.0.0.0 255.254.255.0
请注意,第二个八位字节中有一个位翻转。这变成了在单个网络 + 子网中定义的两个 IP 地址范围。如果我能找到铅笔和纸,我会说出这两个范围等于什么。