公众号旧文

好像还有人不清楚 子网掩码 的作用?

作者:胖子阅读 —

很多人都知道 IP 地址,但如果问一句:什么是子网掩码?

有人就会开始迷糊了。

实际上,IP 地址如果没有子网掩码,是无法正常工作的。

今天胖子就用最直观的方式,把 子网掩码和 IP 地址的关系讲清楚。

一、IP 地址是什么

IP 地址可以理解为 网络中的门牌号。

例如:

192.168.1.23

这表示某一台设备在网络中的地址。

但这里有一个问题:

这个地址属于哪个网络?

就像现实世界:

北京市 海淀区 创业大街 23号

如果不说路名只说 23号,根本无法找到。

IP 地址也一样,它需要知道:

  • 哪一部分表示 网络
  • 哪一部分表示 主机

而这件事情,就是 子网掩码负责的。

二、子网掩码的本质

子网掩码(Subnet Mask)实际上就是:

用来划分 IP 地址中“网络部分”和“主机部分”的规则。

例如 IP 地址:

192.168.1.23

子网掩码:

255.255.255.0

它的意思是:

192.168.1 | 23

意味着前 3 段是 网络号,最后 1 段是 主机号。

这个网络就叫:

192.168.1.0/24

三、为什么叫“掩码”

“掩码”这个名字非常形象。

子网掩码会通过 二进制与运算,把主机部分遮住。

还是 IP 地址:

192.168.1.23

转成二进制:

11000000.10101000.00000001.00010111

子网掩码:

255.255.255.0

二进制:

11111111.11111111.11111111.00000000

两者做 AND 运算:

11000000.10101000.00000001.00000000

结果:

192.168.1.0

这就是 网络地址。

子网掩码的作用就是把网络部分保留,把主机部分遮掉。

四、没有子网掩码会发生什么

如果只有 IP 地址,没有子网掩码,设备就无法判断:

目标 IP 是不是在同一个网络里。

举个例子:

你的电脑:

IP:192.168.1.10
掩码:255.255.255.0

访问:

192.168.1.25

系统会判断:

同一网段

于是直接 ARP 找到对方。

但如果访问:

192.168.2.8

系统会判断:

不同网段

于是数据会发送给 网关(路由器)。

所以子网掩码直接决定了:

  • 哪些设备可以 直接通信
  • 哪些必须 通过路由器

五、为什么家庭网络几乎都是 255.255.255.0

很多家庭路由器默认都是:

255.255.255.0

也就是:

/24

这意味着:

192.168.1.0 – 192.168.1.255

一个网段里最多 254 台设备。

因为:

  • .0 是网络地址
  • .255 是广播地址

所以:

256 - 2 = 254

对于家庭来说 254 台设备已经完全够用了。

六、CIDR 表示法:更现代的写法

现在大部分时间已经不再写:

255.255.255.0

而是写:

192.168.1.0/24

这里的 /24 表示:

前 24 位是网络位

例如:

/16  = 255.255.0.0
/24  = 255.255.255.0
/32  = 单个 IP

这种写法叫 CIDR(无类别域间路由)。

现在几乎所有云服务、路由表、BGP 都使用这种表示法。

七、子网掩码其实是互联网的“分区规则”

如果没有子网掩码,互联网会发生一个严重问题:

所有设备都会认为彼此在同一个网络。

那会发生什么?

ARP 请求会在整个网络中广播。

这会造成网络瞬间崩溃。

所以子网掩码本质上就是给互联网划分区域。

就像城市一样:

国家
省
市
区
街道
门牌号

而 IP 网络也一样:

网络号
子网
主机

八、很多人不知道:IP 地址从来不是单独存在的

一个完整的网络配置,至少包含四个东西:

IP 地址
子网掩码
网关
DNS

其中子网掩码决定网络结构。

如果配置错误,会出现非常诡异的问题,比如:

  • 同网段设备互相访问不了
  • 能 ping 网关但不能上网
  • 只能访问部分服务器

这些问题的根源,很多时候就是子网掩码配置错误。

结语

很多人每天在使用网络,但对子网掩码却几乎没有概念。

然而它的作用非常核心:

IP 地址负责“是谁”,子网掩码负责“在哪个网络”。

两者结合,设备才能判断:

  • 谁是邻居
  • 谁需要通过路由器
  • 数据应该往哪里走

换句话说:

IP 地址决定身份,子网掩码决定位置。

如果把互联网看作城市,那么子网掩码,就是这座城市的行政区划系统。

请在微信客户端打开