如何确定子网地址(范例)?

2024-02-04 03:04
文章标签 地址 确定 范例 子网

本文主要是介绍如何确定子网地址(范例)?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

看到网上有人询问下面的题目:

某路由器收到一个数据报文,其目标地址为20.112.17.12,该地址所属的子网是?
A 20.96.0.0/11
B 20.112.16.0/24
C 20.112.17.8/30
D 20.112.18.0/23

这个问题的解决如下思路:

       这是根据网络地址和掩码判断目的ip是否在同一网络地址范围内的问题,答案是A


首先明确,ipv4地址32位,为了好记忆,分成四段,每8位一段。标识网上一个物理设备。ip地址分为网络地址和主机地址两部分,就像电话号码一样,前面是交换机局编号,后面是用户号码,交换机局编号代表一个物理交换节点对应起来。这样就把空间位置确定下来。

任何一个设备,节点设备或者终端设备,要通信就得进行交换,就是给一个数据包确定处理的路由方向。要通信就得确定一个数据包是否是本设备的ip地址,是否是本地直接可达地址,是否是不可达地址,需要借助网关设备进行通信,这些就需要掩码,就是目的ip和路由表里具体路由进行截取一段长度的ip地址后进行比较,一致就认为符合路由条目,按照路由条目处理。就像邮局处理信件,根据邮编和地址进行分拣,比较邮编是本邮局的留下,地址是邮局的留下,其他本地邮编,就投递,不是本地邮编,送到上级局处理。是本邮局留下,是本地辖区投递,不是本辖区送上级,地址不详无法投递,报错送上级局返回消息给发件人。

掩码的作用是根据IP地址和子网掩码计算网络地址,来确定数据包的送出或接收数据的落地规则。

(1)将IP地址与子网掩码的ip地址格式转换成二进制数

(2)将二进制形式的IP地址与子网掩码做**“与”运算**

(3)将得出的结果转化为十进制,便得到网络地址

(4)运算之后网络号相同的IP,就属于一个网段

掩码是表示ip地址32位中截取获得网络地址的位数。标准的abc类ip地址中,掩码只能0,8,16,24,32.变长掩码使得掩码可以不是前者,可以在0-32间任意设置,不一定是8的倍数。网络地址就是网络位保留不变,全部主机位为0的一个特殊的ip地址。一个ip地址,掩码确定后,ip地址四段中要么是纯网络地址位,要么是纯主机地址位,既有网络地址位,又有主机地址位的四段中只能有一段。该段的值就是令主机位为n,主机位取值就是0-2^n-1,共2^n,把网络地址位看成一个整体k,k的值就在0-2^(8-n)间取值,该段值就是kx2^n,这个值就是网络地址在该段的值。两个ip,只要k值相同,就是同一子网。

你可以这样理解,就是一根软绳,分成256段,每段都标上标签0-255,分两份就中间一折,0-127,128-255,每段128小段。分四段再从中间一折,子网划分就是用主机位的2^n把256分成2^(8-n)大段,具体取值由网络位的k值决定。如n=6,就是每大段64个小段,分成4份,k取值0-3,该段ip地址范围就在0-63,64-127,128-191,192-255这些范围里。
是否在同一子网,就是ip地址四段中那一段的既有主机位又有网络位的的那一段,网络位相同,网络位相同就是主机位为n的话,该段值除2^n得到的整数应该相同。当主机地址全1,再加1,网络位就进位加1,主机位变成全0,ip就变成下一个子网的网络地址。如ip地址一段中网络位是3位,主机位是5位。把网络位3为看成一个整体,这个整体的权值就是2^5=32,网络3位,从000-111共8种可能性,子网地址在该段就是0,32,64,96.128,160,192,224这8中32倍数的组合。而主机位5位就是0-31的可能性,ip的十进制值就是前面的32倍数加上后五位的0到31.

我们根据这三步,段,块,数计算这类问题。
如上,我们要根据掩码确定ip地址中既有主机网和网络位是ip地址四段中那一段,主机位n是多少位,主机的块大小(主机位有多少取值的可能性)是多少2^n?该段ip十进制值除块大小2^n的值取整,两个ip对应端得到整数一致,就在同一子网。掩码在该段的值就是256-2^n。
A 20.96.0.0/11 掩码11位,显然大于8小于16,第二段既有网络位又有主机位,主机位16-11=5,块大小2^5=32,ip第二段96/32=3,而目标地址20.112.17.12,ip第一段相同都是20,112/32取整3,余16,显然这个子网在ip地址第二段该段取值分为范围就是96-127,子网地址就是20.96.0.0/11,掩码的ip格式就是255.224.0.0 A答案符合要求。
B 20.112.16.0/24 这个掩码是24,主机位就是32-24=8,所以这要ip地址前三段是网络地址,前三段相同就行,显然20.112.17.12前三段不同,故B不符合。

