计算机网络:网络层(无分类编址CIDR、计算题讲解)

2023-12-18 04:45

本文主要是介绍计算机网络:网络层(无分类编址CIDR、计算题讲解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

带你快速通关期末

文章目录
  • 前言
  • 一、无分类编址CIDR简介
  • 二、构成超网
  • 三、最长前缀匹配
  • 总结


前言

我们在前面知道了分类地址,但是分类地址又有很多缺陷:

  • B类地址很快将分配完毕!
  • 路由表中的项目急剧增长!

一、无分类编址CIDR简介

无分类域间路由选择CIDR:

  • 1.消除了传统的A类,B类和c类地址以及划分子网的概念。
  • 2.融合子网地址与子网掩码,方便子网划分。

CIDR记法:IP地址后加上“/”,然后写上网络前缀(可以任意长度)的位数。e.g.128.14.32.0/20

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

例如:
128.14.35.7/20是某CIDR地址块中的一个地址
二进制:10000000 00001110 00100011 00000111

最小地址:10000000 00001110 00100000 00000000
128.14.32.0

最大地址:10000000 00001110 00101111 11111111
128.14.47.255

地址块:128.14.32.0/20 (选用最小地址)

地址掩码(子网掩码):11111111 11111111 11110000 00000000

例题1:
192.199.170.82/27

解答:
因为地址后面有/27,所以是采用无分类编址CIDR方法,所以网络号占27位,主机号占5位(总和依旧为32位)。
前三位不看,只看最后一位,即82
82的二进制是:01010010,前三位还是网络号,所以
最小地址是:01000000 =>64
192.199.170.64

最大地址是:01011111 =>95
192.199.170.95

地址块:192.199.170.64

地址掩码(子网掩码):11111111 11111111 11111111 11100000

二、构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。
方法:将网络前缀缩短(所有网络地址取交集) 。


要想让他们两个网络聚合,那么就需要取两个网络地址的交集。


206.1.0.0/17与206.1.128.0/17取交集是206.1.0.0/16

例题:
某路由表中有转发接口相同的4条路由表项,其目的网络地址分别为35.230.32.0/21、35.230.40.0/21、35.230.48.0/21、35.230.56.0/21,将该4条路由聚合后的目的网络地址为(C) 。
A.35.230.0.0/19
B.35.230.0.0/20
C.35.230.32.0/19
D.35.230.32.0/20

解答:
根据题给的四个网络地址,我们只需要看第三位就行了。
35.230.32.0/21 00100000
35.230.40.0/21 00101000
35.230.48.0/21 00110000
35.230.56.0/21 00111000

我们看到前三位是相同的,所以取交集时就取到前三位,所以聚合后的网络前缀应该就是19位,聚合后的主机号应该全为0,所以后面的所有都是0,答案应该是35.230.32.0/19

三、最长前缀匹配

使用CIDR时,查找路由表可能得到几个匹配结果(跟网络掩码按位相与),应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。

例题:
路由器RO的路由表见下表:若进入路由器RO的分组的目的地址为132.19.237.5,请问该分组应该被转发到哪一个下一跳路由器()
A. R1
B. R2
C. R3
D. R4


解答:
让目的地址132.19.237.5分别与四个目的网络相与,找到最长的网络前缀。其中有一个全0的目的网络——0.0.0.0/0,这个是默认网关,只有在所有的路由表的目的网络当中没用任何一个目的网络与分组的目的网络想匹配的情况下,才会使用默认网关。

132.0.0.0/8与132.19.237.5相与为132.0.0.0/8(匹配)
132.19.237.5 => 10000100 00010011 11101101 00000101
132.0.0.0/8 => 11111111 00000000 00000000 00000000
相与为:10000100 00000000 00000000 00000000 => 132.0.0.0/8

132.0.0.0/11与132.19.237.5相与为132.0.0.0/11(匹配)
132.19.237.5 => 10000100 00010011 11101101 00000101
132.0.0.0/11 => 11111111 11100000 00000000 00000000
相与为:10000100 00000000 00000000 00000000 => 132.0.0.0/11

132.19.232.0/22与132.19.237.5相与为132.19.236.0/22(不匹配)
132.19.237.5 => 10000100 00010011 11101101 00000101
132.19.232.0/22 => 11111111 11111111 11111100 00000000
相与为:10000100 00010011 11101100 00000000 => 132.19.236.0/22

所以选B(选最长的)


总结

以上就是网络层之无分类编址CIDR(内涵计算例题)的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

这篇关于计算机网络:网络层(无分类编址CIDR、计算题讲解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/507085

相关文章

Java进程CPU使用率过高排查步骤详细讲解

《Java进程CPU使用率过高排查步骤详细讲解》:本文主要介绍Java进程CPU使用率过高排查的相关资料,针对Java进程CPU使用率高的问题,我们可以遵循以下步骤进行排查和优化,文中通过代码介绍... 目录前言一、初步定位问题1.1 确认进程状态1.2 确定Java进程ID1.3 快速生成线程堆栈二、分析

javascript fetch 用法讲解

《javascriptfetch用法讲解》fetch是一个现代化的JavaScriptAPI,用于发送网络请求并获取资源,它是浏览器提供的全局方法,可以替代传统的XMLHttpRequest,这篇... 目录1. 基本语法1.1 语法1.2 示例:简单 GET 请求2. Response 对象3. 配置请求

Java Stream.reduce()方法操作实际案例讲解

《JavaStream.reduce()方法操作实际案例讲解》reduce是JavaStreamAPI中的一个核心操作,用于将流中的元素组合起来产生单个结果,:本文主要介绍JavaStream.... 目录一、reduce的基本概念1. 什么是reduce操作2. reduce方法的三种形式二、reduce

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

C++ vector的常见用法超详细讲解

《C++vector的常见用法超详细讲解》:本文主要介绍C++vector的常见用法,包括C++中vector容器的定义、初始化方法、访问元素、常用函数及其时间复杂度,通过代码介绍的非常详细,... 目录1、vector的定义2、vector常用初始化方法1、使编程用花括号直接赋值2、使用圆括号赋值3、ve

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处