计算机网络:网络层(无分类编址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

相关文章

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. 查询数据三、事务处

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

Java集合中的List超详细讲解

《Java集合中的List超详细讲解》本文详细介绍了Java集合框架中的List接口,包括其在集合中的位置、继承体系、常用操作和代码示例,以及不同实现类(如ArrayList、LinkedList和V... 目录一,List的继承体系二,List的常用操作及代码示例1,创建List实例2,增加元素3,访问元

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