第 9 篇:子网掩码:如何划分“小区”


网络基础系列第 9 篇:子网掩码------IP 地址的"小区围墙"

上一篇我们讲了 IP 地址:互联网的门牌号。今天继续问一个更容易把人绕晕的问题:同样是 IP 地址,系统到底怎么判断"你和我是不是同一个网段"?


开场:为什么 192.168.1.10 和 192.168.1.20 算邻居?

你可能见过这样的 IP 配置:

text 复制代码
192.168.1.10/24
192.168.1.20/24

很多人会下意识觉得:

这俩一看就是同一个网段。

再看这个:

text 复制代码
192.168.1.10/24
192.168.2.10/24

又会觉得:

这俩应该不是同一个网段。

直觉通常没错。

但问题是:

操作系统不是靠"看起来像不像"判断同网段的。

它不懂你的直觉。

它只认规则

这个规则,就是子网掩码

子网掩码的核心作用:

它告诉操作系统:一个 IP 地址里,哪部分是"小区地址"(网络号),哪部分是"房间号"(主机号)。

一句话总结:

子网掩码决定 IP 地址的网络边界,用来判断两个 IP 是否在同一个网段。

再通俗一点:

IP 地址像门牌号,子网掩码决定这个"小区"有多大。

同一个门牌号前缀,不一定就同小区。

同一个小区,也不一定是你肉眼看到的前三段一样。

网络世界不按眼缘分组。它按二进制。这就很工程,也很不浪漫。


🔧 核心概念:为什么需要子网掩码?

在 IPv4 地址的 32 位中,子网掩码用连续的 1 表示网络部分,连续的 0 表示主机部分。

text 复制代码
IP 地址:      192.168.1.10  (11000000.10101000.00000001.00001010)
子网掩码:     255.255.255.0 (11111111.11111111.11111111.00000000)
                 └───────── 网络位 ─────────┘ └─ 主机位 ─┘

为什么要划分网络位和主机位?

因为路由器需要聚合路由。如果每个 IP 都单独一条路由,互联网瞬间瘫痪。

路由表按"网段"组织,而不是按"单个 IP":

text 复制代码
去 192.168.1.0/24 → 走 A 方向
去 10.0.0.0/8    → 走 B 方向

这就像快递分拣:

先按"省 → 市 → 区 → 小区",最后才到"门牌号"。

子网掩码的根本价值:

  1. 路由聚合:减少路由表条目
  2. 广播域控制:隔离广播流量
  3. 地址规划:合理分配有限 IPv4 资源

🔧 同网段判断:系统到底怎么算的?

当一个 IP 包要发出时,操作系统执行以下精确判断流程

text 复制代码
Step 1: 取出本机 IP 和本机掩码
Step 2: 本机网络地址 = 本机 IP & 本机掩码(按位与)
Step 3: 目标网络地址 = 目标 IP & 本机掩码
Step 4: 比较两个网络地址是否相等

按位与规则(只有两个都是 1,结果才是 1):

text 复制代码
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0

举例:判断 192.168.1.10/24 和 192.168.1.20/24

text 复制代码
本机 IP:   192.168.1.10 → 11000000.10101000.00000001.00001010
本机掩码:  255.255.255.0 → 11111111.11111111.11111111.00000000
按位与:                   11000000.10101000.00000001.00000000 → 192.168.1.0

目标 IP:   192.168.1.20 → 11000000.10101000.00000001.00010100
本机掩码:  255.255.255.0 → 11111111.11111111.11111111.00000000
按位与:                   11000000.10101000.00000001.00000000 → 192.168.1.0

网络地址相同 → 同网段 ✅

举例:判断 192.168.1.10/24 和 192.168.2.10/24

text 复制代码
本机网络地址: 192.168.1.0
目标网络地址: 192.168.2.0(计算过程同上)
网络地址不同 → 不同网段 ❌

#mermaid-svg-nYLSJHNj1U08498z{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-nYLSJHNj1U08498z .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-nYLSJHNj1U08498z .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-nYLSJHNj1U08498z .error-icon{fill:#552222;}#mermaid-svg-nYLSJHNj1U08498z .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nYLSJHNj1U08498z .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-nYLSJHNj1U08498z .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nYLSJHNj1U08498z .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nYLSJHNj1U08498z .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-nYLSJHNj1U08498z .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nYLSJHNj1U08498z .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nYLSJHNj1U08498z .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nYLSJHNj1U08498z .marker.cross{stroke:#333333;}#mermaid-svg-nYLSJHNj1U08498z svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nYLSJHNj1U08498z p{margin:0;}#mermaid-svg-nYLSJHNj1U08498z .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nYLSJHNj1U08498z .cluster-label text{fill:#333;}#mermaid-svg-nYLSJHNj1U08498z .cluster-label span{color:#333;}#mermaid-svg-nYLSJHNj1U08498z .cluster-label span p{background-color:transparent;}#mermaid-svg-nYLSJHNj1U08498z .label text,#mermaid-svg-nYLSJHNj1U08498z span{fill:#333;color:#333;}#mermaid-svg-nYLSJHNj1U08498z .node rect,#mermaid-svg-nYLSJHNj1U08498z .node circle,#mermaid-svg-nYLSJHNj1U08498z .node ellipse,#mermaid-svg-nYLSJHNj1U08498z .node polygon,#mermaid-svg-nYLSJHNj1U08498z .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nYLSJHNj1U08498z .rough-node .label text,#mermaid-svg-nYLSJHNj1U08498z .node .label text,#mermaid-svg-nYLSJHNj1U08498z .image-shape .label,#mermaid-svg-nYLSJHNj1U08498z .icon-shape .label{text-anchor:middle;}#mermaid-svg-nYLSJHNj1U08498z .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-nYLSJHNj1U08498z .rough-node .label,#mermaid-svg-nYLSJHNj1U08498z .node .label,#mermaid-svg-nYLSJHNj1U08498z .image-shape .label,#mermaid-svg-nYLSJHNj1U08498z .icon-shape .label{text-align:center;}#mermaid-svg-nYLSJHNj1U08498z .node.clickable{cursor:pointer;}#mermaid-svg-nYLSJHNj1U08498z .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-nYLSJHNj1U08498z .arrowheadPath{fill:#333333;}#mermaid-svg-nYLSJHNj1U08498z .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nYLSJHNj1U08498z .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nYLSJHNj1U08498z .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nYLSJHNj1U08498z .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-nYLSJHNj1U08498z .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nYLSJHNj1U08498z .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-nYLSJHNj1U08498z .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nYLSJHNj1U08498z .cluster text{fill:#333;}#mermaid-svg-nYLSJHNj1U08498z .cluster span{color:#333;}#mermaid-svg-nYLSJHNj1U08498z div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nYLSJHNj1U08498z .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-nYLSJHNj1U08498z rect.text{fill:none;stroke-width:0;}#mermaid-svg-nYLSJHNj1U08498z .icon-shape,#mermaid-svg-nYLSJHNj1U08498z .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-nYLSJHNj1U08498z .icon-shape p,#mermaid-svg-nYLSJHNj1U08498z .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-nYLSJHNj1U08498z .icon-shape .label rect,#mermaid-svg-nYLSJHNj1U08498z .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-nYLSJHNj1U08498z .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-nYLSJHNj1U08498z .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-nYLSJHNj1U08498z :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 相等
不相等
本机 IP: 192.168.1.10/24
本机网络地址

