IPv4编址及子网划分
IPv4编址及子网划分
- 一、IPv4地址概述
- 1.1、IPv4报文结构
- 1.2、IPv4地址分类
- 1.2.1、A类
- 1.2.2、B类
- 1.2.3、C类
- 1.2.4、D类
- 1.2.5、E类
- 1.3、私有IP地址
- 1.4、特殊地址
- 二、子网划分
- 2.1、子网掩码
- 2.2、VLSM 可变长的子网掩码
- 2.3、子网划分
- 2.4、子网划分示例
- 2.4.1、子网划分案例 —— A类网络
- 2.4.2、子网划分案例 —— B类网络
- 2.4.3、子网划分案例 —— C类网络
- 2.5、CIDR 子网聚合
- 2.6、CIDR 子网聚合案例
- 2.7、路由聚合的计算方法
- 三、园区网络IP地址规划
- 3.1、IP地址规划原则
- 3.2、节约IP地址的技巧
一、IPv4地址概述
IPV4地址的作用:用于标识一个节点的网络地址。
1.1、IPv4报文结构
- 版本:目前的IP协议版本号为4。
- 服务类型:用于IP报文的标记,多用于QoS。
- 生存时间:IP报文所允许通过的路由器的最大数量。
- 协议:指出IP报文携带的数据使用的协议。
- 源IP地址:标识IP数据报的源端设备。
- 目的IP地址:标识IP数据报的目的地址。

- IP地址结构:IPv4地址长度为32位,包括网络位和主机位两部分。
- 网络位是为了标识这个IP地址所属的网段。
- 主机位是为了标识这个IP地址在网段中具体的节点。

- 为了方便书写和表达,我们将IPv4地址分为4段,称为“点分十进制”。
- 每段从0开始到255结束,最小的IP是
0.0.0.0,最大的IP是255.255.255.255。

- IP地址结构:
- IP地址举例:172.16.122.204

1.2、IPv4地址分类
- 早期的网络中,IP地址没有掩码的概念:
- 为了方便划分网络大小,根据网络大小的不同,按照“有类”的方式将网络划分为A、B、C、D、E五类。
- A、B、C类IP地址的网络位都是固定的,D、E类IP地址没有网络位与主机位。

1.2.1、A类
- A类IP地址范围:
1.0.0.0~126.255.255.255。 - 前8位为网络位,第一位为0,其余的7位可以分配,A类地址共分为27块,每一块网络号不同。

- A类地址网络号全为0和网络位全为1的地址保留。
- 每个A类网络可以分配的主机号的数量为2^24-2=16777214(主机号全为0和全为1的两个地址保留)。
A类地址的使用:
- 第一块地址范围:0.0.0.0~0.255.255.255(网络号=0);
- 第二块地址范围:1.0.0.0~1.255.255.255(网络号=1);
- ……
- 最后一块地址范围:127.0.0.0~127.255.255.255(网络号=127);
1.2.2、B类
-
B类IP地址范围:
128.0.0.0~191.255.255.255。 -
前16位为网络位,前两位为10,其余的14位可以分配,B类地址共分为214块。

-
B类网络可以分配的主机号的数量为2^16-2=65534(主机号全为0和全为1的两个地址保留)。
B类地址的使用:
- 第一块地址范围:128.0.0.0~128.0.255.255(网络号=128.0);
- 第二块地址范围:128.1.0.0~128.1.255.255(网络号=128.1);
- ……
- 最后一块地址范围:191.255.0.0~191.255.255.255(网络号=127);
1.2.3、C类
-
C类IP地址:
192.0.0.0~223.255.255.255。 -
前24位为网络位,前三位为110,其余的21位可以分配,C类地址共分为221块;

-
C类网络可以分配的主机号的数量为2^8-2=254(主机号全为0和全为1的两个地址保留);
C类地址的使用:
- 第一块地址范围:192.0.0.0~192.0.0.255(网络号=192.0.0)。
- 第二块地址范围:192.0.1.0~192.0.1.255(网络号=192.0.1)。
- ……
- 最后一块地址范围:223.255.255.0~223.255.255.255(网络号=223.255.255)。
1.2.4、D类
- D类IP地址:
224.0.0.0~239.255.255.255。 - D类地址不标识网络,用于组播地址。

