一、网络前缀

划分子网在必定程度上缓解了互联网在发展中遇到的困难。然而在1992年互联网仍然面临三个必须尽早解决的问题:网络

(1) B类地址在1992 年已分配了近一半,眼看就要在1994年3月所有分配完毕!数据结构

(2) 互联网主干网上的路由表中的项目数急剧增加 (从几千个增加到几万个)。less

(3)整个IPv4的地址空间最终将所有耗尽。性能

1987 年,RFC 1009就指明了在一个划分子网的网络中可同时使用几个不一样的子网掩码。blog

使用变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步提升IP地址资源的利用率。ssl

在 VLSM 的基础上又进一步研究出无分类编址方法, 它的正式名字是无分类域间路由选择 CIDR (Classless Inter-Domain Routing)。ci

CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,于是能够更加有效地分配IPv4的地址空间。CIDR使用各类长度的“网络前缀”(network-prefix) 来代替分类地址中的网络号和子网号。IP 地址从三级编址(使用子网掩码)又回到了两级编址。资源

无分类的两级编址的记法是:路由

CIDR 使用“斜线记法”(slash notation),它又称为 CIDR 记法,即在IP地址面加上一个斜线“/”,而后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中1的个数) 。 例如: 220.78.168.0/24 io

CIDR把网络前缀都相同的连续的IP地址组成“CIDR 地址块”。

128.14.32.0/20 表示的地址块共有212个地址(由于斜线后面的20是网络前缀的位数,因此这个地址的主机号是12位)。这个地址块的起始地址是128.14.32.0。 在不须要指出地址块的起始地址时,也可将这样的地址 块简称为“/20 地址块”。

128.14.32.0/20 地址块的最小地址:128.14.32.0

128.14.32.0/20 地址块的最大地址:128.14.47.255

全0和全1的主机号地址通常不使用。

路由聚合(route aggregation)

一个CIDR 地址块能够表示不少地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目能够表示不少个(例如上千个)原来传统分类地址的路由。

路由聚合有利于减小路由器之间的路由选择信息的交换,从而提升了整个互联网的性能。

路由聚合也称为构成超网(supernetting)。CIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。 对于 /20 地址块,它的掩码是20个连续的1。斜线记法中的数字就是掩码中1的个数。

10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的0省略。

10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。此掩码可表示为:

网络前缀的后面加一个星号* 的表示方法,如 00001010 00*,在星号* 以前是网络前缀,而星号* 表示IP地址中的主机号,能够是任意值。

经常使用的CIDR 地址块

构成超网

前缀长度不超过23位的CIDR 地址块都包含了多个C 类地址。

这些C 类地址合起来就构成了超网。CIDR 地址块中的地址数必定是2的整数次幂。网络前缀越短,其地址块所包含的地址数就越多。 而在三级结构的IP地址中,划分子网是使网络前缀变长。

CIDR 的一个好处是:能够更加有效地分配IPv4的地址空间,可根据客户的须要分配适当大小的CIDR地址块。

二、最长前缀匹配

使用CIDR 时,路由表中的每一个项目由“网络前缀” 和“下一跳地址”组成。在查找路由表时可能会获得不止一个匹配结果。

应当从匹配结果中选择具备最长网络前缀的路由: 最长前缀匹配(longest-prefix matching)。网络前缀越长,其地址块就越小,于是路由就越具 体(morespecific)。最长前缀匹配又称为最长匹配或最佳匹配。

【例】

收到的分组的目的地址:D = 206.0.71.130

路由表中的项目:

206.0.68.0/22       1

206.0.71.128/25   2

查找路由表中的第 1 个项目:

第 1 个项目206.0.68.0/22 的掩码M有22个连续的1。

M = 11111111 11111111 11111100 00000000

所以只需把D的第3个字节转换成二进制。

M =  11111111 11111111 11111100 00000000

AND   D =206.0.01000111.130

206.0.01000100.0 与 206.0.68.0/22 匹配!

查找路由表中的第 2 个项目:

AND      D =206.0.71.10000010

第 2 个项目

206.0.71.128/25 的掩码M 有 25 个连续的1。

M = 11111111 11111111 11111100 00000000

所以只需把D 的第 4 个字节转换成二进制。

M =    11111111 11111111 11111111 10000000

AND    D =   206.0.71.10000010

206.0.71.10000010 与 206.0.71.128/25 匹配!

D AND (11111111 11111111 11111100 00000000) = 206.0.68.0/22            匹配

D AND (11111111 11111111 11111111 10000000) = 206.0.71.128/25         匹配

选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。

三、使用二叉线索查找路由表

当路由表的项目数很大时,怎样设法减少路由表的查找时间就成为一个很是重要的问题。

为了进行更加有效的查找,一般是将无分类编址的路由表存放在一种层次的数据结构中,而后自上而下地按层次进行查找。这里最经常使用的就是二叉线索 (binary trie)。

IP 地址中从左到右的比特值决定了从根结点逐层向下 层延伸的路径,而二叉线索中的各个路径就表明路由表中存放的各个地址。为了提升二叉线索的查找速度,普遍使用了各类压缩技术。

