网络里成千上万台设备,A 要给 B 发数据,怎么找到 B?靠 IP 地址——它就是网络世界的"门牌号"。
但数据不是一步飞到终点的,它要经过很多路由器接力转发(像快递中转)。路由器怎么知道往哪转?它只看 山IP 地址里的"网络部分"——同一网络的一起走,不同网络的走对应出口。
所以 IP 地址必须能被切成两块:网络号(你在哪个网)+ 主机号(你是网里哪台)。
IPv4 地址是 32 位二进制,为了好记,切成 4 段(每段 8 位 = 1 字节),每段转成十进制,用点隔开,叫"点分十进制"。
0 ~ 255,一共 256 个数。看一个二进制数是多少,就把为 1 的那几位对应的权值加起来。8 位的权值固定:
| 位置 | 第1位 | 第2位 | 第3位 | 第4位 | 第5位 | 第6位 | 第7位 | 第8位 |
|---|---|---|---|---|---|---|---|---|
| 权值 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
例:11110000 = 128+64+32+16 = 240 | 11000000 = 128+64 = 192 | 11100000 = 224
掩码也是 32 位。它的规则是:左边连续一串 1(对应网络位),右边连续一串 0(对应主机位),中间不会夹生。
↑ 这片是最后一段(192)。前 2 位=1(网络,锁死)|后 6 位=0(主机,能变)
192 后面有 6 个 0 → 说明主机位有 6 位 →
这段能装 2⁶ = 64 个地址 → 这就是 块大小 = 64。
看真题卡壳?全是这四个词的锅。从最底下搭一遍。
像快递地址 幸福小区3栋 802室:小区决定送到哪个区域,门牌决定哪一户。
IP 32 位也拼成两截:网络号(哪个网络)+ 主机号(网里哪台机器)。路由器先按网络号把包送到正确的网络,进了网络再按主机号送到具体机器。
IP 自己不说前几位是网络号,靠掩码划:左边一串 1 = 网络号,右边一串 0 = 主机号。
掩码 255.255.255.0 = 11111111.11111111.11111111.00000000
所以 /24 和 255.255.255.0 说的是同一件事:前 24 位网络、后 8 位主机。
公司大网 192.168.1.0/24(254 台),要分给财务部、技术部、行政部各一组——把大网切成几个小组,每组就是一个"子网"。作用:隔离 + 好管理。(就像小区分成 A 区/B 区/C 区)
/24 时,最后 8 位全给主机号,用来数"第几台机器":
8 位主机号能表示 2⁸ = 256 个地址(可用 254 台)
要分小组,就得有"组号"。于是从这 8 位里,切最左边 2 位出来当组号:
↑ 组号这 2 位,本来是给主机的,现在被"借"去当组号了
这 2 位本来是给主机的,现在被"借"去当组号了 → 这就叫"借位"。
| 部分 | 位数 | 能表示多少 |
|---|---|---|
| 组号(借来的) | 2 位 | 2² = 4 个组(4 个子网) |
| 主机号(剩下的) | 6 位 | 2⁶ = 64 个地址 → 每组可用 64 − 2 = 62 台 |
组号 2 位能排出 00/01/10/11 四种 → 正好 4 个组。
令 k = 借位数(子网号位数),h = 剩余主机号位数。它俩是同一块蛋糕切出的两半:
k + h = 原始主机位数(不变量)
k = 新前缀 − 旧前缀(借了几位)h = 32 − 新前缀(还剩几位)k + h = 32 − 旧前缀 = 原始主机位数(永远成立)| k 借位 | 子网数 2^k | h 主机位 | 每网可用 2^h−2 | 新前缀 |
|---|---|---|---|---|
| 0 | 1 | 8 | 254 | /24 |
| 1 | 2 | 7 | 126 | /25 |
| 2 | 4 | 6 | 62 | /26 |
| 3 | 8 | 5 | 30 | /27 |
| 4 | 16 | 4 | 14 | /28 |
| 5 | 32 | 3 | 6 | /29 |
| 6 | 64 | 2 | 2 | /30 |
竖着看:k 每 +1 → 子网数翻倍、h 减 1、每网主机砍半。k + h 恒等于 8。
块大小 = 每段掩码把这一整段(256 个地址)切成了几块,每块多大。
算法 A(好算):块大小 = 256 − 掩码最后一段 → 256 − 192 = 64
算法 B(本质):数掩码二进制后面有几个 0,块大小 = 2^(0的个数) → 192=11000000,6 个 0,2⁶ = 64
0 ~ 255,数一数:0 到 255 一共 256 个数(别忘了算上 0)。| 掩码末段 | 二进制 | 后面 0 的个数 | 块大小 | 每块可用主机(−2) |
|---|---|---|---|---|
| 0 | 00000000 | 8 | 256 | 254 |
| 128 | 10000000 | 7 | 128 | 126 |
| 192 | 11000000 | 6 | 64 | 62 |
| 224 | 11100000 | 5 | 32 | 30 |
| 240 | 11110000 | 4 | 16 | 14 |
| 248 | 11111000 | 3 | 8 | 6 |
| 252 | 11111100 | 2 | 4 | 2 |
| 254 | 11111110 | 1 | 2 | 0 |
规律:掩码每多一个 1,块大小砍一半 → 256,128,64,32,16,8,4,2。
255.255.0.0 = /16),变化横跨多段,必须用万能公式:可用主机 = 2^(32 − 前缀长度) − 2
| 前缀 | 掩码 | 主机位 | 块大小 | 可用主机 |
|---|---|---|---|---|
| /8 | 255.0.0.0 | 24 | 2²⁴=1677万 | 16,777,214 |
| /16 | 255.255.0.0 | 16 | 2¹⁶=65536 | 65,534 |
| /24 | 255.255.255.0 | 8 | 256 | 254 |
| /26 | 255.255.255.192 | 6 | 64 | 62 |
| /27 | 255.255.255.224 | 5 | 32 | 30 |
判断:斜杠数字 ÷ 8 = 固定前几段。固定了前 3 段(/24~30)才可以用"末段减法";否则一律用万能公式。
块大小定好后,整个网段就被切成等宽格子。每格里要记住三条规矩:
AND 掩码(逐位与)。10000010,192 = 11000000 → AND = 10000000 = 128。(前面都是 1,结果不变)题目:"某部门有 50 台主机,从 192.168.1.0 里划子网,掩码选多少?"
这是倒过来:不是给掩码求范围,而是给"要装多少人"求掩码。
11000000 = 192172.16.5.200,掩码 255.255.255.224,网络地址 + 可用主机数?答案 A
块大小 = 256 − 224 = 32(224=11100000,5 个 0 → 2⁵=32)。10.20.30.100,掩码 255.255.255.240,网络地址 + 广播地址?答案 A
块大小 = 256 − 240 = 16(240=11110000,4 个 0)。255.255.255.248,每个子网最多容纳多少台主机?答案 A
块大小 = 256 − 248 = 8。192.168.1.0 划子网,掩码选?答案 B
要满足 2^n − 2 ≥ 25:2⁴=16(14<25✗);2⁵=32(30≥25✓)→ 主机位 5。11100000 = 224。192.168.1.0/24 划分为多个子网,若某子网的掩码是 255.255.255.192,则该网段最多可划分为几个子网?每个子网可用主机数?答案:最多划分 4 个子网,每个子网可用主机 62 台
/24 = 前 24 位网络号、后 8 位主机号。原本一整段能装 2⁸ = 256 个地址,可用 254 台。
192 = 11000000,比 /24 多出 2 个 1 → 网络位从 24 变 26,多借 2 位。
原来 8 位主机 = 现在的「子网号 2 位 + 主机号 6 位」
核心动作:从原来的"主机位"里,借走 2 位当"子网号"。原来 8 位主机 → 现在 2 位子网 + 6 位主机。
只看"借走了几位":借 2 位 → 子网数 = 2² = 4 个。
(借来的 2 位能组合出 00 / 01 / 10 / 11 四种,各对应一个子网号)
只看"剩下的主机位":8 − 2 = 6 位 → 块大小 2⁶ = 64 → 可用 64 − 2 = 62 台。
(减 2:块头网络地址、块尾广播地址都不能给主机)
| 子网 | 子网号 | 范围(末段) | 网络地址 | 广播地址 | 可用主机 |
|---|---|---|---|---|---|
| 1 | 00 | 0~63 | 192.168.1.0 | 192.168.1.63 | .1~.62(62台) |
| 2 | 01 | 64~127 | 192.168.1.64 | 192.168.1.127 | .65~.126(62台) |
| 3 | 10 | 128~191 | 192.168.1.128 | 192.168.1.191 | .129~.190(62台) |
| 4 | 11 | 192~255 | 192.168.1.192 | 192.168.1.255 | .193~.254(62台) |
4 个子网 × 62 = 248 台(原 254 台少的 6 台,就是被 4 个新网络/广播地址吃掉的)。
格头 .0 / .64 / .128 / .192 正好是块大小 64 切出来的,完全吻合。
2^k (k = 新网络位 − 旧网络位)32 − 新网络位2^主机位 | 可用主机 = 2^主机位 − 22^n − 2 ≥ 需要的主机数 定主机位,再倒推掩码