D类地址的使用:
224.0.0.1所有主机的地址224.0.0.2所有组播路由器的地址224.0.0.5所有OSPF路由器224.0.0.6OSPF DR/BDR224.0.0.9RIPv2路由器224.0.0.18VRRP协议报文地址
1.2.5、E类
- E类IP地址:240.0.0.0~247.255.255.255。
- E类地址暂时保留,用于科研实验。

1.3、私有IP地址
- 为了节省IP地址,将IP地址分为:
- 公有地址
- 私有地址
- 私有地址:
- A类:
10.0.0.0至10.255.255.255 - B类:
172.16.0.0至172.31.255.255 - C类:
192.168.0.0至192.168.255.255
- A类:
- 私有地址只能应用于企业内网。
- 在企业边界通过NAT把数据的私有地址转换为公有地址。
1.4、特殊地址
- 本地回环地址(测试):
- 127.X.X.X
- 网络号:主机位全为0
- 例:192.168.1.0/24
- 子网广播地址:主机位全为1
- 例:192.168.1.255/24
- 本地广播地址:
- 255.255.255.255
- 未知地址:网络位和主机位全为0
- 0.0.0.0
二、子网划分
2.1、子网掩码
- 子网掩码用来区分IP地址中的网络位和主机位。
- 子网掩码由连续的1和0组成:1表示对应IP地址的网络位,0表示对应IP地址的主机位。
- IP地址和子网掩码本质均是由32位二进制数字组成。
- 为了书写方便,使用“/数字”法表示子网掩码。

2.2、VLSM 可变长的子网掩码
- VLSM:Variable Length Subnetwork Mask ,可变长的子网掩码
- 使用多个不同的子网掩码把网络划分为不同大小的子网
- 使IP地址空间得到更有效的利用
子网划分示例:172.16.0.0 255.255.0.0(172.16.0.0/16)
- 172.16.0.0/24
- 172.16.1.0/24
- ……
- 172.16.254.0/24
- 172.16.254.0/30
- 172.16.254.4/30
- ……
- 172.16.254.252/30
- 172.16.255.0/24
- 172.16.255.1/32
- 172.16.255.2/32
- ……
- 172.16.255.255/32
2.3、子网划分
- 改变子网掩码,把一个大的网络划分为若干个小的网络
- 提高IP地址的使用率
- 子网的个数:
2^𝑋(x 代表子网的位数) - 每个子网内有效主机个数:
2^y-2(y 代表主机位数)
- 子网的个数:

2.4、子网划分示例
- 一个C类网段:192.168.10.0/24
- 默认掩码 /24(255.255.255.0)
- 总共IP ,2的8次方=256个
- 掩码就像一把“刀”,将网段进行“切割”

2.4.1、子网划分案例 —— A类网络
-
子网划分举例: 10.1.1.2 255.255.255.252(/30)

-
从子网掩码中可以看出,IP地址的前30位为网络位,后两位为主机位。
-
10.1.1.2 的二进制表示如下:

- 最后两位有4种组合,因此这个网段中有4个IP地址,10.1.1.0-10.1.1.3,由于每个网络的第一个和最后一个IP地址不可用,因此实际可用的IP地址为10.1.1.1和10.1.1.2 。
2.4.2、子网划分案例 —— B类网络
- 子网划分举例:172.16.0.0 255.255.0.0(/16)
- 将一个B类地址划分为多个 C类地址
- 子网划分前可用IP地址数为2^16-2=65534个,都在同一个网段
- 子网划分后172.16.0.0被划分为2^8个C类地址,每个子类地址可用IP地址数为254个

2.4.3、子网划分案例 —— C类网络
- 子网划分举例:192.168.10.213 255.255.255.192(/26)
- 192.168.10.213是一个C类地址,默认掩码为/24
- 子网数:26-24 = 2,因此子网数是2^2即4个。
- 每个网络的有效主机数:由于主机位是32-26=6,因此有效主机数是2^6-2=64-2=62个。

2.5、CIDR 子网聚合
- CIDR(Classless Inter-Domain Routing,无类域间路由)
- 将多个“有类”的子网合并成一个,以减少路由表中的路由条目。
- 不受制于A B C类地址空间,消除了自然分类地址和子网划分的界限。

