【计算机网络】CIDR无分类编址知识学习
文章目录
- 1、CIDR引入的背景
- 2、CIDR是什么?
- 2.1 CIDR的2个特点
- 2.2 CIDR斜线记法注意区分细节
- 2.3 路由聚合or构成超网
- 2.4 CIDR里面的掩码(不是叫子网掩码)
- 2.5 CIDR几种等效的记法形式
- 2.6 对于”网络前缀“不是8的整数倍时候,要多加注意
- 3、CIDR实际应用举例
1、CIDR引入的背景
通过划分子网的方式一定程度上缓解了Internet网发展中遇到的困难,但是实际上还有3个问题需要迫切解决:
1、B类地址在1992年已分配近一半,眼看就要分完了。
2、Internet网主干网上的路由表中的项目数急剧增长。
3、整个IPv4的地址空间最终将要全部耗尽。
为了解决问题1和问题2,CIDR无分类域间路由选择应运而生。
问题3的解决由IPv6的推进来搞定。
2、CIDR是什么?
CIDR,英文全称:Classless Inter-Domain Routing,读音“sider“,它是一种无分类编址的方法。
2.1 CIDR的2个特点
1、消除了传统的A类、B类和C类地址以及划分子网的概念,做到可以最大化使用IPv4的地址空间。CIDR使用各种长度的”网络前缀“来代替分类地址中的网络号和子网号,而不是像分类地址中只能使用1字节、2字节和3字节长的网络号。CIDR这种不使用”子网“的概念而使用”网络前缀“,使得IP地址从三级编址(使用子网掩码)又回到了两级编址,但这已是无分类的两级编址。记法格式:
IP地址 ::={<网络前缀>,<主机号>}
更加通用的记法是使用”斜线记法“,它又称CIDR记法。格式:xxx.xxx.xxx.xxx/xxx
斜线后面的呢日on个是”网络前缀“所占的比特数,对应三级编址中子网掩码中比特1的个数。
举个例子:
128.14.46.34/20
表示在这个32比特位的IP地址中,前20比特位表示”网络前缀“,而后面(32-20)=12比特位为”主机号“或者叫host-id。有时需要将点分十进制的IP地址写成二进制表示的地址才能看清楚”网络前缀“和”主机号“。上面的例子对应:
前20bit是100000000 00001110 0010
后面12bit是1110 00100010
2、CIDR将”网络前缀“都相同的连续的IP地址组成”CIDR地址块“。
一个CIDR地址块是由地址块的起始地址和地址块中地址数来定义的。CIDR地址块也可用斜线记法。
举个例子:
128.14.32.0/20
表示的地址块共有2^12个地址,因为斜线后面的数字20是代表“网络前缀”所占的bit位数。因此主机号的位数是32-20=12bit。且该地址块的起始地址是128.14.32.0。在不需要指出地址块的起始地址时候,可将这样的地址块简称“/20 地址块"。同时该举例的地址块的最小地址和最大地址是:
| 表示方法 | 最小地址块 | 最大地址块 |
|---|---|---|
| 点分十进制表示 | 128.14.32.0 | 128.14.47.255 |
| 二进制表示 | 1000000 00001110 00100000 00000000 | 10000000 00001110 00101111 11111111 |
*其中全0(对应128.14.32.0)和全1(128.14.47.255)者2个地址一般不使用,一般使用者2个地址之间范围内的地址。
2.2 CIDR斜线记法注意区分细节
当看到CIDR斜线记法的时候,需要注意区分一下,需要根据上下文确定清楚它是指1个单个的IP地址还是地址块。
2.3 路由聚合or构成超网
由于一个CIDR地址块可以表示很多地址,因此在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合(route aggregation),它使得路由表中的一个项目可以表示很多原来传统分类地址的路由。路由聚合也称为构成超网(supernetting)。
路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个因特网的性能。
2.4 CIDR里面的掩码(不是叫子网掩码)
CIDR已经不是子网的说法了,但是也使用”掩码“的说法。对于/20地址块,它的掩码是:
11111111 11111111 11110000 00000000 (前面20个连续的1) 斜线后面的数字就是掩码1的个数,也是”网络前缀“。
2.5 CIDR几种等效的记法形式
| 10.0.0.0/10等效的几种表示 | 记法 | 掩码:255.192.0.0 |
|---|---|---|
| 点分十进制 | 10.0.0.0/10 | |
| 低位连续0省略 | 10/10 | |
| x代替 | 00001010 00xxxxxx xxxxxxxx xxxxxxxx | |
| 星号* | 00001010 00* |
2.6 对于”网络前缀“不是8的整数倍时候,要多加注意
例如:
CIDR前缀长度是13,/13 对应的点分十进制是255.248.0.0 包含的地址数是512K,包括的分类网络数 8个B类或2048个C类。
其中K表示的是2^10,这个包括的地址数是含全0和全1的主机号。
正因为有的CIDR地址块会包含多个C类地址,因而有了”构成超网“的名词来源。
3、CIDR实际应用举例
前面说了,使用CIDR的有点就是可以更加有效分配IPv4的地址空间,减少浪费,因此现在的因特网服务提供者ISP,都比较喜欢使用CIDR方式。非CIDR方式的地址分配,只能/8 /16或者/24为单位来分配,而CIDR方式的可以根据实际具体情况来分配,比如:/18 /22 /23 /24 /25 等方式。举例子:
从下面的表格例子中可以看出来,”网络前缀“数字越小,其地址块包括的地址数量越多。
因此,通过CIDR的“网路前缀”可以灵活控制每个单位的IP地址分配,而不用因为固化位数浪费IP地址。
| 单位 | 地址块 | 二进制表示 | 地址数 |
|---|---|---|---|
| ISP | 206.0.64.0/18 | 11001110.0000000.01* | 16384 |
| 大学 | 206.0.68.0/22 | 11001110.000000.010001* | 1024 |
| 一系 | 206.0.68.0/23 | 11001110.0000000.0100010* | 512 |
| 二系 | 206.0.70.0/24 | 11001110.000000.01000110.* | 256 |
| 三系 | 206.0.71.0/25 | 11001110.0000000.010001111.0* | 128 |
| 四系 | 206.0.71.128/25 | 11001110.00000000.01000111.1* | 128 |
此外:由于使用了CIDR这种方法,在查找路由表时候可能会匹配多个结果,这个时候会中匹配结果中选择具有最长“网络前缀”的路由,称之为:“最长前缀匹配”longest-prefix matching。越长匹配的会越具体,越准确。因此也称为“最佳匹配”和“最长匹配”。
还有个“使用二叉树线索查找路由表”,用于解决、减少路由表的查找时间问题。有空还需要学习。
总的来说,通过学习可以看出来CIDR在解决IPv4地址资源枯竭问题帮助很大,的确很灵活。
相关文章:
【计算机网络】CIDR无分类编址知识学习
文章目录 1、CIDR引入的背景2、CIDR是什么?2.1 CIDR的2个特点2.2 CIDR斜线记法注意区分细节2.3 路由聚合or构成超网2.4 CIDR里面的掩码(不是叫子网掩码)2.5 CIDR几种等效的记法形式2.6 对于”网络前缀“不是8的整数倍时候,要多加注意 3、CIDR…...
JavaScript 详解
第一章 JavaScript简介 为什么学习javascript ? JavaScript 是全球最流行的编程语言。 JavaScript 是属于 Web 的编程语言。 JavaScript 是 web 开发者必学的三种语言之一: HTML 定义网页的内容 CSS 规定网页的布局 JavaScript 对网页行为进行编程 …...
运维实践01-安装OpenJDK
前几天逛知乎,有个问题是如何成为一个优秀的运维工程师,有个回答是让自己搞清楚如下几件事情。 首先,搭4台Linux的服务器。然后完成如下操作 批量安装最新版OpenJDK安装部署elastic search集群安装部署mysql9.0,实现一主三备。安…...
Windows下,C# 通过FastDDS高效通信
目录 1、安装FastDDS 库2、使用IDL定义自己的数据格式3、生成DLL3.1 托管 (Managed)模式3.2 非托管 (Unmanaged)模式 -- 可用于Unity 代码示例 eprosima Fast DDS is a C implementation of the DDS (Data Distribution Service) …...
【模型】ResNet
ResNet(Residual Network,残差网络)是一种用于图像识别等任务的深度神经网络架构,由何凯明等人于2015年提出。它在计算机视觉领域中具有重要意义,因为它解决了随着网络层数加深而导致的“梯度消失”或“梯度爆炸”问题…...
Objective-C中NSExpression与NSPredicate的协同艺术
标题:Objective-C中NSExpression与NSPredicate的协同艺术 引言 在Objective-C的丰富生态中,NSExpression和NSPredicate是两个强大的工具,它们在处理数据集合和执行复杂查询时发挥着关键作用。本文将深入探讨这两个API的协同工作方式&#x…...
Apache-JMeter压测工具教程
下载安装 《JMeter官网下载》 下载完成后,找个文件夹进行解压 配置环境变量 JAVA_HOME(如果是JAVA8还需要配置CLASSPATH)、JMETER_HOME JMETER_HOME修改bin目录下的jmeter.properties文件编码为UTF-8 5.6.3这个版本encoding已经默认为UT…...
Spring Boot集成selenium实现自动化测试
1.什么是selenium? Selenium 是支持web 浏览器自动化的一系列工具和 库的综合项目。 它提供了扩展来模拟用户与浏览器的交互,用于扩展浏览器分配的分发 服务器, 以及用于实现W3C WebDriver 规范 的基础结构, 该规范允许您为所有主…...
基于phpstudy对cmseasy5.5进行漏洞复现
目录: 漏洞复现的cmseasy5.5百度网盘链接 安装cmseasy: 1.在phpstudy上安装cmseasy 2.设置mysql密码为phpstudy内置mysql的密码并检查安装环境 3.安装后查看mysql内cmseasy是否有内容 获取用户名和密码过程: 1.查看源码发现有个remotelo…...
【c++】 C语言的输入与输出C++的IO流STL空间配置器
主页:醋溜马桶圈-CSDN博客 专栏:c_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.C语言的输入与输出 2.流是什么 3.CIO流 3.1 C标准IO流 3.2 C文件IO流 4.stringstream的简单介绍 5.什么是空间配置器 6.为什么需要…...
基于Faster-RCNN的停车场空位检测,支持图像和视频检测(pytorch框架)【python源码+UI界面+功能源码详解】
功能演示: 基于Faster-RCNN的停车场空位检测系统,支持图像检测和视频检测(pytorch框架)_哔哩哔哩_bilibili (一)简介 基于Faster-RCNN的停车场空位检测系统是在pytorch框架下实现的,这是一个…...
Vue3从零开始——带你轻松掌握组件的基本操作
文章目录 1. Vue 组件的基础概念1.1 什么是组件?1.2 组件的作用1.3 组件的分类(全局组件 vs 局部组件) 2. 创建和注册组件2.1 单文件组件(SFC)2.2 全局组件注册2.3 局部组件注册 3. 组件命名格式4. ref获取DOM元素4.1 …...
【MySQL 03】库的操作 (带思维导图)
文章目录 🌈 一、创建数据库🌈 二、查看数据库🌈 三、使用数据库🌈 四、修改数据库🌈 五、删除数据库🌈 六、备份数据库🌈 七、恢复数据库🌈 八、字符集和校验规则⭐ 1. 查看系统默认…...
SpringBoot-读取配置文件内容
目录 前言 主页(端口号默认8080) 1 Value 注解 引用变量的使用 2 Environment 对象 3 ConfigurationProperties (配置内容和对象,进行相互绑定) 前言 读取配置文件有3 种方式 (1) Value注解 (2) Environm…...
springboot整合springmvc
1、创建springboot项目,勾选Spring web 当前springboot选择的是2.6.13版本,jdk1.8尽量选2.几的springboot 2、在pom.xml中导入相应的坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-…...
el-cascader多选的父子关联和父子不关联功能
公用html: <el-cascader v-model"data" :options"optionsData" :props"props" clearable> </el-cascader> 公用js变量: data () {return {// 绑定的数组data: [],// 绑定的选项数据optionsData: []} }, 公…...
#Datawhale AI夏令营第4期#多模态大模型Task2
赛事进阶解读 关于赛事介绍: Better Synth 是一项以数据为中心的挑战赛,考察如何合成与清洗图文数据以在多模态大模型上取得更优的图片理解能力。 本次比赛基于 Mini-Gemini 模型进行训练,只关注于预训练(模态间对齐)…...
LeetCode 热题100-1
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任…...
表现良好的最长时间段(LeetCode)
题目 给你一份工作时间表 hours,上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大于 8 小时的时候,那么这一天就是「劳累的一天」。 所谓「表现良好的时间段」,意味在这段时间内,「劳累的天数」是严格…...
【性能优化】DNS解析优化
前言 DNS解析过程消耗时间DNS有本地缓存 比如首次访问某站点,会耗费很多时间进行DNS解析,但解析结束后会将ip地址存入本地设备,后续再访问此域名时就会直接从缓存中取。 首次访问页面时,本页面的DNS解析是无法优化的࿰…...
多模态2025:技术路线“神仙打架”,视频生成冲上云霄
文|魏琳华 编|王一粟 一场大会,聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中,汇集了学界、创业公司和大厂等三方的热门选手,关于多模态的集中讨论达到了前所未有的热度。其中,…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...
Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...
