计算机网络知识CIDR(无类别域区间路由)

目录

介绍

基本信息

优点与关联

如何计算判定范围(你应该是来看这个的,前面是水字数的)

省流版


介绍

无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。

建议直接看第三个标题

基本信息

CIDR主要是一个按位的、基于前缀的,用于解释IP地址的标准。 它通过把多个地址块组合到一个路由表表项而使得路由更加方便。这些地址块叫做CIDR地址块。当用二进制表示这些地址时,它们有着在开头部分的一系列相同的位。IPv4的CIDR地址块的表示方法和IPv4地址的表示方法是相似的:由四部分组成的点分十进制地址,后跟一个斜扛,最后是范围在0到32之间的一个数字:A.B.C.D/N。 点分十进制的部分和IPv4地址一样是一个被分成四个八位位组的32位二进制数。斜扛后面的数字就是前缀长度,也就是从左到右,被地址块里的地址所共享的位的数目。当只要说明梗概时,点分十进制部分有时会被省略,因此,/20就表示一个前缀长度是20的CIDR地址块。如果一个IP地址的前N位与一个CIDR地址块的前缀是相同的话,那么就说这个地址属于这个CIDR地址块,也可以说是与CIDR地址块的前缀匹配。所以,要理解CIDR,就要把地址写成二进制的形式。因为IPv4地址的长度总是32位,N位长的CIDR前缀就意味着地址里32 − N位不匹配。这些位有2(32 − N)种不同的组合,即2(32 − N)个IPv4地址与CIDR地址块的前缀。前缀越短就能匹配越多的地址,越长就匹配得越少。一个地址可能与多个长度不同的CIDR前缀匹配。CIDR也用在IPv6中。因为位数的非常多,所以在IPv6中,前缀长度的范围是从0到128。这里也用同样的方法来表示一个地址:前缀写作一个IPv6的地址,后跟一个斜扛,最后是前缀的位数。

优点与关联

CIDR代表无类别域间路由(Classless Inter-Domain Routing),是一种用于对IP地址进行聚合和分配的技术。它通过改变IP地址的分配方式,有效地解决了IPv4地址空间不足的问题。

在CIDR出现之前,互联网使用的是基于类别的IP地址分配方案,将IP地址划分为A类、B类、C类等。这种方案存在以下问题:

  • 地址浪费: 例如,一个B类网络拥有256个IP地址,但实际需求可能只有几十个。其余的IP地址会被浪费。
  • 地址不均匀: 不同大小的组织对IP地址的需求差异很大。例如,互联网服务提供商可能需要数百万个IP地址,而小型企业可能只需要几十个。基于类别的分配方案无法满足这种差异化的需求。

CIDR引入了可变长度子网掩码(VLSM)的概念,允许将IP地址划分为更小、更灵活的子网。子网掩码用于区分网络地址和主机地址。CIDR表示法使用IP地址后面跟着斜杠(/)和子网掩码位数来表示子网。例如,192.168.1.0/24表示一个子网,其中网络地址为192.168.1.0,子网掩码为255.255.255.0,该子网可以包含254个主机地址。

CIDR具有以下优点:

  • 提高IP地址利用率: CIDR允许更灵活地划分IP地址,可以有效地避免IP地址浪费。
  • 简化路由表: CIDR可以使用更少的路由表项来表示更大的IP地址范围,从而简化路由器的维护。
  • 提高路由效率: CIDR可以提高路由器的路由效率,因为路由器只需要查询更少的路由表项即可找到目标网络。

CIDR是目前互联网上普遍使用的IP地址分配方案。它在解决IP地址空间不足、提高IP地址利用率、简化路由表等方面发挥了重要作用。

以下是一些关于CIDR的常见问题:

  • CIDR与子网掩码有什么关系?

CIDR使用子网掩码来划分IP地址。子网掩码用于区分网络地址和主机地址。CIDR表示法使用IP地址后面跟着斜杠(/)和子网掩码位数来表示子网。例如,192.168.1.0/24表示一个子网,其中网络地址为192.168.1.0,子网掩码为255.255.255.0,该子网可以包含254个主机地址。

  • 如何计算CIDR子网中的可用主机数?

CIDR子网中的可用主机数可以通过以下公式计算:

可用主机数 = 2^(子网掩码位数) - 2

例如,192.168.1.0/24子网的可用主机数为2^(24) - 2 = 254。

  • 如何将IP地址转换为CIDR表示法?

可以使用以下步骤将IP地址转换为CIDR表示法:

  1. 将IP地址转换为二进制表示法。
  2. 添加子网掩码。
  3. 计算子网掩码位数。
  4. 将IP地址和子网掩码位数用斜杠(/)连接起来。

