无分类编址 CIDR

在域名系统出现之后的第一个十年里,基于分类网络进行地址分配和路由IP数据包的设计就已明显显得可扩充性不足(参见RFC 1517)。为了解决这个问题,互联网工程工作小组在1993年发布了一新系列的标准——RFC 1518和RFC 1519——以定义新的分配IP地址块和路由IPv4数据包的方法。

一个IP地址包含两部分:标识网络的前缀和紧接着的在这个网络内的主机地址。在之前的分类网络中,IP地址的分配把IP地址的32位按每8位为一段分开。这使得前缀必须为8,16或者24位。因此,可分配的最小的地址块有256(24位前缀,8位主机地址,28=256)个地址,而这对大多数企业来说太少了。大一点的地址块包含65536(16位前缀,16位主机,216=65536)个地址,而这对大公司来说又太多了。这导致不能充分使用IP地址和在路由上的不便,因为大量的需要单独路由的小型网络(C类网络)因在地域上分得很开而很难进行聚合路由,于是给路由设备增加了很多负担。于是出现了无分类编址CIDR。

1. CIDR

无分类编址CIDR的全名是无分类域间路由选择CIDR(Classless Inter-Domain Routing)。

无类别域间路由是基于可变长子网掩码(VLSM)来进行任意长度的前缀的分配的。在RFC 950(1985)中有关于可变长子网掩码的说明。CIDR包括:

  • 指定任意长度的前缀的可变长子网掩码技术。遵从CIDR规则的地址有一个后缀说明前缀的位数,例如:192.168.0.0/16。这使得对日益缺乏的IPv4地址的使用更加有效。
  • 将多个连续的前缀聚合成超网,以及,在互联网中,只要有可能,就显示为一个聚合的网络,因此在总体上可以减少路由表的表项数目。聚合使得互联网的路由表不用分为多级,并通过VLSM逆转“划分子网”的过程。
  • 根据机构的实际需要和短期预期需要而不是分类网络中所限定的过大或过小的地址块来管理IP地址的分配的过程。

CIDR主要是一个按位的、基于前缀的,用于解释IP地址的标准,是一种编址方法。

2. 网络前缀

CIDR把网络号改成为“网络前缀”(network-prefix)(或简称为“前缀”),用来指明网络,剩下的部分仍然是主机号,用来指明主机。

CIDR的记法: IP地址 ::= {<网络前缀>,<主机号>}

其和分类地址不同的地方在于网络前缀的位数n不是固定的数,而是可以在0~32之间选取任意的值(见下图)。

在这里插入图片描述

CIDR使用“斜线记法”(slash notation),或称为CIDR记法,即在IP地址后面加上斜线"/",斜线后面是网络前缀所占的位数。

例如:使用CIDR表示一个IP地址128.14.35.7/20,二进制IP地址的前20位是网络前缀,剩下的12位是主机号。

注:网络前缀相当于分类地址法的网络号。

3. 地址块

3.1 CIDR地址块

CIDR把网络前缀都相同的所有连续IP地址组成一个“CIDR地址块”,一个CIDR地址块包含的IP地址数目取决于网络前缀的位数。也就是说,只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的最小地址和最大地址,以及地址块中的地址数。

例如:已知IP地址128.14.35.7/20是某个CIDR地址块中的一个地址块,用二进制表示如下:

  128.14.35.7/20 = 10000000 00001110 00100011 00000111

其中前20位是网络前缀(加粗),后面12(32-20)位是主机号。

最小地址最大地址
128.14.32.0128.14.47.255
10000000 00001110 00100000 0000000010000000 00001110 00101111 11111111

可以由主机号的位数知道,这个地址块的IP地址共有212个,去掉主机号为全0和全1的地址(最小地址和最大地址)后,可指派的地址数是212-2个。

我们常用地址块中的最小地址和网络前缀的位数指明一个地址块(不必每次都减2算出可指派的地址数),如128.14.32.0/20表示上面的地址块,其二进制代码的简写形式为:10000000 00001110 0010* ,“*”代表了主机号字段的所有0。

