当前位置: 首页 > news >正文

【计算机网络】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.0128.14.47.255
二进制表示1000000 00001110 00100000 0000000010000000 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地址。

单位地址块二进制表示地址数
ISP206.0.64.0/1811001110.0000000.01*16384
大学206.0.68.0/2211001110.000000.010001*1024
一系206.0.68.0/2311001110.0000000.0100010*512
二系206.0.70.0/2411001110.000000.01000110.*256
三系206.0.71.0/2511001110.0000000.010001111.0*128
四系206.0.71.128/2511001110.00000000.01000111.1*128

此外:由于使用了CIDR这种方法,在查找路由表时候可能会匹配多个结果,这个时候会中匹配结果中选择具有最长“网络前缀”的路由,称之为:“最长前缀匹配”longest-prefix matching。越长匹配的会越具体,越准确。因此也称为“最佳匹配”和“最长匹配”。
还有个“使用二叉树线索查找路由表”,用于解决、减少路由表的查找时间问题。有空还需要学习。

总的来说,通过学习可以看出来CIDR在解决IPv4地址资源枯竭问题帮助很大,的确很灵活。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【机器学习】ImageNet的基本概念以及如何使用ImageNet数据集
  • 商品期权会爆仓吗?
  • java-activiti笔记
  • OceanBase V4.2特性解析:简化分区表重命名功能
  • 0101中文乱码-BufferedImage-图片处理
  • 搭载海光3350处理器的高速流量处理模块(用于高速网络数据处理设备应用)
  • Java设计模式-抽象工厂模式-一次性理解透
  • 爬虫配置代理:保护隐私有效地抓取数据
  • C#多线程并发编程深度探索:解锁async、await、Task与lock等关键字的奥秘
  • 【生成式人工智能-八-大型语言模型的能力评估】
  • JAVA集中学习第五周学习记录(二)
  • Spring Boot 快速入门样例【后端 3】
  • Linux Shell实例
  • Python 通过UDP传输超过64k的信息
  • 深度学习入门案例:运用神经网络实现价格分类
  • 【译】理解JavaScript:new 关键字
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 03Go 类型总结
  • classpath对获取配置文件的影响
  • GitUp, 你不可错过的秀外慧中的git工具
  • GraphQL学习过程应该是这样的
  • HTTP 简介
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • java 多线程基础, 我觉得还是有必要看看的
  • JAVA并发编程--1.基础概念
  • js中forEach回调同异步问题
  • Meteor的表单提交:Form
  • Mysql数据库的条件查询语句
  • Python_网络编程
  • React的组件模式
  • Tornado学习笔记(1)
  • vue-router的history模式发布配置
  • 关于for循环的简单归纳
  • 聊聊redis的数据结构的应用
  • 区块链技术特点之去中心化特性
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (0)Nginx 功能特性
  • (02)Hive SQL编译成MapReduce任务的过程
  • (7) cmake 编译C++程序(二)
  • (BFS)hdoj2377-Bus Pass
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (回溯) LeetCode 77. 组合
  • ****三次握手和四次挥手
  • ... 是什么 ?... 有什么用处?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .dwp和.webpart的区别
  • .NET Core 发展历程和版本迭代
  • .NET Core中Emit的使用
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .net Signalr 使用笔记
  • .Net实现SCrypt Hash加密