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

通信的对象不是"那台电脑",而是它的 IP 地址——网络世界里认地址、不认机器。IP 地址分两截:网络部分(在哪个网络)+ 主机部分(网里的哪台设备),中间的分界线由子网掩码(或 /24 这种前缀长度)标出来。路由器之所以敢把包往某个方向扔,就是因为它只看网络部分。

一、通信的对象是"地址",不是"设备"

寄快递时,收件栏写的是地址,不是"张三本人"。网络里一模一样:包的头上写的是 IP 地址,沿途所有设备都只认这个号。

💡 为什么非要强调"对象"这两个字

因为 IP 地址跟着位置走,不跟着机器走。同一台笔记本:在家是 192.168.1.101,到公司变成 10.0.0.37,连手机热点又换一个。它是"当前接入位置的门牌"——人还是那个人,门牌换了。

二、IP 地址长什么样

三、本节核心:IP 地址分成两截

(对应上面第一张图)

部分 位置 回答的问题
网络部分 前面若干位 这台设备在哪个网络里
主机部分 后面剩下的位 这个网络里的哪台设备

两个类比:

为什么非要这么分(本节最值钱的一句):

路由器只需要看网络部分,就能决定往哪个方向送。

所以路由表里存的全是网段,而不是一台台设备的地址——3.7 那张表里「网络目标」那一列的 192.168.1.0/24,正是这个设计的结果。

顺带把 2.4 那句话升级成正式说法:同一网络部分 = 同一个 LAN(同一个网段)。

四、分界线画在哪:子网掩码与前缀长度

同一件事,两种写法(完全等价):

写法 样子 读法
前缀长度 192.168.1.0/24 前 24 位是网络部分,剩下 8 位是主机部分
子网掩码 255.255.255.0 是 1 的位 = 网络部分;是 0 的位 = 主机部分

换算窍门一句话:255 就是 8 个 1。所以 255.255.255.0 = 24 个 1 = /24。

常见三档(教材里的 A/B/C 类,会认即可):

掩码 前缀 网络部分 主机部分能装多少台 历史分类
255.0.0.0 /8 前 8 位 一千六百多万台 A 类(1~126 开头)
255.255.0.0 /16 前 16 位 六万五千多台 B 类(128~191 开头)
255.255.255.0 /24 前 24 位 254 台 C 类(192~223 开头)
💡 关于"地址分类",知道它是历史就好

早期按开头数字固定分 A/B/C 类,切得又粗又浪费(一个 B 类带六万多台,多数公司根本用不满)。现在改成按需任意切分(前缀长度想设多少设多少,/25、/26 都行)。A/B/C 用来认脸,实际工程看前缀长度。

另外两个特殊值:127.x.x.x 是本机回环(Java 13.1 的 127.0.0.1),224 以上是组播和保留段。

五、判断"是不是一个网段"——排障第一步

(对应上面第二张图)

拿到两台设备的地址 + 掩码,把各自的网络部分取出来一比:

这就是 2.4 那句"同前缀 = 同一个 LAN"的正式算法,也是排查"为什么这台能连、那台不能连"时最先算的一步。

顺带把 2.5 的设计意图坐实了——给网络分段是为了:

  1. 隔离广播:一个网段里的广播不会淹到别的网段
  2. 限制故障范围:某段出问题不至于全网瘫
  3. 方便管理:访客网络单独划一段、办公区一段、服务器一段(2.5 的 IP 规划表)

所以家里路由器常见两段:主网 192.168.1.x、访客 Wi-Fi 192.168.2.x——访客设备压根不在你的网段里,这才叫隔离。

六、私有 IP 与全局 IP(收 1.2 旧账)

对照本节的知识点说:私有 IP 的网络部分,只在自家门里算数——出了围墙,路由器看的是 NAT 换过的那套号。

七、IPv4 不够用了 → 才有 IPv6