在不需要指明网络地址时,可以把这样的地址块简称为"/20地址块"。

注:128.14.32.7是IP地址,但未指明网络前缀长度,故不知道网络地址是什么。

128.14.32.7/20也是IP地址,其指明了网络前缀为20位,所以可得知其网络地址。

128.14.32.0/20是包含多个IP地址的地址块或网络前缀(前缀),也可以简写为 128.14.32/20

3.2 常用地址块

下表是常用的CIDR地址块:

CIDR前缀长度点十分进制包含地址数相当于包含分类的网络数
/13255.248.0.0512K8个B类或2048个C类
/14255.252.0.0256K4个B类或1024个C类
/15255.254.0.0128K2个B类或512个C类
/16255.255.0.064K1个B类或256个C类
/17255.255.128.032K128个C类
/18255.255.192.016K64个C类
/19255.255.224.08K32个C类
/20255.255.240.04K16个C类
/21255.255.248.02K8个C类
/22255.255.252.01K4个C类
/23255.255.254.05122个C类
/24255.255.255.02561个C类
/25255.255.255.1281281/2个C类
/26255.255.255.192641/4个C类
/27255.255.255.224321/8个C类

说明:表中K表示210即1024,网络前缀长度在13到27之间是最常用的。

3.3 特殊地址块

CIDR地址中还有三个特殊地址块,即:

(1)前缀n=32,即32位IP地址都是前缀,没有主机号,这其实就是一个IP地址,用于主机路由。

(2)前缀n=31,这个地址块中只有两个IP地址,主机号分别为0和1,用于点对点链路。

(3)前缀n=0,同时IP地址也全是0,即0.0.0.0/0,用于默认路由。

4. 地址掩码(子网掩码)

地址掩码(简称掩码)由一连串1和接着的一连串0组成,1的个数就是网络前缀的长度,地址掩码又称为子网掩码。在CIDR记法中,斜线后面的数字就是地址掩码中1的个数。

例如:/20地址块的地址掩码是 11111111 11111111 11110000 00000000(20个1和12个0),这个掩码用CIDR记法表示就是255.255.240.0/20

对于分类IP地址,其地址掩码是固定的,如下:

地址类型地址掩码
A类地址255.0.0.0或255.0.0.0/8
B类地址255.255.0.0或255.255.0.0/16
C类地址255.255.255.0或255.255.255.0/24

CIDR使用斜线记法可以让我们知道网络前缀的数值,但是计算机是看不见斜线记法的,而在二进制格式下,使用32位的地址掩码(address mask)和IP地址进行按位AND运算(逻辑乘法运算)从而得出网络地址。

例如:计算IP地址是128.14.35.7/20的网络地址

​ 128 · 14 · 35 · 7

二进制IP地址 10000000 00001110 00100011 00000111

地址掩码 11111111 11111111 11110000 00000000

按位AND运算 100000000 00001110 00100000 00000000

网络地址 128 · 14 · 32 · 0 /20

由上面的运算可知,IP地址128.14.35.7/20所在的网络地址是128.14.32.0/20。

5. 构造超网

将多个连续的前缀网络聚合成一个网络,就称为超网。

例如,有这样两个地址块:206.0.71.0/25 206.0.71.128/25,这两个地址块就可以构造一个超网206.0.70.0/24。点十分进制看起来可能不太明显,让我们换成二进制表示,如下表:

地址块代号地址块二进制表示的地址块
A206.0.70.0/2411001110 00000000 01000110 *
B206.0.71.0/2511001110 00000000 01000110 0*
C206.0.71.128/2511001110 00000000 01000110 1*

表中*是一种常用的简写方式,表示星号后面的二进制主机号都省略了。

可以看到二进制表示的地址块,B和C的第25位分别为0和1,是当掩码为24位时第25位的所有组合,所以B和C可以整合为一个掩码位24为的一个超网。

这样做的好处可以减小路由表上的条目数。

所以从另一个方面称之为路由聚合。

路由聚合:一个大的CIDR地址块中往往包含很多小地址块,所以在路由器的转发表中就利用较大的地址块来代替许多较小的地址块,由较大地址块再向下转发,这就是路由聚合。

