【计算机网络】子网掩码与子网划分计算(含CIDR表示法)

考点频率 :★★★★★(计算机网络必考计算题,选择题每年至少1-2题)

难度 :⭐⭐⭐⭐

建议:重点掌握子网掩码的作用、子网划分的计算方法(借位法)、CIDR表示法与地址块计算

1️⃣ 为什么需要子网掩码?

在上一篇文章中,我们知道了IP地址由网络号 和主机号 组成。但仅凭IP地址本身,我们无法知道哪部分是网络号、哪部分是主机号------子网掩码就是用来"告诉"我们这件事的。

打个比方 :IP地址是"安徽省合肥市包河区XX路123号",子网掩码就像一把尺子------"哪些部分是行政区划(省市区),哪些部分是具体地址(路号)"。子网掩码中1的部分对应网络号,0的部分对应主机号。

子网掩码的规则:

  • 32位二进制,由连续的1和连续的0组成(1在前,0在后)
  • 1的个数 = 网络号的位数
  • 0的个数 = 主机号的位数

2️⃣ 默认子网掩码(复习)

类别 默认子网掩码 二进制 网络位 主机位
A类 255.0.0.0 11111111.00000000.00000000.00000000 8 24
B类 255.255.0.0 11111111.11111111.00000000.00000000 16 16
C类 255.255.255.0 11111111.11111111.11111111.00000000 24 8

3️⃣ 子网划分的核心:借位

子网划分 的本质是:从主机号中"借"若干位作为子网号,从而把一个大网络划分成多个小网络(子网)。

打个比方:一个C类地址有256个主机号(0~255),但如果你只有100台机器,直接用一个C类地址会浪费。子网划分就是把256个地址分成更小的块,按需分配。

借位后的结构变化:

复制代码
原结构:  网络号 | 主机号
借位后:  网络号 | 子网号 | 主机号

3.1 借位规则

借位数 子网数 每个子网可用主机数
借1位 21=22^1 = 221=2 2n−1−22^{n-1} - 22n−1−2(n为原主机位)
借2位 22=42^2 = 422=4 2n−2−22^{n-2} - 22n−2−2
借3位 23=82^3 = 823=8 2n−3−22^{n-3} - 22n−3−2
... ... ...
借m位 2m2^m2m 2n−m−22^{n-m} - 22n−m−2

为什么减2? 每个子网中,主机号全0的地址是子网地址 (代表整个子网),主机号全1的地址是广播地址(向子网内所有主机广播),这两个地址不能分配给主机使用。

3.2 子网掩码的变化

每借1位,子网掩码就多一个1:

  • 原C类掩码:255.255.255.0(/24)
  • 借1位后:255.255.255.128(/25)
  • 借2位后:255.255.255.192(/26)
  • 借3位后:255.255.255.224(/27)

速查表:

CIDR前缀 子网掩码 二进制(最后一段)
/24 255.255.255.0 00000000
/25 255.255.255.128 10000000
/26 255.255.255.192 11000000
/27 255.255.255.224 11100000
/28 255.255.255.240 11110000
/29 255.255.255.248 11111000
/30 255.255.255.252 11111100

4️⃣ 子网划分计算示例

题目 :某公司获得一个C类网络 192.168.1.0/24,需要划分为4个子网,每个子网尽量容纳更多主机。求:

  1. 需要借几位?
  2. 子网掩码是什么?
  3. 每个子网的网络地址、可用主机范围、广播地址分别是什么?

解答:

第1步:确定借位数

需要4个子网 → 2m=42^m = 42m=4 → m=2m = 2m=2(借2位)

子网号占2位,主机号剩6位。

第2步:确定子网掩码

原掩码:255.255.255.0(/24)

借2位后:255.255.255.192(/26)

第3步:计算每个子网

子网号(2位) 网络地址 可用主机范围 广播地址
00 192.168.1.0 192.168.1.1 ~ 192.168.1.62 192.168.1.63
01 192.168.1.64 192.168.1.65 ~ 192.168.1.126 192.168.1.127
10 192.168.1.128 192.168.1.129 ~ 192.168.1.190 192.168.1.191
11 192.168.1.192 192.168.1.193 ~ 192.168.1.254 192.168.1.255

规律:

  • 每个子网有 26=642^6 = 6426=64 个地址
  • 可用主机数 = 64−2=6264 - 2 = 6264−2=62 个
  • 子网块大小 = 256/4=64256 / 4 = 64256/4=64

5️⃣ CIDR表示法(无类别域间路由)

5.1 什么是CIDR?

