当前位置: 首页 > news >正文

【网络协议】IPv4 地址分配 - 第二部分

前言

在第 1 部分中,我们学习了 IPv4 地址的分配方式,了解了各种类型的 IPv4 地址,并进行了基础的子网划分(Subnetting)。在第 2 部分中,我们将继续学习子网划分,并引入一些新的概念。

【网络协议】IPv4 地址分配 - 第一部分

文章目录

    • 前言
    • IPv4 的类别式地址(Classful Addressing)
    • 无类别 IPv4 地址分配(Classless Addressing)
    • CIDR 和 VLSM
    • 子网划分(Subnetting)续篇
    • 子网划分
      • 任务 1:一个子网容纳 125 个主机
      • 任务 2:一个子网容纳 60 个主机
      • 任务 3:一个子网容纳 30 个主机
      • 任务 4:3 个子网,每个子网有 2 个主机 IP 地址
    • 超网 (Supernetting)
      • 超网实验

IPv4 的类别式地址(Classful Addressing)

当 IPv4 地址最初被引入时,其标准基于 RFC 791,采用了按类别划分的方式。根据当时企业的需求,IPv4 地址分为以下三类:

  • A 类:分配给大型组织。
  • B 类:分配给中型企业。
  • C 类:分配给小型组织。

以下是 IPv4 地址各类别的分类表:

在这里插入图片描述

  • A 类地址:以 0 位开头,范围为 0.0.0.0 到 127.255.255.255。其中第一个地址 0.0.0.0 配合子网掩码 0.0.0.0 被保留为默认路由(Default Route)。这一点将在后续章节中讨论。
  • B 类地址:高阶位以 10 开头,其范围如上表所示。
  • C 类地址:高阶位以 110 开头,范围为 192.0.0.0 到 223.255.255.255。
  • 其余的 IPv4 地址范围则保留用于实验用途或组播(Multicast)。

然而,类别式 IPv4 地址分配存在一些问题。例如,某公司只需要 100 个主机,但被分配了一个 B 类地址范围,这会导致大量 IP 地址浪费,从而影响未来的扩展和 IPv4 地址的使用。因此,引入了无类别的 IPv4 地址分配方式。

无类别 IPv4 地址分配(Classless Addressing)

无类别 IPv4 地址分配解决了类别式分配导致的地址浪费问题。无类别域间路由(Classless Inter-Domain Routing,CIDR) 使用子网掩码而非高阶位数量来分配 IP 地址。

CIDR 和 VLSM

通过 CIDR,可以使用可变长度子网掩码(Variable Length Subnet Masks, VLSM),根据组织的需求灵活分配 IP 地址。这种方式允许根据内部需求进一步划分网络。

在本章中,我们将讨论子子网划分(Sub-subnetting)和超网(Supernetting)。

子网划分(Subnetting)续篇

如上一篇文章所述,子网划分可以进一步细化为子子网,以满足组织的具体需求。在这一部分,我们将学习如何对子网进行进一步划分(Sub-subnetting)。

例如,假设我们有一个 IP 地址 192.168.1.0/24,我们可以对子网进行划分,以高效地为主机分配 IP 地址。

在本节中,我们将学习如何对子网进行划分。这是 VLSM 的具体应用场景。

子网划分

已知 IP 网络 192.168.1.0/24,任务是将其划分为满足以下需求的子网:

  • 一个子网需要容纳 125 个主机;
  • 一个子网需要容纳 60 个主机;
  • 一个子网需要容纳 30 个主机;
  • 三个子网需要容纳 2 个主机。

任务 1:一个子网容纳 125 个主机

首先,我们需要计算所需的主机位数,其余位数将分配给网络部分。

2^n=125 – 2

2^7=128

128-2 = 126

结论:
我们需要 7 个主机位,剩余 1 位分配给网络部分。

在这里插入图片描述

当我们向网络部分添加 1 位时,新的子网掩码将是:

在这里插入图片描述
192.168.1.0/25

因此,增量将是 128。在这种情况下,第一个网络将是 192.168.1.0/25。

在这里插入图片描述

第二个网络将是 192.168.1.128/25,如下所示。

在这里插入图片描述

这将为 125 个主机提供足够的主机 IP 地址。

任务 2:一个子网容纳 60 个主机

在任务 1 中,我们已经将网络 192.168.1.0/25 分配给第一个网络,这意味着我们现在可以使用 192.168.1.128/25。这个子网需要进一步划分,以提供 60 个主机的 IP 地址。

因此,我们需要计算能够容纳这些主机所需的主机位数。

2^n-2= 60

2^5- 2=30,这小于 60,因此不足以满足需求。

2^6-2 = 62,因此足够满足 LAN A 的主机需求。

主机位数将是 6,我们需要从主机位中借用 2 位来创建这些新子网。

划分后的 192.168.1.128/25 网络的新子网掩码将是:

在这里插入图片描述
255.255.255.192

注意:在任务 1 中,我们保留了第二个子网,即 192.168.1.128/25,因此新子网必须从该子网中划分。