192.168.1.0
目标 IP: 192.168.1.20
目标网络地址

192.168.1.0
目标 IP: 192.168.2.10
目标网络地址

192.168.2.0
比较
同网段

直接通信
比较
不同网段

走网关

这个判断的结果直接影响转发行为:

判断结果 下一跳 通信方式
同网段 目标 IP 本身 ARP 找目标 MAC,二层转发
不同网段 网关 IP ARP 找网关 MAC,三层路由

子网掩码不只考试用。它直接决定数据包第一跳发给谁。掩码配错,包可能第一步就走错。


子网掩码的两种写法

子网掩码常见有两种写法,完全等价

写法一:点分十进制

text 复制代码
255.255.255.0

写法二:CIDR 前缀长度

text 复制代码
/24

为什么 255.255.255.0 = /24

写二进制就清楚了:

text 复制代码
255.255.255.0 = 11111111.11111111.11111111.00000000
                 └────────────── 24 个 1 ──────────────┘

常见掩码对照表(建议熟记):

CIDR 点分十进制 二进制 总地址数 可用主机数
/8 255.0.0.0 11111111.00000000.00000000.00000000 16,777,216 16,777,214
/16 255.255.0.0 11111111.11111111.00000000.00000000 65,536 65,534
/24 255.255.255.0 11111111.11111111.11111111.00000000 256 254
/25 255.255.255.128 11111111.11111111.11111111.10000000 128 126
/26 255.255.255.192 11111111.11111111.11111111.11000000 64 62
/27 255.255.255.224 11111111.11111111.11111111.11100000 32 30
/28 255.255.255.240 11111111.11111111.11111111.11110000 16 14
/29 255.255.255.248 11111111.11111111.11111111.11111000 8 6
/30 255.255.255.252 11111111.11111111.11111111.11111100 4 2
/32 255.255.255.255 11111111.11111111.11111111.11111111 1 1

⚠️ 重要 :可用主机数 = 总地址数 - 2(网络地址 + 广播地址)。但 /31/32 有特殊用途(点对点链路),这里暂不展开。


🔧 为什么不能只看前三段?(打破直觉的案例)

案例一:/23 打破"第三段不同"的直觉

text 复制代码
192.168.1.10/23
192.168.0.20/23

很多人第一反应:第三段不一样,不同网段。

/23 的掩码是 255.255.254.0,网络位是 23 位:

text 复制代码
192.168.1.10:  11000000.10101000.00000001.00001010
192.168.0.20:  11000000.10101000.00000000.00010100
掩码/23:       11111111.11111111.11111110.00000000
                   网络位(23位)          主机位(9位)

比较前 23 位:完全相同同一个网段

