【网络基础系列】08告别反人类的二进制!CIDR与网络计算的“十进制秒杀法则”

发布时间:2026/7/25 2:38:37

【网络基础系列】08告别反人类的二进制!CIDR与网络计算的“十进制秒杀法则” 大家好我是那个坚信“基础不牢地动山摇”正在向数据平台可靠性工程师DPRE死磕的 28 岁转行新人。前两天我刚把 IPv4 的 A、B、C 类地址和子网划分背得滚瓜烂熟结果翻开教材下一页直接给我看破防了原来传统的 A、B、C 类地址在现实中早就被淘汰了因为哪怕是划分子网按 A、B、C 类那种死板的切法IPv4 地址也早就耗尽了。为了续命网络大佬们在 1993 年搞出了一个大杀器——无分类域间路由选择 (CIDR)。如果你以后想考 AWS 架构师或者自己搭云服务器你一定见过 10.0.0.0/16 这种写法。今天我就把这个 /16 背后的 CIDR 逻辑以及一套能让软考网络计算题变成“小学加减法”的十进制秒杀神技毫无保留地记录下来一、 什么是 CIDR打破 A、B、C 类的枷锁传统的 IP 分类太死板A 类太大C 类太小。CIDR 的核心思想就是把 A、B、C 类的界限彻底砸碎不再规定前几个字节必须是网络号而是用一个“斜杠 ( / )”来自由指定。这就叫**“斜线记法”**。比如128.14.35.7/20这根斜杠后面的 20就代表这个 32 位的 IP 地址里前 20 位是“网络前缀”剩下的 12 位32-20是“主机号”。只要知道这一个带着斜杠的地址我们就能扒出这个网段的祖宗十八代通过将主机号全填 0 或全填 1最小地址网络地址128.14.32.0最大地址广播地址128.14.47.255地址数量剩下的 12 位主机号2^12 4096 个。相当于多少个传统的 C 类网4096 ÷ 256 16 个。在学这段的时候我老老实实地在草稿纸上把十进制转成二进制 0 和 1 去算。虽然算对了但头晕眼花极容易出错。对于未来的高效运维来说这种算力消耗是不可接受的。二、 路由聚合把碎布条缝成大毯子懂了 CIDR 把网络切块反过来想我们能不能把多个相邻的小网络合并成一个大网络呢看上面这张图。R1 路由器连着 5 个小网段如果它老老实实把这 5 条路都告诉旁边的 R2 路由器R2 的脑子路由表就要多记 5 条信息。如果互联网上几千万个路由器都这么干全世界的网络早就瘫痪了。解决办法就是“路由聚合构造超网”找共同前缀我们把这 5 个子网的第三个字节拆开看二进制172.1.00000100.0172.1.00000100.128172.1.00000101.0172.1.00000110.0172.1.00000111.0发现了吗它们前面22个比特886是一模一样的那好R1 就不发 5 条路由了直接发一条聚合后的172.1.4.0/22。一句话涵盖所有小弟极大减轻了路由器的负担。 【云架构师实战】AWS 云平台的“最长前缀匹配”铁律学到这里我解开了一个萦绕在心头很久的疑惑。既然大网包含了小网如果一个数据包同时匹配了大网和小网路由器该听谁的网际层铁律最长前缀匹配谁的斜杠后面的数字大谁就更具体就听谁的云端排错场景在 AWS 的 VPC 路由表里你通常会看到一条 0.0.0.0/0代表所有公网地址指向互联网网关IGW。但如果你把 MySQL 放在私有子网你会加一条 10.0.1.0/24 指向 NAT 网关。当一个去往 10.0.1.5 的包来到路由器时它虽然符合 /0但也符合 /24。因为 /24 前缀更长、更精确路由器会强制把它送进内部的 NAT。如果不懂这个底层逻辑未来排查云端数据库连通性故障时绝对会抓瞎三、 震撼我一整年的“十进制秒杀法则”如果每次碰到软考真题或者在配置交换机时都要掏出笔算二进制那太掉价了。接下来我要记录一套让我瞬间顿悟的**“块大小Block Size与超网聚合口算法”**。不用转二进制纯十进制小学加减法绝招 1根据子网掩码十秒算出子网范围假设有一个 IP 是 180.80.77.55掩码是 255.255.252.0。求它的网络地址和广播地址。算块大小跨度找到掩码里不是 255 和 0 的那个“特殊数字”这里是 252。用魔法公式256 - 252 4。这就是这个子网的跨度找网络地址向下找倍数原 IP 里发生变化的是第三个字节 77。找一个比 77 小且是 4 的倍数的数字。心算一下4 × 19 76。秒出最小地址网络地址 180.80.76.0找广播地址下一个网段退一格当前网段是 76跨度是 4下一个网段就是 80180.80.80.0。把它退一格第三字节减1第四字节拉满。秒出最大地址广播地址 180.80.79.255绝招 2路由聚合找超网的十进制逆向法给你 4 个网段35.230.32.0/21、35.230.40.0/21、35.230.48.0/21、35.230.56.0/21让你聚合它们。定龙头聚合后的大网网络地址必须和最小的那个小网一样。一眼看过去必定是35.230.32.0 / X。算总跨度/21 的单个网段跨度是多少看文末的表可知是 8。现在有 4 个这样的网总跨度就是4 × 8 32。反推新掩码用魔法公式 256 - 总跨度32 224。新的掩码就是 255.255.224.0。转为 CIDR掩码里的 224 代表几个 1上篇笔记背过128是1个192是2个224是3个。前两个字节满了是 16加上这 3 个就是19。秒出聚合地址 35.230.32.0/19四、 我的 DPRE 学习附录终极条件反射表这两个绝招之所以能行云流水全靠把二进制的换算固化成了条件反射。我把这张表抄在了我笔记本的第一页只要背熟这张表所有网络层的计算题真的就只是小学一年级的加减法比如刚才路由聚合的最后一步看到块大小跨度是 32查表对应的是特殊数字 224对应增加了 3 个 1原本前面有 16 个直接秒出 /19呼这应该是计算机网络基础里最耗脑细胞的计算部分了。啃下了这块硬骨头感觉我对底层架构的掌控感又强了一分。网络层的修行快要告一段落了下一个阶段我终于可以安心去配置我的 Linux 权限体系了我们下篇博客见。 致谢说明本文理论模型与计算口诀学习整理自优质网络公开课。为了方便日后备战软考与云架构师认证摆脱繁琐的二进制计算由本人记录核心笔记后交予 AI 进行大白话润色与行文排版特此致谢。主要内容来源B站 湖科大教书匠《计算机网络微课堂》

相关新闻