例如,将IP地址192.168.1.10转换为CIDR表示法:

  1. 将192.168.1.10转换为二进制表示法:11000000 10101000 00000001 00001010
  2. 添加子网掩码255.255.255.0:11000000 10101000 00000001 11111110
  3. 计算子网掩码位数:24
  4. 将IP地址和子网掩码位数用斜杠(/)连接起来:192.168.1.10/24

如何计算判定范围(你应该是来看这个的,前面是水字数的)

相信碰到不少人不会看ip/x,其实非常简单。不知道大家有没有看过这张图

我们斜杠后面跟的是多少,我们就是取多少位。我们都知道我们ipv4由三个点分开分四个部分,然后每个部分里面都是8bit也就是1字节并且是无符号的,所以最小为0最大为255也就是2^8-1,然后隔开来,我们暂且不提什么A类,B类,C类网段的。我们看这个斜杠后面的数是多少,那我们就相当于占多少位。

比如/24就是很标准的三个网段全给占用的,假如前面是192.168.0.1/24,那他的范围就是前面24位占用住,后面是可以自由活动的。因为4个8位所以是32位,减掉了24位就是八位可动,则是0~255,那他的范围就是0~255最小是0,最大则是255因为 2^8-1,所以就是192.168.0.0/24~192.168.0.255/24。

那假如是192.168.0.1/30的话则是被盖住了30位不可动,所以能动的只有2位,2位我们知道最小值为0而最大值为3因为 2^2 -1 所以就是192.168.0.0~192.168.0.3。

我们再看个缩小的案例,比如/16的192.168.0.0~192.168.255.255,第三个地址段为0~255,最后一个也为0~255,因为总计32位,切在了16位上。

我们再看个略大的切到两个中间的案例/18的,总计32,切在了18,所以最后面还是正常的0~255,倒数第二个为,0~2^6-1是0~63,范围就是192.168.0.0~192.168.63.255。

当然前面被包括在斜杠左边的是不能自由分配的,但是也是固定ip,所以我们可以不需要强制用192.168开头来计算。什么都可以的。

省流版

192.168.123.0/24 = 192.168.123.0~192.168.123.255

192.168.1.1/30=192.168.1.0~192.168.1.3

192.168.1.1/18=192.168.0.0~192.168.63.255

192.168.1.1/16=192.168.0.0~192.168.255.255

如果对你有帮助的话不要忘记点赞收藏。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/700890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32项目分享:智能蓝牙手环

目录 一、前言 二、项目简介 1.功能详解 2.主要器件 三、原理图设计 四、PCB硬件设计 1.PCB图 2.PCB板打样焊接图 五、程序设计 六、实验效果 七、资料内容 项目分享 一、前言 项目成品图片: 哔哩哔哩视频链接: https://www.bilibili.c…

PCA与LDA

共同点 降维方法: PCA和LDA都是数据降维的方式,它们都能通过某种变换将原始高维数据投影到低维空间。 数学原理: 两者在降维过程中都使用了矩阵特征分解的思想,通过对数据的协方差矩阵或类间、类内散度矩阵进行特征分解&#xff…

鸿蒙低代码开发的局限性

在版本是DevEco Studio 3.1.1 Release,SDK是3.1.0(API9) 的基础上。 1、低代码插件没有WebView组件。 2、低代码插件没有空白的自定义组件,当前提供的所谓自定义组件,只能用列表中提供的组件来拼接新的组件。 3、使用ets代码自定义的组件&…

bugku--web---baby lfi

1、题目描述 2、页面提示使用language参数 3、构造url:/?languagefr。页面有回显 4、这里提示包含关键的文件 5、构造url:/?language/etc/passwd 6、flag shellmates{10CA1_F11e_1Nc1US10n_m4y_r3ve4l_in7Er3st1nG_iNf0Rm4t1on}

单北斗定位手持终端的优势

在追求精准与效率的现代生活中,单北斗定位手持终端以其独特优势,为众多行业领域带来了前所未有的便利与安全保障。凭借北斗卫星导航系统的高精度定位能力,这款单北斗定位手持终端不仅能在复杂环境中实现厘米级别的位置锁定,还具备…

五分钟“手撕”二叉树

代码放开头,供大家查阅。 但是对于树来说,更重要的是理解树的概念,树的概念很多,题却是千篇一律,这篇博客详细的讲解了概念,看完必有很大的收获。 目录 一、实现代码 二、什么是树 三、树的重要概念 四…

探索未来教育的智慧教学整体架构:数字化时代的教育革命