这个网段的地址范围是:192.168.0.0 - 192.168.1.255
#mermaid-svg-96Yc2iPiX9iDKsfr{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-96Yc2iPiX9iDKsfr .error-icon{fill:#552222;}#mermaid-svg-96Yc2iPiX9iDKsfr .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-96Yc2iPiX9iDKsfr .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-96Yc2iPiX9iDKsfr .marker{fill:#333333;stroke:#333333;}#mermaid-svg-96Yc2iPiX9iDKsfr .marker.cross{stroke:#333333;}#mermaid-svg-96Yc2iPiX9iDKsfr svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-96Yc2iPiX9iDKsfr p{margin:0;}#mermaid-svg-96Yc2iPiX9iDKsfr .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr .cluster-label text{fill:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr .cluster-label span{color:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr .cluster-label span p{background-color:transparent;}#mermaid-svg-96Yc2iPiX9iDKsfr .label text,#mermaid-svg-96Yc2iPiX9iDKsfr span{fill:#333;color:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr .node rect,#mermaid-svg-96Yc2iPiX9iDKsfr .node circle,#mermaid-svg-96Yc2iPiX9iDKsfr .node ellipse,#mermaid-svg-96Yc2iPiX9iDKsfr .node polygon,#mermaid-svg-96Yc2iPiX9iDKsfr .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-96Yc2iPiX9iDKsfr .rough-node .label text,#mermaid-svg-96Yc2iPiX9iDKsfr .node .label text,#mermaid-svg-96Yc2iPiX9iDKsfr .image-shape .label,#mermaid-svg-96Yc2iPiX9iDKsfr .icon-shape .label{text-anchor:middle;}#mermaid-svg-96Yc2iPiX9iDKsfr .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-96Yc2iPiX9iDKsfr .rough-node .label,#mermaid-svg-96Yc2iPiX9iDKsfr .node .label,#mermaid-svg-96Yc2iPiX9iDKsfr .image-shape .label,#mermaid-svg-96Yc2iPiX9iDKsfr .icon-shape .label{text-align:center;}#mermaid-svg-96Yc2iPiX9iDKsfr .node.clickable{cursor:pointer;}#mermaid-svg-96Yc2iPiX9iDKsfr .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-96Yc2iPiX9iDKsfr .arrowheadPath{fill:#333333;}#mermaid-svg-96Yc2iPiX9iDKsfr .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-96Yc2iPiX9iDKsfr .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-96Yc2iPiX9iDKsfr .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-96Yc2iPiX9iDKsfr .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-96Yc2iPiX9iDKsfr .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-96Yc2iPiX9iDKsfr .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-96Yc2iPiX9iDKsfr .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-96Yc2iPiX9iDKsfr .cluster text{fill:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr .cluster span{color:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-96Yc2iPiX9iDKsfr .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-96Yc2iPiX9iDKsfr rect.text{fill:none;stroke-width:0;}#mermaid-svg-96Yc2iPiX9iDKsfr .icon-shape,#mermaid-svg-96Yc2iPiX9iDKsfr .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-96Yc2iPiX9iDKsfr .icon-shape p,#mermaid-svg-96Yc2iPiX9iDKsfr .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-96Yc2iPiX9iDKsfr .icon-shape .label rect,#mermaid-svg-96Yc2iPiX9iDKsfr .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-96Yc2iPiX9iDKsfr .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-96Yc2iPiX9iDKsfr .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-96Yc2iPiX9iDKsfr :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 192.168.0.0/23

范围: 192.168.0.0 - 192.168.1.255
192.168.0.20
192.168.1.10

案例二:/25 打破"前三段相同"的直觉

text 复制代码
192.168.1.10/25
192.168.1.200/25

前三段完全一样。

/25 的掩码是 255.255.255.128,把 /24 切成两个子网:

text 复制代码
192.168.1.0/25   范围:192.168.1.0 - 192.168.1.127
192.168.1.128/25 范围:192.168.1.128 - 192.168.1.255
  • 192.168.1.10 → 属于 192.168.1.0/25
  • 192.168.1.200 → 属于 192.168.1.128/25

不是同一个网段
#mermaid-svg-TLq27kAviSHH28ue{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-TLq27kAviSHH28ue .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-TLq27kAviSHH28ue .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-TLq27kAviSHH28ue .error-icon{fill:#552222;}#mermaid-svg-TLq27kAviSHH28ue .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-TLq27kAviSHH28ue .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-TLq27kAviSHH28ue .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-TLq27kAviSHH28ue .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-TLq27kAviSHH28ue .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-TLq27kAviSHH28ue .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-TLq27kAviSHH28ue .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-TLq27kAviSHH28ue .marker{fill:#333333;stroke:#333333;}#mermaid-svg-TLq27kAviSHH28ue .marker.cross{stroke:#333333;}#mermaid-svg-TLq27kAviSHH28ue svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-TLq27kAviSHH28ue p{margin:0;}#mermaid-svg-TLq27kAviSHH28ue .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-TLq27kAviSHH28ue .cluster-label text{fill:#333;}#mermaid-svg-TLq27kAviSHH28ue .cluster-label span{color:#333;}#mermaid-svg-TLq27kAviSHH28ue .cluster-label span p{background-color:transparent;}#mermaid-svg-TLq27kAviSHH28ue .label text,#mermaid-svg-TLq27kAviSHH28ue span{fill:#333;color:#333;}#mermaid-svg-TLq27kAviSHH28ue .node rect,#mermaid-svg-TLq27kAviSHH28ue .node circle,#mermaid-svg-TLq27kAviSHH28ue .node ellipse,#mermaid-svg-TLq27kAviSHH28ue .node polygon,#mermaid-svg-TLq27kAviSHH28ue .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-TLq27kAviSHH28ue .rough-node .label text,#mermaid-svg-TLq27kAviSHH28ue .node .label text,#mermaid-svg-TLq27kAviSHH28ue .image-shape .label,#mermaid-svg-TLq27kAviSHH28ue .icon-shape .label{text-anchor:middle;}#mermaid-svg-TLq27kAviSHH28ue .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-TLq27kAviSHH28ue .rough-node .label,#mermaid-svg-TLq27kAviSHH28ue .node .label,#mermaid-svg-TLq27kAviSHH28ue .image-shape .label,#mermaid-svg-TLq27kAviSHH28ue .icon-shape .label{text-align:center;}#mermaid-svg-TLq27kAviSHH28ue .node.clickable{cursor:pointer;}#mermaid-svg-TLq27kAviSHH28ue .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-TLq27kAviSHH28ue .arrowheadPath{fill:#333333;}#mermaid-svg-TLq27kAviSHH28ue .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-TLq27kAviSHH28ue .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-TLq27kAviSHH28ue .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TLq27kAviSHH28ue .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-TLq27kAviSHH28ue .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TLq27kAviSHH28ue .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-TLq27kAviSHH28ue .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-TLq27kAviSHH28ue .cluster text{fill:#333;}#mermaid-svg-TLq27kAviSHH28ue .cluster span{color:#333;}#mermaid-svg-TLq27kAviSHH28ue div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-TLq27kAviSHH28ue .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-TLq27kAviSHH28ue rect.text{fill:none;stroke-width:0;}#mermaid-svg-TLq27kAviSHH28ue .icon-shape,#mermaid-svg-TLq27kAviSHH28ue .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-TLq27kAviSHH28ue .icon-shape p,#mermaid-svg-TLq27kAviSHH28ue .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-TLq27kAviSHH28ue .icon-shape .label rect,#mermaid-svg-TLq27kAviSHH28ue .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-TLq27kAviSHH28ue .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-TLq27kAviSHH28ue .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-TLq27kAviSHH28ue :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 192.168.1.0/24
192.168.1.0/25

