计算机网络:网络层 —— IPv4 协议的表示方法及其编址方法

文章目录

      • IPv4
        • IPv4的表示方法
        • IPv4的编址方法
          • 分类编址
            • A类地址
            • B类地址
            • C类地址
            • 可指派的地址数量
            • 一般不使用的特殊IPv4地址
          • 划分子网编址
            • 子网掩码
            • 默认子网掩码
          • 无分类编址方法
            • 地址掩码
            • 斜线记法
            • 无分类域间路由选择 CIDR

IPv4

IPv4(Internet Protocol version 4)是互联网上最常用的 IP 协议版本。是给因特网(Intemnet)上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的32比特的标识符。它是互联网传输层协议栈中的网络层协议,用于为网络中的设备分配唯一的 IP 地址,并在网络上传输数据

![[IPv4地址.png]]

IPv4 地址空间的有限性导致了 IP 地址短缺问题。IPv4 地址共有约 42 亿个,但是随着互联网的快速发展,这个数量已经远远不够。2011年2月3日,因特网号码分配管理局(Internet Assigned Numbers Authority,IANA)(由 ICANN 行使职能)宣布,IPv4 地址已经分配完毕。

IPv4的表示方法

IPv4 地址是由 32位二进制数 表示,通常以“点分十进制”(dotted decimal)的形式呈现,如 192.168.0.1。IPv4 地址由两部分组成,网络部分主机部分

  • 网络部分用来标识网络
  • 主机部分用来标识网络中的具体设备

![[IPv4的表示方法.png]]

IPv4的编址方法

IPv4地址的编址方法经历了三个历史阶段:

![[IPv4的编址方法发展.png]]

分类编址

IPv4 的分类编址方法将 32 比特的 IPv4 的地址划分为网络号部分主机号部分

  • 网络号:标志主机(或路由器)的接口所连接到的网络。同一个网络中,不同主机(或路由器)的接口的IPv4地址的网络号必须相同,表示它们属于同一个网络。

  • 主机号:标志主机(或路由器)的接口。同一个网络中,不同主机(或路由器)的接口的IPv4地址的主机号必须各不相同,以便区分各主机(或路由器)的接口

![[IPv4的分类编址.png]]

IPv4 的分类编址方法将 IPv4 地址分为了五类:

![[IPv4的分类编址类别.png]]

  • A类、B类和C类地址都是单播地址,只有单播地址可以分配给网络中的主机(或路由器)的各接口

  • 主机号为“全0”的地址是网络地址,不能分配给主机(或路由器)的各接口

  • 主机号为“全1”的地址是广播地址,不能分配给主机(或路由器)的各接口

A类地址

![[A类地址.png]]

本地环回测试地址,也被称为环回地址或本地回环地址,是一组特殊的IP地址,主要用于测试本机的网络配置和模拟网络通信。当需要测试本机上的网络应用程序或服务时,可以使用环回地址进行通信,数据报由本机进行接收和处理,不会发送到其他主机。

B类地址

![[B类地址.png]]

C类地址

![[C类地址.png]]

可指派的地址数量

![[可指派的地址数量.png]]

一般不使用的特殊IPv4地址

如下地址一般在特殊情况下使用

![[一般不使用的特殊IPv4地址.png]]

划分子网编址

随着更多的中小网络加入因特网,IPv4 分类编址方法不够灵活、容易造成大量IPv4地址资源浪费的缺点就暴露出来了,剩余的大量地址只能由该单位的同一个网络使用,而其他单位的网络不能使用。

![[申请新的网络号.png]]

申请新的网络号存在以下弊端

  • 需要等待很长的时间,并且要花费更多的费用
  • 即便申请到了两个新的网络号,其他路由器的路由表还需要新增针对这两个新的网络的路由条目。
  • 浪费原来已申请到的网络中剩余的大量地址

因此,划分子网编址方法对其进行改进(“打补丁”)

如果可以从 IPv4 地址的主机号部分借用一些比特作为子网号来区分不同的子网,就可以利用原有网络中剩余的大量 IPv4 地址,而不用申请新的网络地址了。

