3.8 说 IP 地址分成「网络部分 + 主机部分」,本节把镜头推进到单播地址内部:同一个网段里的号码不是每个都能用——主机部分全 0 的叫网络地址(代表整段),全 1 的叫广播地址(代表全段设备)。这两个是"集体的号",装到任何一台设备上都会出事。所以一个 /24 网段真正能用的单播号 = 256 − 2 = 254 个。本节是全课程第一节"要会算"的课:记住 可用数 = 2ⁿ − 2(n = 主机位数),任何掩码都能现算家底。
一、先把"单播地址"这个词钉死
3.9 讲了三种收件形态,本节只讲单播那一种的地址。
| 地址类型 | 指向谁 | 能不能配给设备 |
|---|---|---|
| 单播地址 | 网段里的某一台设备 | ✅ 这才是发给设备的号 |
广播地址(如 192.168.1.255) |
网段内所有设备 | ❌ 它是"全段"的号 |
组播地址(224.0.0.0~239.255.255.255) |
加入某个组的一群设备 | ❌ 它是"某个群"的号 |
本节要讲的就是第一行的内部结构——它不只是"网络部分 + 主机部分"这么简单,主机部分里还藏着两个"非单播"的号。
二、一个网段里的三类号码
(对应上面第一张图)
以最常见的 192.168.1.0/24 为例,最后一字节的 256 个号码(0~255)分成三拨:
| 号码 | 主机部分长相 | 代表谁 | 能配给设备吗 |
|---|---|---|---|
| 网络地址 | 全 0 → 192.168.1.0 |
整个网段本身 | ❌ 不能 |
| 可用单播地址 | 中间的号 → 192.168.1.1 ~ 192.168.1.254 |
网段里的某一台设备 | ✅ 能(254 个) |
| 定向广播地址 | 全 1 → 192.168.1.255 |
网段内所有设备 | ❌ 不能 |
为什么网络地址不能给设备:路由表里 192.168.1.0/24 这行已经在用这个号表示"这一整段"了(收 3.7、3.8)。再把它配给某台设备,路由器就分不清你说的到底是"那台设备"还是"那一段"——就像把"阳光小区"这个名字安在某户人家门上,快递员没法判断该送小区门口还是敲 3 栋 801。
为什么广播地址不能给设备:它就是 3.9 讲的定向广播(主机位全 1),发给它等于对全段喊话。哪台设备用了它,它收到的每一个包都是"全段通报",自己的正常通信反而收不到。
三、本节核心公式:可用数 = 2ⁿ − 2
n = 主机部分的位数。
| 前缀 | 主机位数 n | 总号码 2ⁿ | 可用单播 2ⁿ − 2 | 典型场合 |
|---|---|---|---|---|
/24 |
8 | 256 | 254 | 家用网段(默认就是这个) |
/25 |
7 | 128 | 126 | 把一段劈成两半 |
/26 |
6 | 64 | 62 | 继续往下劈 |
/28 |
4 | 16 | 14 | 小设备段 |
/30 |
2 | 4 | 2 | 路由器之间的连线(只需两台) |
减掉的 2 就是那两个"集体名额":网络地址(头)+ 定向广播地址(尾)。
很多人能背出"一个 /24 有 254 个地址",但掩码一换就傻眼。记住源头就永远不会错:总号码 2ⁿ 个,扣掉头尾各一个。/25 → 2⁷=128,减 2 得 126;/30 → 2²=4,减 2 得 2。任何掩码都能现算。
四、算一个网段的家底:三步法
(配合上面第二张图看)
| 步骤 | 做什么 |
|---|---|
| 1 | 从掩码 / 前缀长度读出主机位数 n |
| 2 | 算数量:总号码 = 2ⁿ,可用 = 2ⁿ − 2 |
| 3 | 定位:主机位全清 0 = 网络地址;主机位全置 1 = 定向广播;两者中间就是可用范围 |
例一:192.168.1.101/24
- 主机位数 n = 8
- 网络地址 192.168.1.0(这是路由表里那一行的写法)
- 可用 192.168.1.1 ~ 192.168.1.254(254 个)
- 定向广播 192.168.1.255
例二:把同一段切成两个 /25(图 2)
| 网段 | 主机位数 | 网络地址 | 可用范围 | 定向广播 | 可用数 |
|---|---|---|---|---|---|
192.168.1.0/25 |
7 | 192.168.1.0 |
.1 ~ .126 |
192.168.1.127 |
126 |
192.168.1.128/25 |
7 | 192.168.1.128 |
.129 ~ .254 |
192.168.1.255 |
126 |
注意最后一行的细节:后半段的广播地址变成了 .255,而前半段是 .127——切分之后,每一段都各有一套自己的头尾。
192.168.1.0/24 原来能装 254 台。切成两个 /25 后:126 + 126 = 252 台——少了 2 个号。
每切一刀,就多出一套"网络地址 + 广播地址"。切成 4 个 /26:62 × 4 = 248 台,比原来少 6 个。
所以 2.5 那种 IP 规划表(静态区 + DHCP 池 + 访客段)不是切得越细越好——每段都在交一笔"头尾税"。
五、A/B/C 类里那几个数字的来历
3.8 认过脸的 A/B/C 类,用本节公式一算就通:
| 类 | 掩码 | 主机位数 | 可用数 |
|---|---|---|---|
| A | 255.0.0.0(/8) |
24 | 2²⁴ − 2 ≈ 1677 万 |
| B | 255.255.0.0(/16) |
16 | 2¹⁶ − 2 = 65534 |
| C | 255.255.255.0(/24) |
8 | 2⁸ − 2 = 254 |
这组数字不是背下来的,是算出来的——随手一个 255.255.255.192(/26)你也能算出 62。这正是本节把它单列一节的意义。
六、和地址规划对上了(收 2.5 旧账)
2.5 那张 IP 规划表里有个当时没细说的规矩:"静态区和 DHCP 池分段划开"。现在能说清原因了:
192.168.1.0/24 的 254 个可用号怎么分
.0 网络地址 —— 不能用
.1 ~ .99 静态区(路由器 .1、服务器 .10、打印机 .20…)
.100 ~ .199 DHCP 池(电脑、手机自动领号)
.200 ~ .254 留余量(2.5 说的"明年加人不用推翻重来")
.255 定向广播 —— 不能用
- 为什么 DHCP 池不敢从
.1发到.254:头尾两个号根本不能用 - 为什么还要留
·200~.254那段不发:2.5 的余量原则——规划到 254 不代表要用满 254
七、动手 Demo24:算清自家网段的家底
-
抄三件套(3.8 学过,这回是用来算):
ipconfig /all抄下 IPv4 地址 / 子网掩码 / 默认网关 三行。 -
填一张自己的家底表(假设你是
192.168.1.101、掩码255.255.255.0): | 项目 | 值 | |---|---| | 主机位数 n | 8 | | 总号码 | 2⁸ = 256 | | 网络地址 |192.168.1.0| | 可用范围 |192.168.1.1 ~ 192.168.1.254| | 可用数 | 256 − 2 = 254 | | 定向广播 |192.168.1.255| -
拿 ping 摸一摸这三个号:
ping 192.168.1.0 ping 192.168.1.255 ping 192.168.1.1 .0(网络地址)通常不通——它压根不是一台主机,别当成故障.255(定向广播)在 3.9 试过,多数设备不回应,正常-
.1(通常是路由器)一般能通;ping不到就先看那台设备在不在、防不防 ping -
30 秒实验:找"消失的号码"
你的网段总共 256 个号,可用 254 个。 但路由器 DHCP 池通常只发 100 个(
.100 ~ .199)。 中间那 154 个去哪了?答案三笔账:2 个集体号(网络地址 + 广播地址)+ 静态设备占掉的号(路由器、打印机、NAS…)+ 故意留的余量(2.5 的设计)。去路由器管理页看一眼 DHCP 池范围,就能对着这几笔账挨个点名。
-
可选:自己算一遍 /25(先别回看图 2)
192.168.1.0/25的网络地址、可用范围、广播地址、可用数各是多少?- 算完再对图 2:
/25是.0、.1~.126、.127、126 个
- 一个网段里哪些号不能配给设备?为什么?
/24网段有多少个可用单播地址?这个数字怎么来的?- 写出计算可用地址数的公式,并解释为什么是"减 2"。
192.168.1.0/25的网络地址、可用范围、定向广播分别是什么?- 把
192.168.1.0/24切成两个/25,总可用数从 254 变成多少?少掉的号去哪了? ping 192.168.1.0不通,说明网络坏了吗?
答案:
① 网络地址(主机位全 0,代表整个网段)和定向广播地址(主机位全 1,代表全段设备)。它们指向的是"集体"而不是"某一台",配给设备会造成身份歧义或收不到自己的包。
② 254 个。总号码 2⁸ = 256,扣掉网络地址 .0 和定向广播 .255 两个。
③ 可用数 = 2ⁿ − 2(n = 主机位数)。因为 2ⁿ 是主机部分能表示的全部号码,其中头一个(全 0)被征用为网络地址、尾一个(全 1)被征用为广播地址,剩下中间的才是能装到设备上的。
④ 网络地址 192.168.1.0;可用 192.168.1.1 ~ 192.168.1.126;定向广播 192.168.1.127(126 个可用)。
⑤ 变成 252 个(126 + 126)。少掉的 2 个是因为每段各有一套头尾:原来的 .0/.255 还在用,新的 .128/.127 又被征用了一次——每切一刀交一份"头尾税"。
⑥ 没坏。.0 是网络地址,代表整段而不是某台主机,本来就不该有设备回应它。真正要 ping 的是 .1(网关)和具体设备的地址。
常见误区:
- ❌ "
192.168.1.0也可以配给设备" → 它是网络地址,已被路由表征用代表整段,配出去会造成身份歧义 - ❌ "一个网段能接 256 台设备" →
/24下只有 254 个可用,头尾两个不能用 - ❌ "可用地址数就是 2ⁿ" → 是 2ⁿ − 2,忘了减 2 是最常见的算错
- ❌ "掩码只管能不能互通,跟数量无关" → 掩码直接决定主机位数,也就决定了这个网段能装多少台(
/24是 254,/25是 126) - ❌ "
ping网络地址不通说明网络故障" → 网络地址不是主机,不通是正常现象,别误诊 - ❌ "把网段切细只有好处" → 每切一刀多丢两个号(各段独立的网络地址 + 广播地址),切太碎是在浪费地址
- ❌ "
127.0.0.1也是网络地址" → 它是 回环地址,属于单播地址,指向本机自己(收 3.8 / Java 13.1)
八、下一步学什么
- ☑ 3.11 IP地址范围的分隔符(子网掩码) ✅ 已完成 —— 点此复习:本节靠掩码算出的网络地址,下一节把掩码本身拆开讲——它为什么能把地址一分为二。
相关笔记
- IP地址范围的分隔符(子网掩码) —— 本节那两道"清 0 / 置 1"的动作,就是它讲的按位 AND
- 接收方是1个还是多个(单播、广播、组播) —— 本节那个"不能用的尾巴",就是它讲过的定向广播
- 通信的对象(IP地址) —— 网络部分 + 主机部分、掩码与前缀长度的出处,本节把主机部分再拆开看
- 数据的发送和接收(IP、IP数据包、路由) —— 路由表里
192.168.1.0/24那行为什么写.0:本节讲清了.0的身份 - 如何构建网络(网络的设计) —— 静态区与 DHCP 池为什么分段、为什么留余量,本节给了数字依据
- 组成网络(局域网的构建) —— DHCP 发门牌时不会发出去的那两个号,就在本节
- 负责传输数据的网络分层(网络接口层与网际层) —— IP 头里的"目标地址"能合法填哪些值,本节给了边界
- 网络为谁而生的(私有网络与互联网) —— 私有段
192.168.x.x的完整范围,本身就是按本节的公式切出来的 - Java 13.1 网络基础 ——
InetAddress、127.0.0.1回环的原始出处