0-127
192.168.1.128/25

128-255
192.168.1.10
192.168.1.200

工程教训:永远不要靠"看起来像"判断网段。/24 的巧合让"前三段相同"成了伪规律,一换掩码就翻车。


🔧 特殊地址:网络地址和广播地址

在一个传统 IPv4 子网中,有两个地址不能分配给普通主机

192.168.1.0/24 为例:

类型 地址 二进制(最后 8 位) 用途
网络地址 192.168.1.0 00000000 标识整个网段
可用主机 192.168.1.1 - 254 00000001 - 11111110 分配给设备
广播地址 192.168.1.255 11111111 发给网段内所有主机

#mermaid-svg-OIuSccQjYclWVIKJ{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-OIuSccQjYclWVIKJ .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-OIuSccQjYclWVIKJ .error-icon{fill:#552222;}#mermaid-svg-OIuSccQjYclWVIKJ .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OIuSccQjYclWVIKJ .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OIuSccQjYclWVIKJ .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OIuSccQjYclWVIKJ .marker.cross{stroke:#333333;}#mermaid-svg-OIuSccQjYclWVIKJ svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OIuSccQjYclWVIKJ p{margin:0;}#mermaid-svg-OIuSccQjYclWVIKJ .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OIuSccQjYclWVIKJ .cluster-label text{fill:#333;}#mermaid-svg-OIuSccQjYclWVIKJ .cluster-label span{color:#333;}#mermaid-svg-OIuSccQjYclWVIKJ .cluster-label span p{background-color:transparent;}#mermaid-svg-OIuSccQjYclWVIKJ .label text,#mermaid-svg-OIuSccQjYclWVIKJ span{fill:#333;color:#333;}#mermaid-svg-OIuSccQjYclWVIKJ .node rect,#mermaid-svg-OIuSccQjYclWVIKJ .node circle,#mermaid-svg-OIuSccQjYclWVIKJ .node ellipse,#mermaid-svg-OIuSccQjYclWVIKJ .node polygon,#mermaid-svg-OIuSccQjYclWVIKJ .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OIuSccQjYclWVIKJ .rough-node .label text,#mermaid-svg-OIuSccQjYclWVIKJ .node .label text,#mermaid-svg-OIuSccQjYclWVIKJ .image-shape .label,#mermaid-svg-OIuSccQjYclWVIKJ .icon-shape .label{text-anchor:middle;}#mermaid-svg-OIuSccQjYclWVIKJ .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-OIuSccQjYclWVIKJ .rough-node .label,#mermaid-svg-OIuSccQjYclWVIKJ .node .label,#mermaid-svg-OIuSccQjYclWVIKJ .image-shape .label,#mermaid-svg-OIuSccQjYclWVIKJ .icon-shape .label{text-align:center;}#mermaid-svg-OIuSccQjYclWVIKJ .node.clickable{cursor:pointer;}#mermaid-svg-OIuSccQjYclWVIKJ .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-OIuSccQjYclWVIKJ .arrowheadPath{fill:#333333;}#mermaid-svg-OIuSccQjYclWVIKJ .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OIuSccQjYclWVIKJ .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OIuSccQjYclWVIKJ .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OIuSccQjYclWVIKJ .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-OIuSccQjYclWVIKJ .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OIuSccQjYclWVIKJ .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-OIuSccQjYclWVIKJ .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OIuSccQjYclWVIKJ .cluster text{fill:#333;}#mermaid-svg-OIuSccQjYclWVIKJ .cluster span{color:#333;}#mermaid-svg-OIuSccQjYclWVIKJ div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OIuSccQjYclWVIKJ .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-OIuSccQjYclWVIKJ rect.text{fill:none;stroke-width:0;}#mermaid-svg-OIuSccQjYclWVIKJ .icon-shape,#mermaid-svg-OIuSccQjYclWVIKJ .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-OIuSccQjYclWVIKJ .icon-shape p,#mermaid-svg-OIuSccQjYclWVIKJ .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-OIuSccQjYclWVIKJ .icon-shape .label rect,#mermaid-svg-OIuSccQjYclWVIKJ .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-OIuSccQjYclWVIKJ .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-OIuSccQjYclWVIKJ .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-OIuSccQjYclWVIKJ :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 192.168.1.0/24
网络地址

192.168.1.0

标识网段
可用主机

192.168.1.1 - 192.168.1.254
广播地址

192.168.1.255

发给所有主机

网络地址的作用:

  • 在路由表中表示"这个网段的存在"
  • 不能配置在普通网卡上作为通信地址

广播地址的作用:

  • 目标 MAC = FF:FF:FF:FF:FF:FF
  • 网段内所有设备都会接收并处理
  • ARP 请求就是典型例子

⚠️ 工程提醒 :虽然某些特殊场景(如 /31 点对点链路)可以不遵守这个规则,但入门和多数生产环境请严格遵守。如果你把服务器配成 192.168.1.255/24 然后问为什么不通------先深呼吸,再改 IP。


子网大小怎么算?

核心公式:

text 复制代码
总地址数 = 2^(32 - 前缀长度)
可用主机数 = 总地址数 - 2(网络地址 + 广播地址)

