公众号旧文
好像还有人不清楚 子网掩码 的作用?
很多人都知道 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 地址决定身份,子网掩码决定位置。
如果把互联网看作城市,那么子网掩码,就是这座城市的行政区划系统。
请在微信客户端打开