增量值为 64,因此两个新子网为:

  • 192.168.1.128/26
  • 192.168.1.192/26

第一个子网(192.168.1.128/26)将分配给需要 60 个主机的网络。第二个子网将根据任务 3 进一步划分。

任务 3:一个子网容纳 30 个主机

我们需要 30 个主机 IP 地址,这些地址将来自任务 2 中获得的第三个子网,即 192.168.1.192/26

首先,我们需要确定主机部分所需的主机位数。

2^n-2= 30

2^4-2=14,不足以满足需求。

2^5-2= 30,足够满足需求,并允许扩展。

因此,主机部分将有 5 位,而网络部分需要从第四个八位组中借用 3 位。

划分后的 192.168.1.192/26 网络的新子网掩码如下所示:

在这里插入图片描述

这是 255.255.255.224。

因此,增量将是 32。

第一个网络如下所示:192.168.1.192/27。

在这里插入图片描述
第二个也是最后一个网络将是:192.168.1.224/27。

在这里插入图片描述

任务 4:3 个子网,每个子网有 2 个主机 IP 地址

最后一个任务是将 192.168.1.224/27 子网进一步划分为三个子网,每个子网包含 2 个主机 IP 地址。

首先,我们确定需要多少主机 IP 地址位数。

2^n-2=2

2^2-2=2,足够满足需求。

因此,主机部分将有 2 位,而网络部分需要从第四个八位组中借用 6 位。

划分后的 192.168.1.224/27 网络的新子网掩码将是:

在这里插入图片描述
子网掩码是:255.255.255.252

该网络中的增量将是 4。

我们需要的三个子网为:

192.168.1.224/30
192.168.1.228/30
192.168.1.232/30

这些网络适用于点对点链接,例如两个路由器之间的连接。

超网 (Supernetting)

在上一节中,我们讨论了子网划分,即将一个大网络分割成更小的网络。超网是其相反的过程,它将多个小网络合并为一个大网络。这个概念将在我们讨论路由汇总时详细介绍。

超网实验

在此场景中,我们给出了以下子网:

在这里插入图片描述

我们的任务是将这些 IP 地址进行超网操作,以便获得一个汇总地址。

步骤 1:将 IP 网络写成二进制形式。

在这里插入图片描述

步骤 2:确定每个网络中相似的位数,并画出一条线标记匹配位的结束位置。

在这里插入图片描述
步骤 3:计算匹配位的数量,并将其转换为十进制格式。

在此场景中,匹配的位是前两个八位组以及第三个八位组的前六个位。

它们可以表示为如下所示:

192.168.0.0

步骤 4:我们需要确定这个汇总地址的新子网掩码:

对于匹配的位,填充所有“1”。

这将是:11111111.11111111.11111100.00000000

这是新的子网掩码,对应的十进制格式如下所示:

255.255.252.0

因此,新网络将是:192.168.0.0/22,即网络的超网(Supernet)。

相关文章:

【网络协议】IPv4 地址分配 - 第二部分

前言 在第 1 部分中,我们学习了 IPv4 地址的分配方式,了解了各种类型的 IPv4 地址,并进行了基础的子网划分(Subnetting)。在第 2 部分中,我们将继续学习子网划分,并引入一些新的概念。 【网络…...

攻防世界 bug

发现有Register界面,先去注册 登录以后发现以下界面,点击Manage显示you are not admin,并且在注册界面用admin为注册名时显示用户名已存在。初步推测是设法改变admin的密码取得权限。 在主界面一通操作并没有什么发现,去findpw…...

Flink如何设置合理的并行度

一个Flink程序由多个Operator组成(source、transformation和 sink)。 一个Operator由多个并行的Task(线程)来执行, 一个Operator的并行Task(线程)数目就被称为该Operator(任务)的并行度(Parallel)。即并行度就是相对于Operator来说的。 合理设置并行度可以有效提高Flink作业…...

小兔鲜儿:生鲜区域,最新专题

生鲜区域: 生鲜区域标题部分: 生鲜区域内容部分: 分左右两个部分 右边区域是8个 li 标签区域,li中嵌套 a ,上部分是图片,下部分是内容;与 a 并列的是cover,定位在 li 之外,设置是溢出隐藏&…...

TypeScript语言的网络编程

基于 TypeScript 的网络编程探索 随着互联网技术的发展,网络编程已成为软件开发中不可或缺的一部分。尤其是在构建现代 Web 应用程序时,网络编程的各个方面,包括 HTTP 请求、WebSocket、API 交互等,都扮演着至关重要的角色。Type…...

复合机器人助力手机壳cnc加工向自动化升级

在当今竞争激烈的制造业领域,如何提高生产效率、降低成本、提升产品质量,成为众多企业面临的关键挑战。尤其是在手机壳 CNC 加工这一细分行业,随着市场需求的持续增长,对生产效能的要求愈发严苛。而复合机器人的出现,正…...

在 C# 中显示动画 GIF 并在运行时更改它们