为什么 2^(32 - 前缀长度)

IPv4 共 32 位,前缀长度 = 网络位数量,剩余 = 主机位数量。每个主机位可以取 0 或 1,所以总地址数 = 2^主机位数。

举例:

前缀 主机位数 计算 总地址数 可用主机数
/24 32-24=8 2^8 256 254
/26 32-26=6 2^6 64 62
/16 32-16=16 2^16 65,536 65,534

#mermaid-svg-k6xdIwwpYCQxm7iz{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-k6xdIwwpYCQxm7iz .error-icon{fill:#552222;}#mermaid-svg-k6xdIwwpYCQxm7iz .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-k6xdIwwpYCQxm7iz .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-k6xdIwwpYCQxm7iz .marker{fill:#333333;stroke:#333333;}#mermaid-svg-k6xdIwwpYCQxm7iz .marker.cross{stroke:#333333;}#mermaid-svg-k6xdIwwpYCQxm7iz svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-k6xdIwwpYCQxm7iz p{margin:0;}#mermaid-svg-k6xdIwwpYCQxm7iz .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz .cluster-label text{fill:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz .cluster-label span{color:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz .cluster-label span p{background-color:transparent;}#mermaid-svg-k6xdIwwpYCQxm7iz .label text,#mermaid-svg-k6xdIwwpYCQxm7iz span{fill:#333;color:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz .node rect,#mermaid-svg-k6xdIwwpYCQxm7iz .node circle,#mermaid-svg-k6xdIwwpYCQxm7iz .node ellipse,#mermaid-svg-k6xdIwwpYCQxm7iz .node polygon,#mermaid-svg-k6xdIwwpYCQxm7iz .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-k6xdIwwpYCQxm7iz .rough-node .label text,#mermaid-svg-k6xdIwwpYCQxm7iz .node .label text,#mermaid-svg-k6xdIwwpYCQxm7iz .image-shape .label,#mermaid-svg-k6xdIwwpYCQxm7iz .icon-shape .label{text-anchor:middle;}#mermaid-svg-k6xdIwwpYCQxm7iz .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-k6xdIwwpYCQxm7iz .rough-node .label,#mermaid-svg-k6xdIwwpYCQxm7iz .node .label,#mermaid-svg-k6xdIwwpYCQxm7iz .image-shape .label,#mermaid-svg-k6xdIwwpYCQxm7iz .icon-shape .label{text-align:center;}#mermaid-svg-k6xdIwwpYCQxm7iz .node.clickable{cursor:pointer;}#mermaid-svg-k6xdIwwpYCQxm7iz .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-k6xdIwwpYCQxm7iz .arrowheadPath{fill:#333333;}#mermaid-svg-k6xdIwwpYCQxm7iz .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-k6xdIwwpYCQxm7iz .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-k6xdIwwpYCQxm7iz .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-k6xdIwwpYCQxm7iz .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-k6xdIwwpYCQxm7iz .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-k6xdIwwpYCQxm7iz .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-k6xdIwwpYCQxm7iz .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-k6xdIwwpYCQxm7iz .cluster text{fill:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz .cluster span{color:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-k6xdIwwpYCQxm7iz .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-k6xdIwwpYCQxm7iz rect.text{fill:none;stroke-width:0;}#mermaid-svg-k6xdIwwpYCQxm7iz .icon-shape,#mermaid-svg-k6xdIwwpYCQxm7iz .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-k6xdIwwpYCQxm7iz .icon-shape p,#mermaid-svg-k6xdIwwpYCQxm7iz .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-k6xdIwwpYCQxm7iz .icon-shape .label rect,#mermaid-svg-k6xdIwwpYCQxm7iz .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-k6xdIwwpYCQxm7iz .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-k6xdIwwpYCQxm7iz .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-k6xdIwwpYCQxm7iz :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 前缀长度越短
网络位越少
主机位越多
总地址数越多
前缀长度越长
网络位越多
主机位越少
总地址数越少

⚠️ 易错点/24/16 ,不是大。前缀长度数字越大,网段越小。别记反。


子网划分:把大网段切成小网段

子网划分的核心:从主机位借位,变成网络位

案例:把 /24 切成四个 /26

text 复制代码
原始: 192.168.1.0/24
     网络位24位,主机位8位

需要4个子网 → 4 = 2^2 → 借2位 → 网络位变成26位

划分结果:

子网 地址范围 可用主机数 二进制(最后 8 位)
192.168.1.0/26 192.168.1.0 - 1.63 62 00xxxxxx
192.168.1.64/26 192.168.1.64 - 1.127 62 01xxxxxx
192.168.1.128/26 192.168.1.128 - 1.191 62 10xxxxxx
192.168.1.192/26 192.168.1.192 - 1.255 62 11xxxxxx