在数字化时代,教育领域也正在经历着前所未有的变革和创新。智慧教学整体架构作为教育技术与教学实践的完美结合,正在成为推动教育革命的关键力量。本文将深入探讨智慧教学整体架构的概念、核心组成部分以及其在未来教育中的应用前景。 **智慧教学整体架构…

C++设计模式---装饰器模式

1、介绍 装饰器(Decorator)模式是一种结构型设计模式,它允许你动态地给一个对象添加额外的职责。 装饰器模式主要用于扩展对象的功能,而又不改变其原有结构。在C中,装饰器模式主要应用于那些需要为对象动态添加功能或改…

IO流的转换流

目录 ​编辑 转换流 利用转换流按照指定字符编码读取 利用转换流按照指定字符编码写出 将本地文件中的GBK文件。转成UTF-8 练习 序列化流 反序列化流 /对象操作输入流 序列化流/反序列化流的细节 练习 转换流 是字符流和字节流之间的桥梁 字符转换输入流:InputS…

QWidget 属性——windowTitle·windowIcon·qrc

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:QT ❤️感谢大家点赞👍收藏⭐评论✍️ 文章目录 一、windowTitle二、windowIcon三、qrc 一、windowTitle windowTitle 是一个通常用于表示窗口标题…

金融科技企业如何提高服务效率

一、引言 在金融科技(FinTech)领域,服务效率是企业竞争力的重要组成部分。随着科技的不断进步和市场竞争的加剧,金融科技企业必须不断提升服务效率,以满足客户需求,赢得市场份额。本文将从多个角度详细阐述…

AB测试学习(附有相关代码)

目录 一、基本概念1. 定义2. 作用3. 原理 二、实验基本原则三、实验步骤四、实验步骤详解1. 确定实验目的2. 确定实验变量3. 实验指标设计3.1 实验指标类型(按作用区分)3.1.1 核心指标3.1.2 驱动指标(跟踪指标)3.1.3 护栏指标 3.2…

pycharm爬取BOSS直聘岗位信息

编译器:Pycharm 效果展示如图 简单原理描述:模拟人工动作爬取页面信息,运行脚本后代码自动打开浏览器获取相关信息,模拟人工进行页面跳转并自动抓取页面信息记录到表格中。 深入原理描述:页面翻转的时候会调用接口&am…

Pixi.js学习 (四)鼠标跟随、元素组合与图片位控

目录 一、鼠标移动跟随 1.1 获取鼠标坐标 1.2 鼠标跟随 二、锚点、元素组合 2.1 锚点 2.2 元素组合 三、图片图层 四、实战 例题一:完成合金弹头人物交互 例题二:反恐重击瞄准和弹痕 例题一代码: 例题二代码: 总结 前言 为了提高作…

【会议征稿,五大海内外高校支持】第四届经济发展与商业文化国际学术会议(ICEDBC2024,6月21-23)

第四届经济发展与商业文化国际学术会议(ICEDBC2024)将于2024年6月21-23日在中国大连隆重召开。会议主要围绕“经济发展”“商业文化”等研究领域展开讨论。 旨在为经济,商业的专家学者及企业发展人提供一个分享研究成果、讨论存在的问题与挑战…

调整SinoDB数据库日志模式

在数据库上线后,可能需要变更数据库的日志模式,这可能是由于业务变更或性能调整等原因引起的。数据库日志模式的变更可能涉及单一实例环境或高可用集群环境。本文将介绍如何调整SinoDB数据库的日志模式。 1、 停止应用程序 在修改数据库日志模式之前&am…

Spring 中使用MyBatis

一、Mybatis 的作用 1、MyBatis(前身为iBatis)是一个开源的Java持久层框架,它主要用于与数据库交互,帮助开发者更轻松地进行数据库操作。 持久层:指的是就是数据访问层(dao),是用来操作数据库的。 2、MyB…

【BIM+GIS】Supermap优化BIM模型

文章目录 一、生成缓存二、实例化一、生成缓存 第一步:导出Revit模型 第二步:加载模型 第三步:生成缓存 第四步:添加到场景 二、实例化 实例化技术适用于重复模型较多的情况,可以实现对相同的几何模型只绘制一次,降低了显卡等硬件设备的压力。例如,一幢房屋中存在大量…

C++ day6 练习

#include <iostream>using namespace std;class Animal { private:string name; public:Animal(){}Animal(string name):name(name){}virtual void perform(){cout << "我是" << name <<endl;} };class Lion:public Animal { private:string…

Deploy Kafka for Centos 7

应用介绍 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写&#xff0c;用于处理消费者在网站中的所有动作流数据。 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据&#xff0c;这些数据…