2.6、CIDR 子网聚合案例
- 路由聚合将多条路由聚合为一条,大大减少了路由器中路由的条目。

2.7、路由聚合的计算方法
- 第一步:将地址转换为二进制格式,并将它们对齐。
- 第二步:找到所有地址中都相同的最后一位。在它后面划一条竖线。
- 第三步:竖线左边的位数为子网掩码位数。
- 第四步:竖线右边全设为零,竖线左边保持不变,即可形成路由汇总网络地址。

三、园区网络IP地址规划
3.1、IP地址规划原则
- IP地址规划的好坏,将会直接给网络带来影响:
- 网络路由协议算法的效率
- 网络的性能
- 网络的扩展
- 网络的管理
- IP地址规划主要遵从四个原则:
- 唯一性:一个IP网络中不能有两个主机使用相同的IP地址
- 可扩展性:在IP地址分配时,要有一定的余量,以满足网络扩展时的需要
- 连续性:分配的连续的IP地址要有利于管理和地址汇总,连续的IP地址易于汇总,减小路由表,提高路由效率
- 实意性:分配IP地址时尽量使所分配的IP地址具有一定实际意义
- 例如:使人一看到该IP地址就可以知道此IP地址分配给了哪个部门或哪个地区
3.2、节约IP地址的技巧
- 在分配IP地址时,如需要节约IP地址,注意以下几点:
- 配置Loopback地址时,使用的子网掩码为32
- 配置互联地址时,使用的子网掩码为/30
- 对各业务网关进行统一设定
- 比如:将所有的网关统一设置成X.X.X.254
- 在完成IP地址规划之后,公司既可以配置静态IP地址,也可以使用DHCP服务器动态分配IP地址
相关文章:
IPv4编址及子网划分
IPv4编址及子网划分 一、IPv4地址概述1.1、IPv4报文结构1.2、IPv4地址分类1.2.1、A类1.2.2、B类1.2.3、C类1.2.4、D类1.2.5、E类 1.3、私有IP地址1.4、特殊地址 二、子网划分2.1、子网掩码2.2、VLSM 可变长的子网掩码2.3、子网划分2.4、子网划分示例2.4.1、子网划分案例 —— A…...
HashMap 二十一问
1:HashMap 的数据结构? A:哈希表结构(链表散列:数组链表)实现,结合数组和链表的优点。当链表长度超过 8 时,链表转换为红黑树。transient Node<K,V>[] table; 2:…...
什么是Selenium?使用Selenium进行自动化测试
什么是 Selenium? Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。 等等,先别激动,让我再次重申一下,Selenium 仅可以测试We…...
解决“先commit再pull”造成的git冲突
一、问题场景 在分支上修改了代码然后commit(没有push),此时再git pull,拉下了别人的修改,但是报错无法merge 二、解决步骤 1.在idea下方工具栏选择git -> log,可以看到版本变化链表,右键…...
JAVA设计模式----原型设计模式
文章目录 一、简介二、实现方式三、原型模式的注意事项浅拷贝与深拷贝浅拷贝深拷贝一、简介 定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。 类型:创建类模式 类图: 原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Protot…...
树·c++
树(Tree) 是一种非线性的数据结构,它由若干个 节点(Node) 组成,并通过 边(Edge) 相互连接。树的结构类似于现实中的树,其中 根节点(Root Node) 位…...
vuejs 设计与实现 - 双端diff算法
我们介绍了简单 Diff 算法的实现原理。简单 Diff 算法利用虚拟节点的 key 属性,尽可能地复用 DOM元素,并通过移动 DOM的方式来完成更新,从而减少不断地创建和销毁 DOM 元素带来的性能开销。但是,简单 Diff 算法仍然存在很多缺陷&a…...
RISC-V在快速发展的处理器生态系统中找到立足点
原文:RISC-V Finds Its Foothold in a Rapidly Evolving Processor Ecosystem 作者:Agam Shah 转载自:https://thenewstack.io/risc-v-finds-its-foothold-in-a-rapidly-evolving-processor-ecosystem/ 以下是正文 But the open source pr…...
面试题02
这里写目录标题 主存储器和CPU之间增加Cache的目的是?判断一个char变量c1是否为小写字母循环链表顺序存储的线性表,访问结点和增加删除结点的时间复杂度请列举你所知道的c/c++ 语言中引入性能开销或阻碍编译优化的语言特性,并尝试说明对应的解决办法请列举CPU cache对编程开…...
第六章 SpringBoot注解 @ConditionalOnBean
满足条件的则进行组件的注入 Configuration(proxyBeanMethods true) //告诉SpringBoot这是一个配置类 配置文件 ConditionalOnBean(name "tom") public class MyConfig {Bean("tom")public Pet tom(){return new Pet("tomPet");}/*** 外部无论…...
MySQL8的下载与安装-MySQL8知识详解
本文的内容是mysql8的下载与安装。主要讲的是两点:从官方网站下载MySQL8安装和从集成环境安装MySQL8。 一、从官方网站下载MySQL8.0安装 MySQL8.0官方下载地址是:(见图) 官方正式版的最新版本是8.0.34,也推出了创新版…...
ATF(TF-A)安全通告 TFV-9 (CVE-2022-23960)
ATF(TF-A)安全通告汇总 目录 一、ATF(TF-A)安全通告 TFV-9 (CVE-2022-23960) 二、CVE-2022-23960 一、ATF(TF-A)安全通告 TFV-9 (CVE-2022-23960) Title TF-A披露通过分支预测目标重用(branch prediction target reuse)引发的前瞻执行处理器漏洞 CV…...
docker实现Nginx
文章目录 1.docker 安装2.docker环境实现Nginx 1.docker 安装 1.使用环境为红帽8.1,添加源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo2.安装 yum install docker-ce docker-ce-cli containerd.io显示出错 Docker C…...
【Java 回忆录】Java全栈开发笔记文档
这里能学到什么? 实战代码文档一比一记录实战问题和解决方案涉及前端、后端、服务器、运维、测试各方面通过各方面的文档与代码,封装一套低代码开发平台直接开腾讯会议,实实在线一起分享技术问题核心以 Spring Boot 作为基础框架进行整合后期…...
数据结构:力扣刷题
题一:旋转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 思路一: 创建reverse()函数传入三个值分别为数组地址,从第几个数组元素开始,结束元素位置; 在r…...
【Java】常用设计模式的理解
设计模式 前言 有一些重要的设计原则在开篇和大家分享下,这些原则将贯通全文: 面向接口编程,而不是面向实现。这个很重要,也是优雅的、可扩展的代码的第一步,这就不需要多说了吧。 职责单一原则。每个类都应该只有一…...
python - 爬虫简介
什么是爬虫? 模拟浏览器对网站服务器发送请求解析服务器返回的响应数据,并保存数据 爬虫能获取哪些数据? 原则上所有可以通过浏览器获取的数据都可以爬取爬虫也只能获取爬取浏览器可以正常获取的数据 爬虫的应用场景? 数据分…...
【结构型设计模式】C#设计模式之外观模式
题目描述: 假设你正在开发一个音乐播放器应用程序,该应用程序需要与多个子系统进行交互,包括音频解码、音量控制和播放控制等。请使用外观模式设计一个音乐播放器的外观类,并实现相应的子系统类。 要求: 创建一个外观…...
Linux网络编程 socket编程篇(一) socket编程基础
目录 一、预备知识 1.IP地址 2.端口号 3.网络通信 4.TCP协议简介 5.UDP协议简介 6.网络字节序 二、socket 1.什么是socket(套接字)? 2.为什么要有套接字? 3.套接字的主要类型 拓】网络套接字 三、socket API 1.socket API是什么? 2.为什么…...
【二】SPI IP核的使用
【一】SPI IP核使用:传送门 基于qsys通过spi外部总线协议对sd卡进行读写操作 一、实验平台与实验的目的: 正点原子开拓者、芯片型号:EP4CE10F17C8;还需要一张sd卡。 该实验主要是利用SPI IP核驱动SD卡来实现读写实验&am…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...
SpringAI实战:ChatModel智能对话全解
一、引言:Spring AI 与 Chat Model 的核心价值 🚀 在 Java 生态中集成大模型能力,Spring AI 提供了高效的解决方案 🤖。其中 Chat Model 作为核心交互组件,通过标准化接口简化了与大语言模型(LLM࿰…...