#mermaid-svg-7VQUF1EkYHN2SCgs{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-7VQUF1EkYHN2SCgs .error-icon{fill:#552222;}#mermaid-svg-7VQUF1EkYHN2SCgs .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7VQUF1EkYHN2SCgs .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7VQUF1EkYHN2SCgs .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7VQUF1EkYHN2SCgs .marker.cross{stroke:#333333;}#mermaid-svg-7VQUF1EkYHN2SCgs svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7VQUF1EkYHN2SCgs p{margin:0;}#mermaid-svg-7VQUF1EkYHN2SCgs .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs .cluster-label text{fill:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs .cluster-label span{color:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs .cluster-label span p{background-color:transparent;}#mermaid-svg-7VQUF1EkYHN2SCgs .label text,#mermaid-svg-7VQUF1EkYHN2SCgs span{fill:#333;color:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs .node rect,#mermaid-svg-7VQUF1EkYHN2SCgs .node circle,#mermaid-svg-7VQUF1EkYHN2SCgs .node ellipse,#mermaid-svg-7VQUF1EkYHN2SCgs .node polygon,#mermaid-svg-7VQUF1EkYHN2SCgs .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7VQUF1EkYHN2SCgs .rough-node .label text,#mermaid-svg-7VQUF1EkYHN2SCgs .node .label text,#mermaid-svg-7VQUF1EkYHN2SCgs .image-shape .label,#mermaid-svg-7VQUF1EkYHN2SCgs .icon-shape .label{text-anchor:middle;}#mermaid-svg-7VQUF1EkYHN2SCgs .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-7VQUF1EkYHN2SCgs .rough-node .label,#mermaid-svg-7VQUF1EkYHN2SCgs .node .label,#mermaid-svg-7VQUF1EkYHN2SCgs .image-shape .label,#mermaid-svg-7VQUF1EkYHN2SCgs .icon-shape .label{text-align:center;}#mermaid-svg-7VQUF1EkYHN2SCgs .node.clickable{cursor:pointer;}#mermaid-svg-7VQUF1EkYHN2SCgs .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-7VQUF1EkYHN2SCgs .arrowheadPath{fill:#333333;}#mermaid-svg-7VQUF1EkYHN2SCgs .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7VQUF1EkYHN2SCgs .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7VQUF1EkYHN2SCgs .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-7VQUF1EkYHN2SCgs .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-7VQUF1EkYHN2SCgs .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-7VQUF1EkYHN2SCgs .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-7VQUF1EkYHN2SCgs .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7VQUF1EkYHN2SCgs .cluster text{fill:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs .cluster span{color:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7VQUF1EkYHN2SCgs .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-7VQUF1EkYHN2SCgs rect.text{fill:none;stroke-width:0;}#mermaid-svg-7VQUF1EkYHN2SCgs .icon-shape,#mermaid-svg-7VQUF1EkYHN2SCgs .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-7VQUF1EkYHN2SCgs .icon-shape p,#mermaid-svg-7VQUF1EkYHN2SCgs .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-7VQUF1EkYHN2SCgs .icon-shape .label rect,#mermaid-svg-7VQUF1EkYHN2SCgs .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-7VQUF1EkYHN2SCgs .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-7VQUF1EkYHN2SCgs .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-7VQUF1EkYHN2SCgs :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 192.168.1.0/24

256个地址
192.168.1.0/26

办公网
192.168.1.64/26

服务器网
192.168.1.128/26

访客网
192.168.1.192/26

摄像头网

划分的好处:

  • 控制广播域大小(减少广播影响范围)
  • 便于安全隔离(不同子网间走路由,可加防火墙)
  • 便于路由聚合(减小路由表)
  • 地址规划更清晰

🔧 掩码配错会发生什么?(典型故障案例)

掩码配错是非常经典的网络故障来源。来看两个典型案例:

案例一:掩码配得太大(/24 配成 /16)

text 复制代码
正确配置:A: 192.168.1.10/24  网关: 192.168.1.1
错误配置:A: 192.168.1.10/16  ← 掩码从 /24 被改成了 /16

故障现象:

  • A ping 192.168.2.20 失败
  • A 的 ip neigh 显示 192.168.2.20 的条目为 FAILED
  • 抓包能看到 A 发出 ARP 请求 who-has 192.168.2.20

根本原因:

A 用 /16 掩码计算后发现 192.168.2.20 和自己同网段(都在 192.168.0.0/16 内),于是尝试 ARP 直连。但 B 实际在另一个二层网络,ARP 永远没人回复。
#mermaid-svg-ZI26sKXnVz5U6q0a{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ZI26sKXnVz5U6q0a .error-icon{fill:#552222;}#mermaid-svg-ZI26sKXnVz5U6q0a .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ZI26sKXnVz5U6q0a .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ZI26sKXnVz5U6q0a .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ZI26sKXnVz5U6q0a .marker.cross{stroke:#333333;}#mermaid-svg-ZI26sKXnVz5U6q0a svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ZI26sKXnVz5U6q0a p{margin:0;}#mermaid-svg-ZI26sKXnVz5U6q0a .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a .cluster-label text{fill:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a .cluster-label span{color:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a .cluster-label span p{background-color:transparent;}#mermaid-svg-ZI26sKXnVz5U6q0a .label text,#mermaid-svg-ZI26sKXnVz5U6q0a span{fill:#333;color:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a .node rect,#mermaid-svg-ZI26sKXnVz5U6q0a .node circle,#mermaid-svg-ZI26sKXnVz5U6q0a .node ellipse,#mermaid-svg-ZI26sKXnVz5U6q0a .node polygon,#mermaid-svg-ZI26sKXnVz5U6q0a .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ZI26sKXnVz5U6q0a .rough-node .label text,#mermaid-svg-ZI26sKXnVz5U6q0a .node .label text,#mermaid-svg-ZI26sKXnVz5U6q0a .image-shape .label,#mermaid-svg-ZI26sKXnVz5U6q0a .icon-shape .label{text-anchor:middle;}#mermaid-svg-ZI26sKXnVz5U6q0a .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ZI26sKXnVz5U6q0a .rough-node .label,#mermaid-svg-ZI26sKXnVz5U6q0a .node .label,#mermaid-svg-ZI26sKXnVz5U6q0a .image-shape .label,#mermaid-svg-ZI26sKXnVz5U6q0a .icon-shape .label{text-align:center;}#mermaid-svg-ZI26sKXnVz5U6q0a .node.clickable{cursor:pointer;}#mermaid-svg-ZI26sKXnVz5U6q0a .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ZI26sKXnVz5U6q0a .arrowheadPath{fill:#333333;}#mermaid-svg-ZI26sKXnVz5U6q0a .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ZI26sKXnVz5U6q0a .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ZI26sKXnVz5U6q0a .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ZI26sKXnVz5U6q0a .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ZI26sKXnVz5U6q0a .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ZI26sKXnVz5U6q0a .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ZI26sKXnVz5U6q0a .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ZI26sKXnVz5U6q0a .cluster text{fill:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a .cluster span{color:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ZI26sKXnVz5U6q0a .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ZI26sKXnVz5U6q0a rect.text{fill:none;stroke-width:0;}#mermaid-svg-ZI26sKXnVz5U6q0a .icon-shape,#mermaid-svg-ZI26sKXnVz5U6q0a .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ZI26sKXnVz5U6q0a .icon-shape p,#mermaid-svg-ZI26sKXnVz5U6q0a .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ZI26sKXnVz5U6q0a .icon-shape .label rect,#mermaid-svg-ZI26sKXnVz5U6q0a .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ZI26sKXnVz5U6q0a .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ZI26sKXnVz5U6q0a .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ZI26sKXnVz5U6q0a :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 主机A

