IPv4 子网掩码

玩机教程 > Router (5) 2025-06-17 16:29:22

在上一篇IP/IPv4地址详解-XQLEE'Blog

提到 IP 地址分门别类后,除去特殊的 D 、 E 两类,只有 3 种规格,灵活性仍然非常有限:

  • A 类地址,用于大型网络,网络主机数可达 1600 万以上;
  • B 类地址,用于中型网络,网络主机数可达 65000 以上;
  • C 类地址,用于小型网络,网络主机数只有 254 ;

 

子网划分

A 类地址每个网络可以容纳多大 1600 万的主机,但哪个组织会有这么多主机呢?那么,能否将一个 A 类网络,划分成若干个更小的网络,分给更多的组织来使用呢?

10.0.0.0 这个网络为例,它是一个 A 类网络:第一个字节是网络号,其余字节是主机号,可以容纳超过 1600 万台主机。由于不可能有这么大的网络,为避免地址浪费,我们需要将它划分更小的子网来使用:

IPv4 子网掩码_图示-9f694bc6303d46eaa464f3a2975a267d.png

如上图,我们可以将主机号中的前两个字节拎出来作为 子网号从而将其划分为多个子网。子网号长度决定子网个数,16 位的子网号意味着子网数达到 216=65536 个。

子网号 子网首地址(主机号全为0) 子网末地址(主机号全为1)
0000000000000000 10.0.0.0 10.0.0.255
0000000000000001 10.0.1.0 10.0.1.255
1111111111111111 10.255.255.0 10.255.255.255

子网号长度可以根据实际情况,灵活调整。那么,主机和网络设备,怎么知道一个 IP 地址,是否划分了子网呢?怎么知道一个 IP 地址实际的网络号呢?

我们可以用一个掩码,来记录 IP 地址中的网络号部分:

IPv4 子网掩码_图示-aef4f5e5ab7b4fe495dd9bb1566cff10.png

掩码位数与 IP 地址一样,1 表示该位属于网络号,0 表示该位属于主机号。如果你学过 C 语言,应该知道通过按位与操作 & ,掩码可以快速取出一个 IP 地址的网络号。

这就是所谓的 子网掩码 ,它也可以用 点分十进制表示法 来表示,用来描述 IP 地址的网络号部分。因此,子网 10.0.0.x 可以表示成 10.0.0.0/255.255.255.0 ;A 类网络 10.x.x.x可以表示成 10.0.0.0/255.0.0.0

实际上,描述网络号还有更简洁的方法:在 IP 地址后面加上斜杆和网络号的位数。例如:

  • 10.0.0.0/255.255.255.0 可以表示成 10.0.0.0/24

  • 10.0.0.0/255.0.0.0 可以表示成 10.0.0.0/8

第二种表示法其实更容易理解,因此也更为常用。试想,为确定 10.0.0.0/255.255.255.192 的网络号,需要先将子网掩码换算出二进制形式,再数一下 1 的位数,未免太繁琐了:

IPv4 子网掩码_图示-27d609d9f961420f8d3001e0c9b10578.png

10.0.0.0/26 则明明白白告诉我们,这个地址网络号长度为 26 位。

 

示例:已知设备IP地址和子网掩码求网络地址&广播地址

192.168.1.138/25

解析1 通过子网掩码与IP地址进行&运算:

192.168.1.128转换为二进制为:

11000000.10101000.00000001.10001010 

橙色部分为网络号,黑色部分为主机号

与子网掩码换算

/25 子网掩码转换二进制

11111111.11111111.11111111.10000000

11000000.10101000.00000001.10000000

&运算说明:0&0 = 0 ;0 & 1 = 0 ;1 & 0 = 0 ;1 & 1 = 1

运算结果为:

11000000.10101000.00000001.10000000

转换为十进制:

网络地址 - 192.168.1.128  

广播地址 - 192.168.1.255

解析2:通过子网掩码确定网络号部分

192.168.1.128转换为二进制为:

11000000.10101000.00000001.10001010 

橙色为网络号部分

将黑色主机号全部0标记得到网络地址 - 11000000.10101000.00000001.10000000 

转换十进制得到 网络地址为:192.168.1.128

将黑色主机号全部转换为1得到广播地址 - 11000000.10101000.00000001.11111111

转换为十进制得到广播地址为:192.168.1.255

