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…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
