【计算机网络】CIDR无分类编址知识学习

文章目录

  • 1、CIDR引入的背景
  • 2、CIDR是什么?
    • [2.1 CIDR的2个特点](#2.1 CIDR的2个特点)
    • [2.2 CIDR斜线记法注意区分细节](#2.2 CIDR斜线记法注意区分细节)
    • [2.3 路由聚合or构成超网](#2.3 路由聚合or构成超网)
    • [2.4 CIDR里面的掩码(不是叫子网掩码)](#2.4 CIDR里面的掩码(不是叫子网掩码))
    • [2.5 CIDR几种等效的记法形式](#2.5 CIDR几种等效的记法形式)
    • [2.6 对于"网络前缀"不是8的整数倍时候,要多加注意](#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地址资源枯竭问题帮助很大,的确很灵活。

相关推荐
潮汐退涨月冷风霜1 小时前
机器学习之非监督学习(四)K-means 聚类算法
学习·算法·机器学习
GoppViper1 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
羊小猪~~1 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
Charles Ray2 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
我要吐泡泡了哦3 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1233 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai5 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发
北岛寒沫5 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
铁匠匠匠7 小时前
从零开始学数据结构系列之第六章《排序简介》
c语言·数据结构·经验分享·笔记·学习·开源·课程设计
架构文摘JGWZ8 小时前
Java 23 的12 个新特性!!
java·开发语言·学习