192.168.1.10/16

掩码配大了
误判:目标 192.168.2.20

和我同网段
直接 ARP 问 192.168.2.20 的 MAC
对方不在同一二层网络

ARP 无响应
通信失败 ❌

案例二:掩码配得太小(/24 配成 /25)

text 复制代码
主机A: 192.168.1.10/25  网关: 192.168.1.1/25
主机B: 192.168.1.200/25 网关: 192.168.1.129/25(假设)

故障现象:

  • A 和 B 互相 ping 不通
  • 但 A 能 ping 通自己的网关
  • B 能 ping 通自己的网关

根本原因:

/25 将原来的 /24 切成了两个子网,A 和 B 不在同一个子网,需要经过路由器才能通信。但如果路由器没配置两个子网之间的路由,就无法通信。

排障提示:掩码配错时,IP 看起来没错,网关也配了,但系统根本没打算用网关。它以为对方就在隔壁,结果隔壁其实是另一个城市。掩码错了,世界观就错了。


🔧 Linux 命令速查

查看本机 IP 和掩码:

bash 复制代码
ip addr

输出示例:

text 复制代码
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
    inet 192.168.1.10/24 brd 192.168.1.255 scope global eth0
字段 含义
192.168.1.10/24 本机 IP + 前缀长度
brd 192.168.1.255 广播地址
scope global 全局有效(非本地回环)

查看路由表(确认直连网段和默认网关):

bash 复制代码
ip route

输出示例:

text 复制代码
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.10
default via 192.168.1.1 dev eth0
字段 含义
192.168.1.0/24 dev eth0 直连网段,从 eth0 出去
default via 192.168.1.1 默认网关

判断两个 IP 是否同网段(手动计算):

bash 复制代码
# 安装工具(如果需要)
sudo apt install ipcalc   # Debian/Ubuntu
# 或
sudo yum install ipcalc   # CentOS/RHEL

ipcalc 192.168.1.10/24 192.168.1.20

排查掩码问题的检查清单:

  1. ip addr 里的 /xx 是否符合预期?
  2. ip route 里的直连路由是否符合预期?
  3. 访问同网段目标时,ip neigh 能否解析到 MAC?
  4. 访问不同网段目标时,包是否走了网关?(用 tcpdump 确认)
  5. ARP 是否在错误地找远端 IP?

排障时不要只盯着 IP。IP 后面的 /24/16/26 有时候才是真凶。它们很短,但很能惹事。


🔧 与前几篇的关系:完整的数据发送流程

现在可以把前几篇的知识完整串起来了:
#mermaid-svg-eWy4xqYGsA7KGKDy{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-eWy4xqYGsA7KGKDy .error-icon{fill:#552222;}#mermaid-svg-eWy4xqYGsA7KGKDy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-eWy4xqYGsA7KGKDy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-eWy4xqYGsA7KGKDy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-eWy4xqYGsA7KGKDy .marker.cross{stroke:#333333;}#mermaid-svg-eWy4xqYGsA7KGKDy svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-eWy4xqYGsA7KGKDy p{margin:0;}#mermaid-svg-eWy4xqYGsA7KGKDy .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy .cluster-label text{fill:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy .cluster-label span{color:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy .cluster-label span p{background-color:transparent;}#mermaid-svg-eWy4xqYGsA7KGKDy .label text,#mermaid-svg-eWy4xqYGsA7KGKDy span{fill:#333;color:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy .node rect,#mermaid-svg-eWy4xqYGsA7KGKDy .node circle,#mermaid-svg-eWy4xqYGsA7KGKDy .node ellipse,#mermaid-svg-eWy4xqYGsA7KGKDy .node polygon,#mermaid-svg-eWy4xqYGsA7KGKDy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-eWy4xqYGsA7KGKDy .rough-node .label text,#mermaid-svg-eWy4xqYGsA7KGKDy .node .label text,#mermaid-svg-eWy4xqYGsA7KGKDy .image-shape .label,#mermaid-svg-eWy4xqYGsA7KGKDy .icon-shape .label{text-anchor:middle;}#mermaid-svg-eWy4xqYGsA7KGKDy .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-eWy4xqYGsA7KGKDy .rough-node .label,#mermaid-svg-eWy4xqYGsA7KGKDy .node .label,#mermaid-svg-eWy4xqYGsA7KGKDy .image-shape .label,#mermaid-svg-eWy4xqYGsA7KGKDy .icon-shape .label{text-align:center;}#mermaid-svg-eWy4xqYGsA7KGKDy .node.clickable{cursor:pointer;}#mermaid-svg-eWy4xqYGsA7KGKDy .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-eWy4xqYGsA7KGKDy .arrowheadPath{fill:#333333;}#mermaid-svg-eWy4xqYGsA7KGKDy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-eWy4xqYGsA7KGKDy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-eWy4xqYGsA7KGKDy .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-eWy4xqYGsA7KGKDy .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-eWy4xqYGsA7KGKDy .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-eWy4xqYGsA7KGKDy .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-eWy4xqYGsA7KGKDy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-eWy4xqYGsA7KGKDy .cluster text{fill:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy .cluster span{color:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-eWy4xqYGsA7KGKDy .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-eWy4xqYGsA7KGKDy rect.text{fill:none;stroke-width:0;}#mermaid-svg-eWy4xqYGsA7KGKDy .icon-shape,#mermaid-svg-eWy4xqYGsA7KGKDy .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-eWy4xqYGsA7KGKDy .icon-shape p,#mermaid-svg-eWy4xqYGsA7KGKDy .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-eWy4xqYGsA7KGKDy .icon-shape .label rect,#mermaid-svg-eWy4xqYGsA7KGKDy .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-eWy4xqYGsA7KGKDy .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-eWy4xqYGsA7KGKDy .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-eWy4xqYGsA7KGKDy :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 是