CIDR(Classless Inter-Domain Routing,无类别域间路由) 是一种消除传统A/B/C类边界 的IP地址表示方法。它用 "IP地址/前缀长度" 来表示一个地址块。

例如 :192.168.1.0/24 表示前24位是网络号,后8位是主机号(相当于一个C类网络)。

CIDR的优点:

  • 可以更灵活地分配IP地址(不局限于A/B/C类)
  • 支持路由聚合(把多个小网络合并成一个大网络通告)
  • 减少路由表条目

5.2 CIDR地址块计算

核心公式:

  • 地址块中的地址总数 = 2(32−前缀长度)2^{(32 - 前缀长度)}2(32−前缀长度)
  • 可用主机数 = 2(32−前缀长度)−22^{(32 - 前缀长度)} - 22(32−前缀长度)−2

示例 :192.168.1.0/26

  • 地址总数 = 232−26=26=642^{32-26} = 2^6 = 64232−26=26=64
  • 可用主机数 = 64−2=6264 - 2 = 6264−2=62

5.3 CIDR与子网掩码的转换

CIDR 子网掩码 地址总数 可用主机数
/24 255.255.255.0 256 254
/25 255.255.255.128 128 126
/26 255.255.255.192 64 62
/27 255.255.255.224 32 30
/28 255.255.255.240 16 14
/29 255.255.255.248 8 6
/30 255.255.255.252 4 2

6️⃣ 经典例题

例题1 :某主机的IP地址为 192.168.1.100,子网掩码为 255.255.255.192,则该主机所在子网的网络地址是( )。

A. 192.168.1.0

B. 192.168.1.64

C. 192.168.1.96

D. 192.168.1.128

解析:

  • 掩码 255.255.255.192 → 最后一段 11000000,借了2位
  • 块大小 = 256 - 192 = 64
  • 100 ÷ 64 = 1 余 36 → 网络地址 = 192.168.1.64

选 B。


例题2 :CIDR地址块 172.16.0.0/20 中共有多少个可用主机地址?

A. 212−22^{12} - 2212−2

B. 220−22^{20} - 2220−2

C. 2122^{12}212

D. 2202^{20}220

解析:

  • 前缀长度 /20 → 主机位 = 32 - 20 = 12位
  • 可用主机数 = 212−2=4096−2=40942^{12} - 2 = 4096 - 2 = 4094212−2=4096−2=4094

选 A。


例题3 (判断):子网掩码 255.255.255.224 对应的CIDR前缀长度是 /27。( )

解析 :正确。224 = 11100000,加上前面24个1,共27个1,即 /27。

7️⃣ 记忆口诀

子网掩码1网络0主机,借位划分子网看需求。

借m位得 2m2^m2m 个子网,每子网主机数 2(n−m)−22^{(n-m)} - 22(n−m)−2。

CIDR斜杠后是前缀,地址总数 2(32−前缀)2^{(32-前缀)}2(32−前缀)。

8️⃣ 小测验(评论区对答案)

某公司获得一个网络地址 192.168.10.0/24,需要划分为8个子网 。则子网掩码应为( ),每个子网最多可容纳( )台主机。

A. 255.255.255.224;30

B. 255.255.255.240;14

C. 255.255.255.248;6

D. 255.255.255.192;62

🔔 本专栏日更,点击头像 → 专栏《软考中级高频考点》订阅,第一时间接收新内容

#软考中级 #软件设计师 #子网掩码 #子网划分 #CIDR #计算机网络 #软考备考

相关推荐
李纲明5 分钟前
WordPress 后台登录马上被踢回登录页:Cookie 域、HTTPS、盐值和页面缓存怎么查
运维·缓存·https·php·wordpress·cookie
4SAPI13 分钟前
AI 数据分析工具大模型 API 选型指南
大数据·人工智能·架构·php·1024程序员节
f8979070701 小时前
php升级之后切换到php8.2.35报pdo错误
php
4SAPI1 小时前
搭建 AI 数据分析工具大模型 API 选型指南
数据库·人工智能·架构·php·1024程序员节
额额额对了1 小时前
嵌入式 Linux 实战:i.MX6ULL 上的 CAN 通信与摄像头采集
linux·运维·服务器
Regentsoft丽晶软件2 小时前
从 “定时拉取“ 到 “事件驱动“,服装库存实时同步的底层架构怎么设计?
经验分享·php·零售
灯澜忆梦2 小时前
【Linux】#10 | Linux 终端实用快捷键 + 安装应用
linux·运维·服务器
码士集团小青3 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
解决小子4 小时前
【虚幻引擎】【C++】【GAS框架】构建角色基类、属性集、数值钳制
c++·笔记·游戏引擎·虚幻·gas·能力系统