路由聚合使得转发表中只用一个项目就可以表示原来传统分类地址的很多个路由项目,大大压缩了转发表所占的空间,减少了查找转发表所需的时间。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识数据结构及复杂度

1、数据结构 数据结构数据结构&#xff08;描述和组织数据&#xff09;&#xff0c;Java会把一些数据结构封装起来&#xff0c;在java中数据结构叫做集合。 数据结构&#xff1a;&#xff08;data structer&#xff09;是计算机存储、组织数据的方式&#xff0c;指相互之间存在…

mac电脑下载Netflix Mac(奈飞客户端)安装教程

Netflix Mac&#xff0c;奈飞官方客户端&#xff0c;带给您无限的电影和剧集体验&#xff01;与朋友分享最新热门剧集、电影&#xff0c;与家人一起享受高品质的流媒体内容。 通过Netflix Mac&#xff0c;您可以轻松地搜索、浏览和观看各种类型的影片&#xff0c;包括剧情片、…

【鸿蒙应用ArkTS开发系列】- 选择图片、文件和拍照功能实现

文章目录 前言创建多媒体Demo工程创建MediaBean 实体类创建MediaHelper工具类API标记弃用问题动态申请多媒体访问权限实现选择图片显示功能打包测试 前言 在使用App的时候&#xff0c;我们经常会在一些社交软件中聊天时发一些图片或者文件之类的多媒体文件&#xff0c;那在鸿蒙…

GitHub 2023排名前十的最佳开源项目

开源软件&#xff08;OSS&#xff09;彻底改变了当今软件开发的方式。在数百万个开源GitHub项目中&#xff0c;要找到最适合需求的开源项目可能会让人不知所措。 今天给大家列出2023年增长最快的前10个开源GitHub仓库。通过这些增长最快的开源项目&#xff0c;也可以从整体上了…

算法 离散化

整数离散化 适用条件 适用于有序的整数序列该序列的值域很大&#xff0c;该序列的数的个数很少使用的是数的相对大小而非绝对大小 算法思路 原数组 a &#xff1a; 数组下标&#xff1a;0 1 2 3 4 数组元素&#xff1a;1 2 2 5 109 映射数组 &#xff1a; 数组下标&…

Flask教程入门

1.学习Flask之前&#xff0c;首先需要对URL进行一定的了解。 URL的一些知识&#xff1a; 1.URL只能包含ASCII码里面一些可显示的字符&#xff0c;如A-Z&#xff0c;a-z&#xff0c;0-9&#xff0c;&&#xff0c;#&#xff0c;%&#xff0c;&#xff1f;&#xff0c;/等字符…

数据链路层——以太网协议、ARP协议

目录 以太网协议 以太网协议的简介 以太网协议所处的位置 以太网帧&#xff08;或者说MAC帧&#xff09;的格式 局域网通信原理 碰撞避免算法&#xff08;包含MTU的知识点&#xff09; 局域网攻击原理 ARP协议 ARP协议所在的位置 为什么要存在ARP协议&#xff08;或者…

nodejs669在线图书借阅管理系统vue前端

系统的设计与实现主要实现角色有管理员和用户,管理员在后台管理用户模块、用户表模块、图书借阅模块、图书归还模块、图书分类模块、token表模块、收藏表模块、书籍信息模块、图书资讯模块、留言板模块、书籍信息评论表模块、注册用户模块、配置文件模块、处罚记录模块、在线客…

Mysql更新Blob存储的Josn数据