应用要访问目标 IP
系统查看本机 IP 和掩码
计算目标是否同网段
同网段?
下一跳 = 目标 IP
查路由表获取网关 IP
下一跳 = 网关 IP
ARP:下一跳 IP → 下一跳 MAC
封装以太网帧

目标 MAC = 下一跳 MAC
交换机根据目标 MAC 转发
到达下一跳设备

各层职责总结:

角色 负责的问题 上一篇
IP 地址 最终目标是谁 第 8 篇
子网掩码 目标是否和我同网段 本篇
路由表 不同网段时,下一跳 IP 是谁 第 10 篇预告
ARP 下一跳 IP 对应哪个 MAC 第 6 篇
交换机 目标 MAC 在哪个端口 第 7 篇

这张表非常重要。如果你能把这几个角色分清,很多网络问题会从"一团乱麻"变成"按流程排查"。排障不是玄学,排障是把问题放回正确的层次。


常见误区

误区一:前三段一样就是同网段

不对。

这只在 /24 下巧合成立。

  • /25:前三段一样可能不同网段
  • /23:第三段不一样可能是同网段

判断同网段要看掩码,不要只看眼缘。网络不相信缘分。

误区二:/24 比 /16 大

不对。

/24 前 24 位是网络位,主机位 8 位 → 256 个地址

/16 前 16 位是网络位,主机位 16 位 → 65536 个地址

前缀长度越短,网段越大;前缀长度越长,网段越小。 前缀长度不是衣服尺码。

误区三:有默认网关就一定会走网关

不对。

只有当目标不在本机直连网段时,才会查路由表找网关。

如果掩码配错,系统误判目标是直连网段,就会尝试 ARP 直连,网关配置了也没用。

网关坐在那里等半天,包根本没来。

误区四:网络地址和广播地址可以随便分配给主机

通常不行。

  • 网络地址(如 192.168.1.0/24.0)用于标识网段
  • 广播地址(如 .255)用于发给网段内所有主机

虽然点对点链路(/31)等特殊场景有例外,但入门和多数生产环境请严格遵守。

生产环境最怕"我看网上有人这么干"。网上还有人把数据库端口开公网裸奔,不能学。


小结

这一篇我们讲了子网掩码。

核心知识点:

  1. 子网掩码决定 IP 地址中哪部分是网络位、哪部分是主机位。
  2. /24 表示前 24 位是网络位,等价于 255.255.255.0
  3. 判断同网段:(本机 IP & 本机掩码) == (目标 IP & 本机掩码)
  4. 网络地址相同才是同网段,不能单看前三段。
  5. 前缀越短(如 /16)网段越大,前缀越长(如 /30)网段越小。
  6. 一个子网通常有:网络地址、可用主机地址、广播地址。
  7. 掩码配错会导致主机误判目标是否直连,引发通信失败。
  8. 同网段 → ARP 找目标 MAC;不同网段 → ARP 找网关 MAC。
  9. ip addrip route 是排查掩码问题的关键命令。

一句话总结:

IP 地址告诉你门牌号,子网掩码告诉你这个门牌属于哪个小区。 判断清楚"小区边界",系统才知道该直接敲门还是先去物业。

和前几篇连起来:

IP 管远方,MAC 管眼前;ARP 找脸面,交换机找门牌;掩码划边界,路由定方向。


下一篇预告

下一篇我们继续讲:

第 10 篇:路由表------数据包的导航仪

当目标不在同一个网段时,系统怎么决定下一跳是谁?

默认路由是什么?

为什么有时候明明配置了网关,包却不从那里走?

路由表和掩码、ARP、交换机如何协作?

下一篇,我们把数据包出门前看的那张"导航地图"讲清楚。


相关推荐
Jun6261 小时前
QT(12)-制作lib库
开发语言·qt
Java面试题总结1 小时前
C#12 中的 Using Alias
开发语言·windows·c#
加号31 小时前
【C#】 ASCII 码转字符串技术解析
开发语言·c#
我叫黑大帅2 小时前
通过php 中的Route:: 的写法了解什么是静态类调用
后端·面试·php
Cloud_Shy6182 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 33 - 35)
开发语言·人工智能·笔记·python·学习方法
星恒随风2 小时前
C++ 类和对象入门(五):初始化列表、explicit 和 static 成员详解
开发语言·c++·笔记·学习·状态模式
艾利克斯冰2 小时前
Java 设计模式-行为型模式(更新中)
java·开发语言·设计模式
倒霉蛋小马2 小时前
Java新特性:record关键字
java·开发语言
budingxiaomoli3 小时前
Spring日志
java·开发语言