🌐 第三章 网络间的通用语言TCP/IP
📄 一句话概括

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 就是那两个"集体名额":网络地址(头)+ 定向广播地址(尾)。

💡 别只背"254",要记住它从哪来

很多人能背出"一个 /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          定向广播 —— 不能用

七、动手 Demo24:算清自家网段的家底

  1. 抄三件套(3.8 学过,这回是用来算): ipconfig /all 抄下 IPv4 地址 / 子网掩码 / 默认网关 三行。

  2. 填一张自己的家底表(假设你是 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 |

  3. 拿 ping 摸一摸这三个号: ping 192.168.1.0 ping 192.168.1.255 ping 192.168.1.1

  4. .0(网络地址)通常不通——它压根不是一台主机,别当成故障
  5. .255(定向广播)在 3.9 试过,多数设备不回应,正常
  6. .1(通常是路由器)一般能通;ping 不到就先看那台设备在不在、防不防 ping

  7. 30 秒实验:找"消失的号码"

    你的网段总共 256 个号,可用 254 个。 但路由器 DHCP 池通常只发 100 个(.100 ~ .199)。 中间那 154 个去哪了?

    答案三笔账:2 个集体号(网络地址 + 广播地址)+ 静态设备占掉的号(路由器、打印机、NAS…)+ 故意留的余量(2.5 的设计)。去路由器管理页看一眼 DHCP 池范围,就能对着这几笔账挨个点名。

  8. 可选:自己算一遍 /25(先别回看图 2)

  9. 192.168.1.0/25 的网络地址、可用范围、广播地址、可用数各是多少?
  10. 算完再对图 2:/25 是 .0、.1~.126、.127、126 个
❓ 自测一下
  1. 一个网段里哪些号不能配给设备?为什么?
  2. /24 网段有多少个可用单播地址?这个数字怎么来的?
  3. 写出计算可用地址数的公式,并解释为什么是"减 2"。
  4. 192.168.1.0/25 的网络地址、可用范围、定向广播分别是什么?
  5. 把 192.168.1.0/24 切成两个 /25,总可用数从 254 变成多少?少掉的号去哪了?
  6. 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(网关)和具体设备的地址。

常见误区:

  1. ❌ "192.168.1.0 也可以配给设备" → 它是网络地址,已被路由表征用代表整段,配出去会造成身份歧义
  2. ❌ "一个网段能接 256 台设备" → /24 下只有 254 个可用,头尾两个不能用
  3. ❌ "可用地址数就是 2ⁿ" → 是 2ⁿ − 2,忘了减 2 是最常见的算错
  4. ❌ "掩码只管能不能互通,跟数量无关" → 掩码直接决定主机位数,也就决定了这个网段能装多少台(/24 是 254,/25 是 126)
  5. ❌ "ping 网络地址不通说明网络故障" → 网络地址不是主机,不通是正常现象,别误诊
  6. ❌ "把网段切细只有好处" → 每切一刀多丢两个号(各段独立的网络地址 + 广播地址),切太碎是在浪费地址
  7. ❌ "127.0.0.1 也是网络地址" → 它是 回环地址,属于单播地址,指向本机自己(收 3.8 / Java 13.1)

八、下一步学什么

相关笔记