C 20.112.17.8/30 这个掩码是30位,主机位就是32-30=2,块大小2^2=4,既有网络位又有主机位的是ip地址第四段,8/4=2,目标地址为20.112.17.12,第四段12/4=3,不相同。 20.112.17.8/30这网络地址第四段的变化范围就是8-11,显然C不符合
D 20.112.18.0/23 这个掩码是23,ip地址第三段既有网络地址,又有主机地址,主机位24-23=1,块大小就是2^1=2,第三段的值18/2=9,而目标地址为20.112.17.12,第三段17/2=8余1,显然整数不相等,D答案的网络地址ip变化范围是18-19,17显然不在这个范围。
因此,只有答案A才是正确答案。
可参考子网划分详解与实例解析-全网最好-CSDN博客

收起

这篇关于如何确定子网地址(范例)?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

如何确定 Go 语言中 HTTP 连接池的最佳参数?

确定 Go 语言中 HTTP 连接池的最佳参数可以通过以下几种方式: 一、分析应用场景和需求 并发请求量: 确定应用程序在特定时间段内可能同时发起的 HTTP 请求数量。如果并发请求量很高,需要设置较大的连接池参数以满足需求。例如,对于一个高并发的 Web 服务,可能同时有数百个请求在处理,此时需要较大的连接池大小。可以通过压力测试工具模拟高并发场景,观察系统在不同并发请求下的性能表现,从而

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

【干货分享】基于SSM的体育场管理系统的开题报告(附源码下载地址)

中秋送好礼 中秋佳节将至,祝福大家中秋快乐,阖家幸福。本期免费分享毕业设计作品:《基于SSM的体育场管理系统》。 基于SSM的体育场管理系统的开题报告 一、课题背景与意义 随着全民健身理念的深入人心,体育场已成为广大师生和社区居民进行体育锻炼的重要场所。然而,传统的体育场管理方式存在诸多问题,如资源分配不均、预约流程繁琐、数据统计不准确等,严重影响了体育场的使用效率和用户体验。

Exchange 服务器地址列表的配置方法与注意事项

Exchange Server 是微软推出的一款企业级邮件服务器软件,广泛应用于企业内部邮件系统的搭建与管理。配置 Exchange 服务器地址列表是其中一个关键环节。本文将详细介绍 Exchange 服务器地址列表的配置方法与注意事项,帮助系统管理员顺利完成这一任务。 内容目录 1. 引言 2. 准备工作 3. 配置地址列表 3.1 创建地址列表 3.2 使用 Exchange

匹配电子邮件地址的正则表达式

这个正则表达式 QRegularExpression regex(R"((\w+)(\.|_)?(\w+)@(\w+)(\.(\w+))+))"); 用于匹配电子邮件地址的格式。下面是对这个正则表达式的逐步解析和解释: 1. QRegularExpression 构造函数 QRegularExpression regex(R"((\w+)(\.|_)?(\w*)@(\w+)(\.(\w+))+

[Linux]:环境变量与进程地址空间

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:Linux学习 贝蒂的主页:Betty’s blog 1. 环境变量 1.1 概念 **环境变量(environment variables)**一般是指在操作系统中用来指定操作系统运行环境的一些参数,具有全局属性,可以被子继承继承下去。 如:我们在编写C/C++代码的时,在链接的时候,我们并不知

C# 如何同时Ping多个IP地址

在C#中,如果需要同时ping多个IP地址,可以采用多线程或异步编程的方式来实现,以便可以同时进行多个ping操作。以下是两种常用的方法: 方法一:使用多线程(Task 或 Thread) 使用Task是更现代和推荐的方式,因为它内置了更好的线程管理和异常处理机制。以下是一个使用Task的示例,展示如何同时ping多个IP地址: using System; using System.Co

Modbus从基地址 1 和基地址 0 开始的区别

Modbus 是一种应用于工业自动化领域的通信协议,在设备之间进行数据交换。它支持多种数据类型(如线圈、离散输入、输入寄存器、保持寄存器),每种数据类型都有特定的地址范围。在使用 Modbus 通信时,设备的地址可以从 1 或 0 开始计数,这取决于具体实现。这种不同的基地址(1 或 0)选择,可能导致实际读取或写入的地址存在偏差,因此理解其差异是十分重要的。 1. Modbus 地址的基本概念