不论是考研还是考各种计算机类的证,大家或多或少都会遇到网络部分的一种题型,大体的归类就是以下几种:

  1. 已知一个IP是192.XX.XX.XX,子网掩码是255.255.255.0,那么它的网络地址是多少?
  2. 已知某主机的ip地址是192.168.100.200,子网掩码为255.255.255.192,其网络内可用的ip地址个数为多少?
  3. 一个A类ip地址的子网掩码是255.255.240.0,共有几位被用来划分子网?且可以划分多少个子网?每个子网ip地址数量是多少?
  4. 已知IP地址为10.135.255.19,子网掩码为255.255.255.248,那么该网的广播地址为多少?

这里就详细记录一下这类问题的解决方案,看这些问题之前,先补充一下网络里面一些关于IP的知识。

IP地址的格式和分类

IP地址是一个网卡在网络世界的通讯地址,相当于我们现实生活中的门牌号,既然是门牌号就必须要保证唯一,就好比,你住13号楼2单元602,我的地址也是13号楼2单元602,那快递小哥就懵逼了,所以,有时候咱们电脑弹出网络地址冲突,上不去网的情况,多半就是Ip冲突。

在网际层中,利用 IP 地址将数据传输到目的地。为了能够使数据正确地发送到目标主机上,网络上的 IP 地址必须有一定的规则来识别主机的位置。就拿10.11.12.13来说,这是一个IP地址,这个地址被点分割为四个部分,每个部分8个bit,所以IP地址总共是32位。本来32位的IP设计就导致数量不多,设计者们又将它划分为了5种类型:

为了便于寻址,了解目标主机的位置,每个 IP 地址包括两个标识码(ID),即网络 ID 和主机 ID。同一个物理网络上的所有主机都使用同一个网络 ID,网络上的一个主机(包括网络上的工作站、服务器和路由器等)有一个主机 ID 与其对应。这个ID的确认就是使用上面提到的32位来进行划分,说白了就是32个二进制位,前几位为网络ID,后几位为主机ID。

  • A 类:前 8 位表示网络 ID,网络 ID 的第一位以 0 开始的地址。后 24 位表示主机 ID;该地址分配给政府机关单位使用。
  • B 类:前 16 位表示网络 ID,网络 ID 的第一位以 10 开始的地址。后 16 位表示主机 ID;该地址分配给中等规模的企业使用。
  • C 类:前 24 位表示网络 ID,网络ID的第一位以 110 开始的地址。后 8 位表示主机 ID;该地址分配给任何需要的人使用。
  • D 类:不分网络 ID 和主机 ID;地址以 1110 开始的地址。该地址用于多播。
  • E 类:不分网络 ID 和主机 ID;地址以 11110 开始的地址。该地址用于实验。

下面这个表图,详细标明了ABC三类所能包含的主机数量

CIDR(无类域间路由)

经过上面的介绍,我们似乎发现了一个问题,能给我们使用的似乎只有C类地址,而C类地址的数量有限且不是很多,只有254个,这要是使用的话,一个网吧或者一个稍微大一点的单位就能把254个IP给分干净,而B类的地址又太多,这似乎很不平衡。于是,CIDR(Classless Inter-Domain Routing,CIDR)就诞生了,CIDR中文名字叫做无类域间路由,无类域间路由(Classless Inter-Domain Routing,CIDR)可以将路由集中起来,在路由表中更灵活地定义地址。它不区分 A 类、B 类、C 类地址,而是使用 CIDR 前缀的值指定地址中作为网络 ID 的位数。

CIDR 标记使用一个斜线  分隔符,后面跟一个十进制数值表示地址中网络部分所占的位数。例如,10.100.122.2/24 中的 24 表示地址中 24位用于网络 ID,后8位用于主机ID,伴随着CIDR的,随之产生了 广播地址 10.100.122.255 和 子网掩码 255.255.255.0

如何理解子网掩码

要想理解什么是子网掩码,就不能不了解IP地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。
IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。什么是子网掩码子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。假设IP地址为“192.168.1.1”子网掩码为“255.255.255.0”。其中,“1”有24个,代表与此相对应的IP地址左边24位是网络号;“0”有8个,代表与此相对应的IP地址右边8位是主机号。这样,子网掩码就确定了一个IP地址的32位二进制数字中哪些是网络号、哪些是主机号。这对于采用TCP/IP协议的网络来说非常重要,只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

