基于本文回答

播面 播面

文图音视,全方位拆解八股文
0
评论

什么是子网掩码?什么是 CIDR(无类别域间路由)?

知识点图片

这是一个非常经典且重要的网络基础问题。简单来说,子网掩码CIDR都是用来解决同一个问题的:如何在一个IP地址中区分哪部分是“网络”,哪部分是“主机”。

为了让你更容易理解,我们可以用“寄信”或者“打电话”的例子来类比。


1. 什么是子网掩码 (Subnet Mask)?

通俗解释

想象一个 IP 地址 192.168.1.10 是一个电话号码。
如果不告诉你规则,你不知道 192.168.1 是区号,还是 192.168 是区号。

子网掩码就是那个规则说明书。 它告诉电脑:

  • 这个 IP 地址的前面一部分是 “小区名”(网络位,Network ID)
  • 后面一部分是 “门牌号”(主机位,Host ID)

技术原理

IP 地址是 32 位的二进制数。子网掩码也是 32 位,它通过二进制的“与”运算(AND)来划分网络。

  • 掩码为 1 的部分:对应 IP 地址中的网络位(必须固定)。
  • 掩码为 0 的部分:对应 IP 地址中的主机位(可以分配给具体的电脑)。

举个例子

假设 IP 地址是 192.168.1.10,子网掩码是 255.255.255.0

类型 十进制格式 二进制格式 含义
IP 地址 192.168.1.10 11000000.10101000.00000001.00001010 你的地址
子网掩码 255.255.255.0 11111111.11111111.11111111.00000000 前24位是1,说明前24位是网络
网络地址 192.168.1.0 11000000.10101000.00000001.00000000 你所在的“小区”

结论: 电脑通过掩码计算出,自己属于 192.168.1.0 这个网络。如果它想发数据给 192.168.1.20,它知道这是邻居(同网络),直接喊一声就行;如果发给 8.8.8.8,它知道这是外地(不同网络),需要交给网关(路由器)去转发。


2. 什么是 CIDR (无类别域间路由)?

全称:Classless Inter-Domain Routing。

为什么要发明 CIDR?

在 CIDR 出现之前(1993年以前),IP 地址被死板地分为 A类、B类、C类:

  • A类:默认掩码 255.0.0.0
  • B类:默认掩码 255.255.0.0
  • C类:默认掩码 255.255.255.0

这造成了巨大的浪费!
比如一家公司有 300 台电脑:

  • 用 C 类(254个可用IP):不够用。
  • 用 B 类(65,534个可用IP):太大了,浪费了 6 万多个 IP。

CIDR 是什么?

CIDR 打破了 A/B/C 类的僵化界限。它允许任意长度的子网掩码。
它引入了“斜线记法” (Slash Notation),直接在 IP 后面写上网络位的位数。

举个例子

  • 传统写法:IP 192.168.1.10,子网掩码 255.255.255.0
  • CIDR 写法192.168.1.10/24

这里的 /24 意思就是:子网掩码的二进制形式中,前面有 24 个 1。
(24 个 1 转换成十进制,正好就是 255.255.255.0)

CIDR 的优势

  1. 更灵活(子网划分)
    如果你有 300 台电脑,你可以申请一个 /23 的网络(掩码 255.255.254.0,容纳 510 台主机),完美解决 C 类不够、B 类浪费的问题。
  2. 路由聚合(超网)
    路由器不需要记录几万条零散的路由信息,只需要记录一条聚合后的 CIDR 地址(比如 10.0.0.0/8),大大减小了全球互联网路由表的体积,提高了网络速度。

3. 总结与对照表

子网掩码是底层的计算逻辑(一串 0 和 1)。
CIDR 是一种更先进的分配策略,也是一种更简洁的书写方式(/数字)。

它们本质上描述的是同一个东西:

CIDR 写法 等同的子网掩码 可用主机数 (大约) 常见用途
/8 255.0.0.0 16,777,214 大型ISP、巨型企业
/16 255.255.0.0 65,534 大型局域网
/24 255.255.255.0 254 最常见的家庭/办公局域网
/25 255.255.255.128 126 将一个C类网切成两半
/30 255.255.255.252 2 通常用于两个路由器之间的直连
/32 255.255.255.255 1 特指某一台特定的主机(没有网络部分)

一句话总结:
子网掩码是用来告诉电脑“哪部分是网络位”的二进制尺子;而 CIDR 是打破了传统分类限制,用“/数字”这种更灵活、更简洁的方式来表示这把尺子。

00:00
00:00