您可以通过将按钮、图片框、标签或其他控件的Image属性设置为 GIF 文件 来显示动画 GIF 。(如果您在窗体的BackgroundImage属性中显示一个,则不会获得动画。) 有几种方法可以在运行时更改 GIF。 首先,您可以将 GIF 添加为资源。…...

个人博客搭建(二)—Typora+PicGo+OSS

个人博客站—运维鹿: http://www.kervin24.top CSDN博客—做个超努力的小奚: 做个超努力的小奚-CSDN博客 一、前言 博客搭建完一直没有更新,因为WordPress自带的文档编辑器不方便,以前用CSDN写作的时候,习惯了Typora。最近对比了…...

Cloudflare IP 优选工具:轻松找到最快的 CDN 节点

Cloudflare IP 优选工具:轻松找到最快的 CDN 节点 在线体验地址:https://cf-ip.cdtools.click 功能介绍 Cloudflare IP 优选工具是一个专门用于测试和筛选 Cloudflare CDN 节点的在线服务。它能够帮助用户找到最适合自己的 Cloudflare IP 地址&#xff…...

HTB:Ransom[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用ffuf对靶机80端口进行路径FUZZ 访问/regist…...

Eclipse配置Tomcat服务器(最全图文详解)

前言: 本章使用图文讲解如何在Eclipse开发工具中配置Tomcat服务器、如何创建和启动JavaWeb工程,欢迎童鞋们互相交流。觉得不错可以三连订阅喔。 目标: 一、配置Tomcat服务器 1. 切换Eclipse视图 2. 打开菜单 3. 找到服务选项 4. 选择…...

STM32烧写失败之Contents mismatch at: 0800005CH (Flash=FFH Required=29H) !

一)问题:用ULINK2给STM32F103C8T6下载程序,下载方式设置如下: 出现下面两个问题: 1)下载问题界面如下: 这个错误的信息大概可以理解为,在0x08000063地址上读取到flash存储为FF&am…...

用户界面的UML建模10

非正常的可视反馈可伴随着同步事件发生,而同步事件可由系统动作产生。但是,可以分别对它们进行建模。 在下节中将对这些特殊的事件依次进行论述。 6.1 异常处理建模 异常,由Meyer 定义[16],其作为运行时事件(run-time events&a…...

电影动画shader解析与实现

着色器代码解析 大家好!我是 [数擎AI],一位热爱探索新技术的前端开发者,在这里分享前端和Web3D、AI技术的干货与实战经验。如果你对技术有热情,欢迎关注我的文章,我们一起成长、进步! 开发领域:…...

蓝桥杯 第十五届 研究生组 B题 召唤数学精灵

问题描述: 数学家们发现了两种用于召唤强大的数学精灵的仪式,这两种仪式分别被称为累加法仪式 A(n) 和累乘法仪式 B(n)。累加法仪式 A(n) 是将从 1 到 n 的所有数字进行累加求和,即:A(n)12⋯n累乘法仪式 B(n) 则是将从 1 到 n 的所…...

在 Go 应用中 如何像 FastAPI 一样优雅地构建控制器

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

用户界面的UML建模11

然而,在用户界面方面,重要的是要了解《boundary》类是如何与这个异常分层结构进行关联的。 《exception》类的对象可以作为《control》类的对象。因此,《exception》类能够聚合《boundary》类。 参见图12,《exception》Database…...

历代iPhone运行内存大小和电池容量信息

系列设备名称充电端口标配充电线PD快充无线充电 (W)标配充电器电池容量 (mAh)发布时间RAM运存iPhone 16iPhone 16 Pro MaxUSB Type-CUSB-C to USB-C支持25无47472024/9/108GB LPDDR5XiPhone 16 ProUSB Type-CUSB-C to USB-C支持25无35772024/9/108GB LPDDR5XiPhone 16 PlusUSB …...

计算机网络之---物理层设备

什么是物理层设备 物理层设备是指负责数据在物理媒介上传输的硬件设备,它们主要处理数据的转换、信号的传输与接收,而不涉及数据的内容或意义。常见的物理层设备包括网卡、集线器、光纤收发器、调制解调器等。 物理层设备有哪些 1、网卡(N…...

57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景

57. Three.js案例-创建一个带有聚光灯和旋转立方体的3D场景 实现效果 该案例实现了使用Three.js创建一个带有聚光灯和旋转立方体的3D场景。 知识点 WebGLRenderer(WebGL渲染器) THREE.WebGLRenderer 是 Three.js 中用于将场景渲染为 WebGL 内容的核…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

rnn判断string中第一次出现a的下标

# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

Python Einops库:深度学习中的张量操作革命

Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

【深度学习新浪潮】什么是credit assignment problem?

Credit Assignment Problem(信用分配问题) 是机器学习,尤其是强化学习(RL)中的核心挑战之一,指的是如何将最终的奖励或惩罚准确地分配给导致该结果的各个中间动作或决策。在序列决策任务中,智能体执行一系列动作后获得一个最终奖励,但每个动作对最终结果的贡献程度往往…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...