![[借用一些比特作为子网号.png]]

子网掩码

IPv4 地址的主机号部分借用一些比特作为子网号来区分不同的子网,就引入了一个新的概念:子网掩码,可以表明分类 IPv4 地址的主机号部分被借用了几个比特作为子网号。

IPv4 地址类似,子网掩码也是由 32比特 构成的。

  • 用左起多个连续的比特1对应 IPv4 地址中的网络号和子网号
  • 之后的多个连续的比特0对应 IPv4 地址中的主机号

将划分子网的IPv4地址与相应的子网掩码进行逐比特的逻辑与运算,就可得到该 IPv4 地址所在子网的网络地址。

![[IPv4地址与相应的子网掩码.png]]

只要给定了一个分类的 IPv4 地址及其相应的子网掩码就可以得出子网划分的全部细节

![[IPv4地址与相应的子网掩码划分.png]]

子网划分:

![[子网划分.png]]

默认子网掩码

默认子网掩码是指在未划分子网的情况下使用的子网掩码

![[默认子网掩码.png]]

无分类编址方法

IPv4 地址的划分子网编址方法在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网( 2 24 − 3 = 2097152 2^{24-3}= 2097152 2243=2097152)由于其每个网络所包含的地址数量太小( 2 8 = 256 2^8=256 28=256),因此并没有得到充分使用,而因特网的 IPv4 地址仍在加速消耗,整个 IPv4 地址空间面临全部耗尽的威胁。

为此,因特网工程任务组IETF又提出了采用无分类编址的方法,来解决IPv4地址资源紧张的问题,同时还专门成立IPv6工作组负责研究新版本的IP,以切底解决IPv4地址耗尽问题。

1993年,因特网工程任务组IETF发布了无分类域间路由选择(Classless Inter-Domain Routing,CIDR)的 RFC 文档 [RFC1517~1519,RFC1520].

  • CIDR 消除了传统A类、B类和C类地址以及划分子网的概念
  • CIDR 可以更加有效地分配 IPv4 地址资源,且可以在 IPv6 使用之前允许因特网的规模继续增长。

![[无分类编址方法发展.png]]

地址掩码

无分类编址方法使用的地址掩码与划分子网使用的子网掩码类似,由32比特构成。

  • 用左起多个连续的比特1对应IPv4地址中的网络前缀

  • 之后的多个连续的比特0对应IPv4地址中的主机号

  • 对于无分类编址的 IPv4 地址,仅从地址自身无法看出网络前缀和主机号各自的长度

无分类编址方法示例:
![[无分类编址方法.png]]

斜线记法

为了简便起见,可以不明确给出配套的地址掩码的点分十进制形式,而是在无分类编址的IPv4地址后面,加上斜线 "/" 在斜线,之后写上网络前缀所占的比特数量(也就是地址掩码中左起连续比特1的数量),这种记法称为斜线记法

如:128.14.35.7/20网络前缀20比特,主机号为 12比特(32-20)

无分类域间路由选择 CIDR

实际上,无分类域间路由选择 CIDR 是将网络前缀都相同的、连续的多个无分类IPv4地址,组成一个CIDR地址块,只要知道CIDR地址块中的任何一个地址,就可以知道该地址块的以下全部细节:

  • 地址块中的最小地址
  • 地址块中的最大地址
  • 地址块中的地址数量
  • 地址块中聚合某类网络(A类、B类、C类)的数量
  • 地址掩码

****![[无分类域间路由选择 CIDR.png]]****

分类编址方法只能以 /8(A类网络)/16(B类网络)/24(C类网络) 为单位来分配,既不灵活,也容易造成 IPv4 地址的浪费。而使用 CIDR 的一个好处是,可以根据客户的需要分配适当大小的CIDR地址块,因此可以更加有效地分配 IPv4 的地址空间。

![[CIDR的好处1.png]]