计算机网络cidr是啥,计算机网络(4.11)网络层- 无分类编址CIDR相关推荐

  1. 【学习笔记】网络层——无分类编址CIDR、ARP协议、DHCP协议和ICMP协议

    文章目录 一. CIDR ① 定义 ② 构成超网 ③ 最长前缀匹配 二. ARP协议 ① 定义 ② 例题 三. DHCP协议 ① 主机如何获取IP ②DHCP协议 四. ICMP协议 ① ICMP差错 ...

  2. 4.3.6无分类编址CIDR(构成超网)

    4.3.6无分类编址CIDR ps:无类别域间路由(Classless Inter-Domain Routing.CIDR) 文章目录 4.3.6无分类编址CIDR 1.无分类编址CIDR 2.构成超 ...

  3. 计算机网络-网络层(IPV4地址,网络转化技术NAT,子网划分和子网掩码,无分类编址CIDR,构成超网,最长前缀匹配)

    文章目录 1. 分类IP地址 2. NAT技术 3. 子网划分和子网掩码 4. 无分类编址CIDR 1. 分类IP地址 IP地址:全世界唯一的32位/4字节标识符,标识路由器主机的接口. IP地址=网 ...

  4. 无分类编址CIDR(构造超网)

    无分类编址CIDR(构造超网) 1. 无分类编址CIDR(Classless Inter-Domain Routing,读音"sider") 无分类编址:即无类别域间路由. 无分类 ...

  5. 4.3.6 无分类编址CIDR

    4.3.6 无分类编址CIDR

  6. 4.3.6 无分类编址CIDR(构成超网)

    目录 无分类编址CIDR 构成超网 最长前缀匹配 无分类编址CIDR 构成超网 最长前缀匹配

  7. IP地址之无分类编址CIDR

    IP地址表示着一台计算机的逻辑地址. IP地址一开始采用A.B.C等分类编址.最后改成了无分类编址CIDR. 1.A.B.C.D.E分类 在最开始的时候,计算机科学家将IP地址分为A.B.C.D.E类 ...

  8. |cisco|IPv4地址-构造超网(无分类编址CIDR)/25网络前缀-》主机ip地址_子网掩码_默认网关、路由表_下一跳、

    网络前缀 构造超网 也就是 路由聚合(采用无分类编址方法) 根据各个网络所指定的地址块完成以下工作. 以方便各个主机之间相互通信: 1.给各个主机分配1个ip地址并且设置子网掩码 2.给各个路由器的各 ...

  9. 计算机网络之构造超网(无分类编址)

    构造超网,也称为路由聚合. 为什么要进行路由聚合: 因为如果不聚合的话,路由转发表将会很大,例如下图,将会在路由转发表上增加5条记录,而聚合后就只增加一个了. 如何进行路由聚合呢? 找出共同前缀. 例 ...

最新文章

  1. 简易的c语言编译器,实现简易的C语言编译器(part 8)
  2. 转:纯CSS实现“鼠标移过显示层”效果
  3. 【超分辨率实验】基于高斯模糊的训练数据集构建方法改进(matlab)
  4. Nginx 笔记与总结(14)expires 缓存设置
  5. 史上最可怕最震撼的46亿年世界历史!看完我跪了....
  6. CSS定义字体间距 字体行与行间距
  7. c#自定义控件做漂亮的列表
  8. ZOJ 3993 2017CCPC秦皇岛 M:Safest Buildings
  9. Ubuntu18.04安装Gstreamer1.0(六)
  10. 融资12亿的春雨CEO去世,为什么创业者的焦虑停不下来?
  11. Atitit Spring事务配置不起作用可能出现的问题: .是否是数据库引擎设置不对造成的【笔者就遇到了这个问题,由于笔者使用的是mysql数据,但是在创建表的时候引擎默认(mysql中引擎默认为
  12. 如何成功安装旧版本火狐,成功安装firebug和firepath插件
  13. 推荐.Net、C# 逆向反编译四大工具利器(请勿用来非法行为)
  14. 多臂赌博机Multi-Armed Bandit(MAB)
  15. 解决VBA运行时错误13 类型不匹配问题
  16. php 读取解析excel文件内容,怎么用PHP读取Excel文件信息及内容?(图文+视频教程)...
  17. endata 电影票房响应数据破解
  18. 深度学习工作站攒机指南
  19. live555 android,live555
  20. C语言——typedef的用法

热门文章

  1. C++课程设计快递业务管理系统实验报告
  2. C#调用系统蜂鸣,警报声
  3. 【深度学习kears+tensorflow】电影评论分类:二分类问题
  4. 前端写代码的推荐工具
  5. Vue.js devtools官网最新下载 中文,绿色版Vue.js devtools下载谷歌插件
  6. html里如何将数字转换为条形码,excel中如何把数字变成条形码?
  7. 更新wlan.bin文件
  8. Vue的MVVM(model、view、viewmodel)
  9. R语言实现RMF模型
  10. pixhawk固定翼起飞逻辑分析