八、动手 Demo22:算出自己的网段

  1. 打开命令行(Win+R → cmd),看三件套: ipconfig /all
  2. 找三行:IPv4 地址、子网掩码、默认网关
  3. 1.2 看过 IP、3.7 用过网关,本节把掩码这一行补上——它告诉你"前多少位是网络部分"

  4. 手工判断同网段(假设你的是 192.168.1.101,掩码 255.255.255.0):

  5. 你的网络部分 = 192.168.1
  6. 手机若拿到 192.168.1.102 → 网络部分同为 192.168.1 → 同段,互相直接送
  7. 打印机若被设成了 192.168.2.5 → 网络部分 192.168.2 → 不同段,它每次通信都得先过路由器
  8. 坑点提醒:打印机配错网段是最常见的"能开机但连不上"原因之一(收 2.5 的静态 IP 规划)

  9. 回看路由表,这回看得懂了: route print -4

  10. 「网络目标」那一列写的就是"网络部分 + 前缀长度",例如 192.168.1.0/24——3.7 你看过这张表,本节终于看懂它的写法了
  11. 每一行代表一个网段的方向,而不是一台设备的方向

  12. 30 秒实验:把掩码改成 /25,看世界怎么变

  13. 192.168.1.100/25 的网络部分是 192.168.1.0
  14. 192.168.1.200/25 的网络部分却是 192.168.1.128
  15. 结论:同样一串地址,掩码一变,网段的划法就变——所以"前 3 段一样就同网段"这句话只在 /24 下成立(见误区 3)

  16. 可选:ping 192.168.1.255(本网段的广播地址,主机部分全 1)

  17. 有回音、没回音都正常(多数系统默认不响应),主要是体会"网段"这个范围的存在
  18. 对照记忆:主机部分全 0 = 网络地址(如 192.168.1.0,代表整个网段);全 1 = 广播地址(192.168.1.255,代表"网段里所有设备")
❓ 自测一下
  1. 为什么说"通信的对象是 IP 地址,不是设备"?
  2. IP 地址分成哪两截?两者的分界线由什么决定?
  3. 192.168.1.0/24 和 255.255.255.0 是什么关系?
  4. 掩码 255.255.255.0 换成前缀长度是多少?为什么?
  5. 192.168.1.101/24 和 192.168.2.101/24 是同一个网段吗?判定的后果是什么?
  6. 路由器为什么不需要记住每一台设备的地址?

答案: ① 因为 IP 跟着接入位置走、换网络就换号(MAC 才是跟着机器走的那张身份证);网络里所有转发决策都基于地址。 ② 网络部分(在哪个网络)+ 主机部分(网里哪台设备);分界线由子网掩码 / 前缀长度决定,不由数字本身决定。 ③ 两者完全等价,都在说"前 24 位是网络部分":/24 是速记写法,255.255.255.0 是展开写法(255 = 8 个 1)。 ④ /24。因为 255 对应 8 个 1,三个 255 就是 24 个 1,正好是网络部分的位数。 ⑤ 不是。前者网络部分是 192.168.1,后者是 192.168.2——不同段,它们之间通信必须经过路由器(各自先把包交给自己的默认网关)。 ⑥ 因为它只需要看网络部分就能决定方向;表里存网段(如 192.168.1.0/24)比存几百万台设备省太多,这也是 IP 地址切成两截的根本理由。

常见误区:

  1. ❌ "IP 地址是设备的身份证/名字" → IP 是位置,换网络就换号;跟机器绑定的是 MAC(3.2)
  2. ❌ "子网掩码是另一个 IP 地址" → 它是一把尺子,只用来量"前多少位算网络部分",不能当门牌用
  3. ❌ "前 3 段一样就一定是同一个网段" → 只在 /24 下成立。掩码是 /25 时,192.168.1.100 和 192.168.1.200 就分属两个网段了
  4. ❌ "网络部分和主机部分由数字本身定死" → 由掩码 / 前缀长度决定,同一串地址配不同掩码能划出不同的段
  5. ❌ "同一个网段里通信也要过路由器" → 同段走交换机直接送达(3.2 接口层),只有跨段才交给网关(3.7)
  6. ❌ "IPv4 地址够用" → 早就不够,正因为如此才有 NAT(1.2)和 IPv6

九、下一步学什么

相关笔记