原理参考:IP/IPv4地址详解-XQLEE'Blog 文中网络地址和广播地址定义部分。

 

解析:可用主机数量计算

从上面子网掩码可以得到主机号为7位,则根据公式

27- 2 =  128 - 2 = 126 个主机设备IP地址

 

 

超网合并

通过子网掩码,我们既能对大型网络进行划分,也能对若干小型网络进行合并,使其组成更大的网络。

假设我们有两个 C 类网段,192.168.0.0/24192.168.1.0/24 ,但我们想组建一个可以容纳 500 台主机的网络,而不是两个只能容纳 250 台主机的网络,该怎么办呢?

网络(合并前) 网络号长度 主机号长度 容纳主机数 开始地址 结束地址
192.168.0.0/24 24 8 254 192.168.0.0 192.168.0.255
192.168.1.0/24 24 8 254 192.168.1.0 192.168.1.255

我们观察这两个网络,网络号的前 23 位都是一样的,只有最后一位不一样。因此,我们可以将网络号的最后一位挪出来,成为新网络主机号的一部分:

IPv4 子网掩码_图示-0a6602716d4442c5bcb2e0c08b2f3f81.png

新网络的网络号长度少了 1 位;共 23 位;主机号多了 1 位,共 9 位,可以容纳 29−2=510 台主机。

网络(合并后) 网络号长度 主机号长度 容纳主机 开始地址 结束地址
192.168.0.0/23 23 9 510 192.168.0.0 192.168.1.255

你可能已经注意到了,只有前缀相同的网络,才能进一步合并成更大的超网。

根据 IP 地址分类确定网络号长度,是互联网初期的做法,早已不用了。尽管如此,诸如 A 类、B 类、C 类这样的术语,仍沿用至今。我们能理解其中的意思即可。

 

评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
在上一篇提到 IP 地址分门别类后,除去特殊的 D 、 E 两类,只有 3 种规格,灵活性仍然非常有限:A 类地址,用于大型网络,网络主机数可达 1600 万以
概述IP地址(IPv4)子掩码及斜杠/24/16/8是什么网络地址管理是网络配置和设计的关键组成部分。其中,IP地址和子网掩码起着至关重要的作用。本文将详细解析
据上一篇zerotier账号注册_zerotier免费稳定内网穿透工具 初步介绍了Zerotier和Zerotier的网络图,这篇主要针对Zerotier的网络管理基础操作进行讲解
接上一篇Zerotier网络管理_Zerotier免费稳定内网穿透工具 网络管理讲解,本文将会讲解网络管理里面的成员设备添加删除等管理
鼠标选择网银助手,右键选择属性,在目标处的最后加上 "空格"-runapp(一定要打空格),点击应用即可打开。中国银行网银助手打不开 可解决
查找网口名称通过命令查看网口名称ip addr 查看网卡连接速率ethtool 网卡名称ethtool enp0s31f6输出参考Settings for en
一.什么是frpfrp是一款免费开源的内网穿透套件。是client/server模式。二.怎么获取frp通过开源代码托管平台GitHub,即可获取frp工具。地
引言 本文将讲解从Apache rocketmq 官网下载、Apache rocketmq 安装和Apache rocketmq 配置。由于rocketmq是阿
本文针对IPv4地址详解每个使用 IP 协议进行通信的实体,都需要分配一个地址,这就是我们所熟知的 IP 地址。IP 地址由 4 个字节组成,共 32 位,理论
问题描述AList百度网盘下载报错,错误信息{"error_code":31362,"error_msg":"sign error","error_info":
前言Windows 11 新系统上面已经没有IE浏览器了,只有自带的edge浏览器,且无法安装IE浏览器,目前使用大多数国内网银需要IE浏览器,导致一些问题,下面的办法一
1.开通商户号 登录 https://pay.wexin.qq.com 注册并开通商户号。 2.开通【微信收款码商业版】 https://pay.wexin.qq.com 打开...
环境dockerdocker-composeubuntu 22.04 LTSalist镜像:alist:v3.44.0Docker Compose 配置vers
概述Windows ipv6如何查看,Windows ipv6的几种类型解析,包括:IPv6 地址 临时IPv6地址 本地链接IPv6地址 对比区别总结,默认网
案例问题描述有这么一个SQL,外查询 where 子句的 bizCustomerIncoming_id 字段,和子查询 where 字句的 cid 字段都有高效