具体的计算

有了前面的补充,我们开始详细来看一下开篇说的几个问题。

已知一个IP是192.XX.XX.XX,子网掩码是255.XXX.XXX.0,那么它的网络地址是多少?

这一类型的思路就是,先将IP地址与子网掩码转化为二进制,然后进行 and 运算。

假设IP是192.168.2.1,子网掩码是255.255.255.0,

IP的二进制为:11000000.10101000.00000010.0000000

子网掩码的二进制:11111111.11111111.11111111.00000000

进行按位 “与(and)” 计算:

11000000.10101000.00000010.00000000

11111111.11111111.11111111.00000000

得:

11000000.10101000.00000010.00000000

8位为一单位转化为10进制:

网络地址就是:192.168.2.0

知某主机的ip地址是192.168.100.200,子网掩码为255.255.255.192,其网络内可用的ip地址个数为多少?

这一类型思路就是,计算网络掩码中主机ID的位数,看看主机ID可以分出多少台机器

将子网掩码255.255.255.192转换为二进制:11111111.11111111.11111111.11000000

子网掩码共有26位,还有6位可用。

即2的6次方减去2(广播地址和网络地址不可用),等于62,即有62个ip地址可用。

一个A类ip地址的子网掩码是255.255.240.0,共有几位被用来划分子网?且可以划分多少个子网?每个子网ip地址数量是多少?

首先,固定类型的IP地址的子网掩码数是确定的,根据给出的子网掩码位数与默认的子网掩码位数的差值,可以得出子网数,每个子网的网络号位数已经确认,那么,只需要用总位数(32)减去网络号的位数,可以得到每个子网的主机ID的位数,就能求出每个子网的IP地址数量

将子网掩码255.255.240.0转换为二进制:11111111.11111111.11110000.00000000

子网掩码共有20位,而一个A类的ip地址的子网掩码是8位,即有12位被用来划分子网。

所以子网数为:2的12次方=4096个子网。

因为ip地址为32位,网络号已为20位,则主机数12位。每个子网中的ip数量为2^12=4096,但是能够分配给计算机使用的只有4096-2=4094个,(减去一个网络地址与一个广播地址)。

已知IP地址为10.135.255.19,子网掩码为255.255.255.248,那么该网的广播地址为多少?

要得到广播,先得出网络地址,然后把网络地址的主机位全换成1,便就是广播地址。

将ip地址10.135.255.19转换为二进制:00001010.10001001.11111111.00010011

将子网掩码255.255.255.248转换成二进制:11111111.11111111.11111111.11111000

然后将两者相“与(and)"运算得出网络号:

00001010.10001001.11111111.00010011

11111111.11111111.11111111.11111000

得:00001010.10001001.11111111.00010000,转换成网络地址就是:10.135.255.16

从子网掩码 11111111.11111111.11111111.11111000 可以看出,这个子网掩码是29位。也就是主机数还有3位可用。

把网络地址 00001010.10001001.11111111.00010000 的后面三个零全换成1,得出广播地址为:10.135.255.23