使用 CIDR 的另一个好处是路由聚合(也称为构造超网

在如下图的例子中,我们对 R2 的路由表进行了聚合操作。具体来说,我们将五个子网的路由条目合并为一个单一的聚合路由条目
![[路由聚合.png]]

  1. 确定公共前缀:首先,我们需要找到这些子网地址的公共前缀。观察这些子网地址,我们可以看到它们的前缀都是 172.1。这意味着它们共享了前 16 位。

  2. 计算最长公共前缀:接下来,我们需要找出这些子网地址中最长的公共前缀。在这种情况下,最长公共前缀是 172.1.4,对应于前 22 位。

  3. 创建聚合路由:根据最长公共前缀,我们可以创建一个新的聚合路由条目。该条目的地址范围覆盖了所有的原始子网地址。在这个例子中,聚合后的路由条目是 172.1.4.0/22

最终,R2 的路由表中只有一个聚合路由条目 172.1.4.0/22,而不是原来的五个具体路由条目。这种聚合方式大大减小了路由表的规模,同时也降低了路由查找的时间复杂度。

  • 网络前缀越长,地址块越小,路由越具体

  • 若路由器查表转发分组时发现有多条路由条目匹配,则选择网络前缀最长的那条路由条目,这称为最长前缀匹配,因为这样的路由更具体。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/456783.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

麒麟v10 arm64 部署 kubesphere 3.4 修改记录

arm64环境&#xff0c;默认安装 kubesphere 3.4 &#xff0c;需要修改几个地方的镜像&#xff0c;并且会出现日志无法显示 1 fluentbit:v1.9.4 报错 <jemalloc>: Unsupported system page size Error in GnuTLS initialization: ASN1 parser: Element was not found. &…

C++ [项目] 愤怒的小鸟

现在才发现C游戏的支持率这么高&#xff0c;那就发几篇吧 零、前情提要 此篇为 制作,由于他没有CSDN,于是由我代发 一、基本介绍 支持Dev-C5.11版本(务必调为英文输入法),基本操作看游戏里的介绍,怎么做的……懒得说,能看懂就看注释,没有的自己猜,如果你很固执……私我吧 …

Oracle SQL Developer 同时打开多个table的设置

Oracle SQL Developer 同时打开多个table的设置 工具 》 首选项 》数据库 》对象查看器&#xff0c;勾选 “自动冻结对象查看器窗口”

数据结构------手撕顺序表

文章目录 线性表顺序表的使用及其内部方法ArrayList 的扩容机制顺序表的几种遍历方式顺序表的优缺点顺序表的模拟实现洗牌算法 线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;…

TLS协议基本原理与Wireshark分析

01背 景 随着车联网的迅猛发展&#xff0c;汽车已经不再是传统的机械交通工具&#xff0c;而是智能化、互联化的移动终端。然而&#xff0c;随之而来的是对车辆通信安全的日益严峻的威胁。在车联网生态系统中&#xff0c;车辆通过无线网络与其他车辆、基础设施以及云端服务进行…

Lucas带你手撕机器学习——套索回归

好的&#xff0c;下面我将详细介绍套索回归的背景、理论基础、实现细节以及在实践中的应用&#xff0c;同时还会讨论其优缺点和一些常见问题。 套索回归&#xff08;Lasso Regression&#xff09; 1. 背景与动机 在机器学习和统计学中&#xff0c;模型的复杂性通常会影响其在…

【云原生】Kubernets1.29部署StorageClass-NFS作为存储类,动态创建pvc(已存在NFS服务端)

文章目录 在写redis集群搭建的时候,有提到过使用nfs做storageclass,那时候kubernetes是1.20版本,https://dongweizhen.blog.csdn.net/article/details/130651727 现在使用的是kubernetes 1.29版本,根据之前的修改方式并未生效,反而提示:Error: invalid argument "Re…

Claude Financial Data Analyst:基于Claude的金融数据分析工具!免费开源!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

智创 AI 新视界 -- 探秘 AIGC 中的生成对抗网络(GAN)应用

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【算法设计与分析】-回溯法的回忆-学习【期末复习篇章】

引言 简单说,迷宫问题的求解方法就是走的通就走&#xff0c;走不通 就回头寻找另外的路径的一种满足某约束条件的穷举式 搜索技术 回溯法是一种在解空间中搜索可行解或最优解的方法。 该方法通常将解空间看做树形结构&#xff0c;即状态空间树。从根结 点开始,以深度优先对状态…

李沐读论文-启发点记录2:Resnet--残差连接--kaiming老师神作

&#xff08;一&#xff09;可以借鉴&#xff1a; 1. 计算机视觉的论文&#xff0c;都会在第一页的右上角&#xff0c;放上一张好看的图&#xff01; 2.bottleNet的设计——很大程度上节省了计算FLOPs开销&#xff0c;这是Resnet50及其更大版本都会用到的设计。 3.Resnet在de…

[RK3566-Android11] 使用SPI方式点LED灯带-JE2815/WS2812,实现呼吸/渐变/随音量变化等效果

问题描述 之前写了一篇使用GPIO方式点亮LED灯带的文章 https://blog.csdn.net/jay547063443/article/details/134688745?fromshareblogdetail&sharetypeblogdetail&sharerId134688745&sharereferPC&sharesourcejay547063443&sharefromfrom_link 使用GPIO…

OceanBase 首席科学家阳振坤:大模型时代的数据库思考

2024年 OceanBase 年度大会 即将于10月23日&#xff0c;在北京举行。 欢迎到现场了解更多“SQL AI ” 的探讨与分享&#xff01; 近期&#xff0c;2024年金融业数据库技术大会在北京圆满举行&#xff0c;聚焦“大模型时代下数据库的创新发展”议题&#xff0c;汇聚了国内外众多…

详细尝鲜flutter

flutter 161由于官方的汉化文档感觉还是有很多没有汉化的地方 &#xff0c;所以自己打一遍的同时写下了以下笔记 社区生态 官方文档 所有的控件:Widget 目录 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 官方论坛的教程 Flutter Widget框架概述 - Flutter中文网…

微信小程序中关闭默认的 `navigationBar`,并使用自定义的 `nav-bar` 组件

要在微信小程序中关闭默认的 navigationBar&#xff0c;并使用自定义的 nav-bar 组件&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 关闭默认的 navigationBar 在你的页面的配置文件 *.json 中设置 navigationBar 为 false。你需要在页面的 JSON 配置文件中添加以下代码…

JS 中 reduce()方法及使用

摘要&#xff1a; 开发中经常会遇到求合计的状况&#xff01;比如和&#xff0c;积等&#xff01;这次遇到的是求合计的和&#xff01; reduce()方法是JavaScript中Array对象的一种高阶函数&#xff0c;用于对数组中的每个元素执行一个由您提供的reducer函数&#xff08;回调函…

内置数据类型、变量名、字符串、数字及其运算、数字的处理、类型转换

内置数据类型 python中的内置数据类型包括&#xff1a;整数、浮点数、布尔类型&#xff08;以大写字母开头&#xff09;、字符串 变量名 命名变量要见名知意&#xff0c;确保变量名称具有描述性和意义&#xff0c;这样可以使得代码更容易维护&#xff0c;使用_可以使得变量名…

STM32-Modbus协议(一文通)

Modbus协议原理 RT-Thread官网开源modbus RT-Thread官方提供 FreeModbus开源。 野火有移植的例程。 QT经常用 libModbus库。 Modbus是什么&#xff1f; Modbus协议&#xff0c;从字面理解它包括Mod和Bus两部分&#xff0c;首先它是一种bus&#xff0c;即总线协议&#xff0c;和…

学习threejs,利用THREE.ExtrudeGeometry拉伸几何体实现svg的拉伸

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.ExtrudeGeometry拉伸…

通过ssh端口反向通道建立并实现linux系统的xrdp以及web访问

Content 1 问题描述2 原因分析3 解决办法3.1 安装x11以及gnome桌面环境查看是否安装x11否则使用下面指令安装x11组件查看是否安装gnome否则使用下面指令安装gnome桌面环境 3.2 安装xrdp使用下面指令安装xrdp&#xff08;如果安装了则跳过&#xff09;启动xrdp服务 3.3 远程服务…