Mysql更新blob存储的Josn数据 记录一次mysql操作blob格式存储的json字符串数据 1、检查版本 -- 版本5.7以上才可以能执行json操作 select version(); 2、创建测试数据 -- 创建测试表及测试数据 CREATE TABLE test_json_table AS SELECT UUID(), {"test1": {"…

Java---权限修饰符、final、static

文章目录 1. 权限修饰符2. final(最终态)3. static(静态) 1. 权限修饰符 修饰符同一个类中同一个包中的子类和无关类不同包的子类不同包的无关类private√默认√√protected√√√public√√√√ 2. final(最终态) 1. final关键字是最终的意思&#xff0c;可以修饰成员方法、…

OpenCV数字图像处理——检测出图像中的几何形状并测量出边长、直径、内角

一、简介 在传统的自动化生产尺寸测量中&#xff0c;常用的方法是利用卡尺或千分尺对被测工件的某个参数进行多次测量&#xff0c;并取这些测量值的平均值。然而&#xff0c;这些传统的检测设备或手动测量方法存在着一些问题&#xff1a;测量精度不高、测量速度缓慢&#xff0…

【单调栈】最大二叉树

题目&#xff1a; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点&#xff0c;其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。 返回 nums…

python 爬虫之 爬取网站信息并保存到文件

文章目录 前期准备探索该网页的HTML码的特点开始编写代码存入文件总的程序文件存储效果 前期准备 随便找个网站进行爬取&#xff0c;这里我选择的是(一个卖书的网站&#xff09; https://www.bookschina.com/24hour/62700000/ 我的目的是爬取这个网站的这个页面的书籍的名称以…

git打tag和版本控制规范

我们在开发中经常会遇到要打tag的情况&#xff0c;但这个tag应该如何打呢&#xff1f;我不知道大家平时是怎么打的&#xff0c;但我基本就是从1.0.0开始进行往上递增&#xff0c;至于如何递增&#xff0c;基本凭感觉。今天同事新打了一个tag进行发版&#xff0c;然后被架构点名…

佳易王个体诊所管理系统电子处方软件,个体诊所人员服务软件,卫生室配方模板电子病历系统教程

佳易王个体诊所管理系统电子处方软件&#xff0c;个体诊所人员服务软件&#xff0c;卫生室配方模板电子病历系统教程 软件试用版下载可以点击最下方官网卡片 软件功能&#xff1a; 1、配方模板&#xff1a;可以自由添加配方分类&#xff0c;预先设置药品配方&#xff0c;可以…

【赠书第9期】巧用ChatGPT高效搞定Excel数据分析

文章目录 前言 1 操作步骤 1.1 数据清理和整理 1.2 公式和函数的优化 1.3 图表和可视化 1.4 数据透视表的使用 1.5 条件格式化和筛选 1.6 数据分析技巧 1.7 自动化和宏的创建 2 推荐图书 3 粉丝福利 前言 ChatGPT 是一个强大的工具&#xff0c;可以为你提供在 Exce…

Mysql中的引擎介绍(InnoDB,MyISAM,Memory)

MySQL引擎就是指表的类型以及表在计算机上的存储方式。 MySQL数据库及其分支版本主要的存储引擎有三种&#xff0c;分别是 InnoDB、MyISAM、 Memory&#xff0c;还有一些其他的&#xff0c;CSV、Blackhole等&#xff0c;比较少见&#xff0c;可以使用SHOW ENGINES语句来查看。结…

蓝桥杯day02——第三大的数

题目 给你一个非空数组&#xff0c;返回此数组中 第三大的数 。如果不存在&#xff0c;则返回数组中最大的数。 示例 1&#xff1a; 输入&#xff1a;[3, 2, 1] 输出&#xff1a;1 解释&#xff1a;第三大的数是 1 。 示例 2&#xff1a; 输入&#xff1a;[1, 2] 输出&…

随时随地,打开浏览器即可体验的在线PS编辑器

即时设计 即时设计是国产的专业级 UI 设计工具&#xff0c;不限平台不限系统&#xff0c;在浏览器打开即用&#xff0c;能够具备 Photoshop 的设计功能&#xff0c;钢笔、矢量编辑、矩形工具、布尔运算等设计工具一应俱全&#xff0c;是能够在线使用的 Photoshop 免费永久工具…

【开发实践】网页预览excel表格原版样式

一、需求分析 由于业务部门需要&#xff0c;在导出excel表格页面&#xff0c;不需要先下载&#xff0c;就可以直接在页面上预览该表格文件。 二、代码实现 使用Luckysheet实现&#xff1a; 什么是Luckysheet Luckysheet &#xff0c;一款纯前端类似excel的在线表格&#xff0…