关于IP的相关计算的更多相关文章

  1. IP地址分类及其相关计算问题

    IP地址分类及其相关计算问题 公网IP和子网IP 公网IP: • A类:1.0.0.0 到 127.255.255.255 主要分配 给大量主机而局域网网络数量较少的大型网络 • B类:128.0.0 ...

  2. MATLAB线性回归方程与非线性回归方程的相关计算

    每次比赛都需要查一下,这次直接总结到自己的博客中. 以这个为例子: 2.线性方程的相关计算 x=[1,2,3,4,5]';%参数矩阵 X=[ones(5,1),x];%产生一个5行一列的矩阵,后接x矩 ...

  3. 你应该知道的ip地址相关知识

    IP地址是一个网卡在网络世界里的通讯地址,相当于我们家里的门牌号码.这样类比的话,很显然ip地址是唯一的.在windows系统中,我们可以使用 ipconfig 命令查看本机的ip地址相关信息: 图中 ...

  4. 大数据学习day23-----spark06--------1. Spark执行流程(知识补充:RDD的依赖关系)2. Repartition和coalesce算子的区别 3.触发多次actions时,速度不一样 4. RDD的深入理解(错误例子,RDD数据是如何获取的)5 购物的相关计算

    1. Spark执行流程 知识补充:RDD的依赖关系 RDD的依赖关系分为两类:窄依赖(Narrow Dependency)和宽依赖(Shuffle Dependency) (1)窄依赖 窄依赖指的是 ...

  5. IP首部校验和计算

    根据RFC1071文档的计算方法,编写代码实现IP首部校验和的计算 计算步骤: 1.首先将IP首部中校验和字段置0 2.将IP首部每16bit进行相加,如果有进位产生,则将进位加到最低位. 3.将计算 ...

  6. ubuntu下网络IP设置相关命令

    一.使用命令设置ubuntu的ip地址 1.修改配置文件blacklist.conf禁用IPV6: sudo vi /etc/modprobe.d/blacklist.conf 2.在文档最后添加 b ...

  7. ip netns相关命令

    1.增加虚拟网络命名空间   ip netns add net0   2.显示所有的虚拟网络命名空间 EULER:~ # ip netns list net0 也可通过查看/var/run/netns ...

  8. 由IP和掩码计算广播地址

    public static IPAddress GetBroadcast(IPAddress ipAddress, IPAddress subnetMask) { var ip = ipAddress ...

  9. c++ ip地址相关

    #include <stdio.h> #include <string.h> #include <arpa/inet.h> #include <sys/typ ...

随机推荐

  1. PyQt(Python+Qt)学习随笔:QListWidget删除项的takeItem方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 takeItem方法从QListWidget列表部件的项中删除指定项,并返回对应项对象.调用语法如下 ...

  2. 基于.NET的程序读取Excel文件的解决方案

    目录 0. 前言 1. 使用NPOI库读取Excel文件 2. 使用OleDbConnection 3. 相关参考 shanzm-2020年12月8日 23:48:11 0. 前言 以前基于 .NET ...

  3. 开发实践丨用小熊派STM32开发板模拟自动售货机

    摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示. 本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代 ...

  4. 题解 P5401 [CTS2019]珍珠

    蒟蒻语 这题太玄学了,蒟蒻写篇题解来让之后复习 = = 蒟蒻解 假设第 \(i\) 个颜色有 \(cnt_i\) 个珍珠. \(\sum\limits_{i=1}^{n} \left\lfloor\f ...

  5. I/O接口

    目录 I/O接口的功能 接口的功能(要解决的问题) 接口的功能(具体操作) I/O接口的基本结构 接口和端口 I/O端口及编址 统一编址 独立编址 I/O接口的类型 小结 接口可以看作是两个部件之间的 ...

  6. DPSK通信系统的FPGA实现

    之前接触过一些FPGA的相关知识,借着实现一个简单的DPSK系统,顺便复习和记录一下Verilog HDL的简单使用方法.准备直接用一张图展现DPSK的调制解调原理,再按照模块介绍Verilog的实现 ...

  7. 接口测试工具 Jmeter使用笔记(一:编写一个http请求)

    记录学习过程 一.安装Jmeter 1.JAVA环境 JDK下载地址http://java.sun.com/javase/downloads/index.jsp 配置系统变量: (1)JAVA_HOM ...

  8. jmeter处理加密接口

    jmeter处理加密接口 普及知识点: 我们常见的加密方式有:(RSA .AES.MD5.secret) 如下四种情况: 1.请求加密.响应加密 2.请求不加密.响应加密 4.请求加密.响应不加密 5 ...

  9. [水题日常]UVA1639 糖果(Candy,ACM/ICPC Chengdu 2012)

    今天来尝试了几道数学期望相关的题,这是我认为比较有趣的一道题 这次不废话啦直接开始~ 一句话题意:两个分别装有n个糖果的盒子,每次随机选一个盒子然后拿走一颗糖(选的概率分别是\(p\)和\((1-p) ...

  10. Python高级语法-深浅拷贝-总结(4.2.1)

    @ 目录 1.说明 2.代码 关于作者 1.说明 任何可变数据类型都牵扯到深浅拷贝 但是元组,常数等,不可变数据类型,无论浅拷贝,深拷贝都是指向 不管如何嵌套,一旦牵扯到可变数据类型,都会有深浅区别 ...