首页 > 其他分享 >【网络协议】IPv4 地址分配 - 第一部分

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

时间:2025-01-05 18:57:54浏览次数:3  
标签:24 子网 主机 网络协议 网络 地址 IPv4 子网掩码

文章目录

十进制与二进制

我们习惯使用十进制。在日常生活中广泛使用的数字系统大多是基于十进制的,其底数为10。

10^0 = 1
10^1 = 10
10^2 = 100

这就是我们在日常活动中使用的数字系统。然而,计算机仅限于使用两个数字:“1”和“0”,它们分别表示“开”和“关”。我们使用的IP地址系统正是基于这个概念的。所有我们使用的IPv4地址,都是计算机所理解的二进制形式的十进制表示。

下表展示了十进制与二进制之间的对应关系。

在这里插入图片描述

网络如何被寻址

相信大多数人都见过IP地址。IP地址方案包含两个部分:

  1. 网络部分 - 位于左侧
  2. 主机部分 - 位于右侧

在IPv4地址中,高位(从左侧开始的位)代表网络地址,低位(右侧的位)代表主机部分。在IPv4寻址中,高位匹配的主机被认为属于同一网络。

网络部分和主机部分的位数分别决定了网络数量和主机数量。

为了理解网络如何工作,我们需要掌握二进制到十进制以及十进制到二进制的转换。

以IP地址 192.168.1.0 为例,我们需要将其转换为二进制。下图展示了转换过程:

在这里插入图片描述

上图是怎么转换的呢?步骤如下:

  1. 将32位分成4个八位字节(octets)。
  2. 将每个八位字节转换为十进制。
  3. 在每个十进制数之间加上“点”(dot)。

在这里插入图片描述

现在我们已经学习了这个概念,下表展示了一种可以轻松将每个数字转换为二进制的方法。

在这里插入图片描述

例如,如果我们想将255转换为二进制,可以按照以下步骤操作:

  1. 取255,与128比较,如果大于128,则减去128,结果为127。
  2. 判断127是否大于64,如果是,则减去64,结果为63。
  3. 判断63是否大于32,如果是,则减去32,结果为31。
  4. 判断31是否大于16,如果是,则减去16,结果为15。
  5. 判断15是否大于8,如果是,则减去8,结果为7。
  6. 判断7是否大于4,如果是,则减去4,结果为3。
  7. 判断3是否大于2,如果是,则减去2,结果为1。
  8. 判断1是否大于或等于1,如果是,则停止。这是最后一步。

这一过程可以用下图中的流程图进行总结说明。

在这里插入图片描述

现在,根据上述例子,如果一个数字大于或等于对应的二进制值,则该二进制位为1;如果小于,则该二进制位为0。

因此,255 的二进制转换结果为:11111111

这些顺序步骤对于理解如何进行子网划分非常重要。

由于我们的地址表示限制为单个八位字节的十进制值(0到255),因此我们仅探讨将8位二进制数转换为十进制值的过程。

地址类型

在任何IPv4网络地址范围内,我们主要有以下三种类型的地址:

  1. 网络地址(Network Address):用于命名网络的地址。

  2. 广播地址(Broadcast Address):一种特殊类型的IPv4地址,用于向特定网络中的所有主机发送数据包。

  3. 主机地址(Host Addresses):可以分配给网络中的主机或设备的地址,例如PC、笔记本电脑、IP电话等。

网络地址

网络地址是我们为网络命名的地址。例如,一个地址范围内的网络可以命名为“10.0.0.0”网络。此网络中的所有主机都属于“10.0.0.0”网络,其主机的网络部分(network portion)都是相同的。

在网络中,第一个IPv4地址通常是网络地址。

在这里插入图片描述

广播地址

在IPv4中,广播地址是一种特殊的地址,用于向网络中的所有主机发送信息。广播地址始终是网络中的最高地址最后一个地址

在以下示例中,广播地址是主机部分(host region)全部为1的地址。

任何网络中的最后一个地址始终是广播地址。

在这里插入图片描述

主机地址

正如之前讨论的那样,网络中的主机需要分配一个IPv4地址。可以分配给这些主机的地址是介于网络IP地址和广播IP地址之间的任何IP地址

注意:网络地址和广播地址不能分配给主机,因为这些地址是保留的。

如何确定网络和主机部分的位数?

为了确定网络部分和主机部分的位数,我们使用前缀长度(prefix length)

  • 通过计算网络部分的位数即可得出前缀长度。
  • 在十进制形式表示地址时,我们用斜杠“/”加上高阶位的数量来表示,如下表所示。

例如网络172.16.1.0有24位高阶位,因此表示为172.16.1.0/24

在这里插入图片描述

网络中的主机数量与前缀号的关系

网络中的主机数量或网络位的数量决定了前缀号的使用。

当高阶位(网络位)的数量增加时,低阶位(主机位)的数量减少,因此可用的主机地址也会减少。

计算每个前缀的主机数量公式

计算主机数量的公式为:
2^n - 2 = 主机地址数量,其中,n为主机位的数量。

例如,对于192.168.3.0/28

  • 网络位(高阶位)数量为28。
  • IPv4地址总共有32位,因此主机位(低阶位)的数量为:32 - 28 = 4

根据公式计算主机数量:2^4 - 2 = 14

因此,该网络中有14个可用的主机IP地址。

子网掩码

正如我们之前所看到的,IPv4地址被划分为网络部分和主机部分。我们还提到,前缀长度是网络部分或高阶位的位数,它告诉我们网络和主机地址的数量。

网络中的路由器和其他设备也需要知道高阶位和低阶位的数量,因此它们使用子网掩码,子网掩码是前缀长度在十进制中的表示。正如之前提到的,前缀长度是从左侧开始的1的数量,它表示网络部分和主机部分。

为了在网络设备中表示前缀长度,使用一种特殊类型的IPv4地址,称为子网掩码。它由32位组成,就像常规IPv4地址一样。子网掩码通过在网络部分放置1,在主机部分放置0来表示。例如,/24前缀表示的子网掩码是255.255.255.0(11111111.11111111.11111111.00000000)。子网掩码的剩余位(低阶位)为零,表示网络中的主机地址。

当我们在网络设备上配置IP地址时,必须配合使用子网掩码。

二进制与操作(Binary ANDing)

问题是,在做转发决策时,路由器如何知道收到的数据包中的IP地址属于哪个网络?

IPv4主机地址与其子网掩码进行逻辑与(AND)运算,以确定主机所属的网络地址。当对地址和子网掩码进行与操作时,结果是网络地址。

与操作(AND Operation)

与(AND)是逻辑运算,在给定子网掩码和IP地址的情况下,使用与运算来计算网络地址。逻辑与操作的结果如下所示,当在IP地址和子网掩码的位上进行比较时:

  • 1 AND 1 = 1
  • 1 AND 0 = 0
  • 0 AND 1 = 0
  • 0 AND 0 = 0

二进制与操作的结果

  • 进行与操作后,同一网络中的网络设备可以决定数据包是否属于本地网络,还是应该转发到远程网络。
  • 路由器根据二进制与操作的结果做出转发决策。

下表展示了对于网络192.168.2.45/24的与操作过程。

在这里插入图片描述

因此,IP地址192.168.2.45/24的网络地址将是192.168.2.0

关于子网划分

现在我们已经理解了如何将IP地址从十进制转换为二进制,是时候学习子网划分了。

子网划分允许我们从一个IP地址块创建更多的网络。这些网络通过路由器互联,因此每个路由器上的接口必须处于不同的网络中。

注意: 通过子网划分创建的网络将被称为子网。因此,当你看到“子网”而不是“网络”时,千万不要混淆。

子网划分是一个简单的过程,我们从主机部分借用位来创建新的网络。以下面的示例为例,地址192.168.1.0/24是主网络,如果我们从主机部分借用2个位,那么新的前缀长度将是26。因此,这2个位将分配给网络部分。

在这里插入图片描述

当我们借用主机位时,新的二进制地址将保持不变,但是,显示网络部分的子网掩码将会不同,如下所示:

在这里插入图片描述

当我们通过借用主机部分的位来扩展子网掩码时,我们实际上是将网络的数量加倍。然而,借用的位越多,每个子网中可用的主机 IP 地址数量就会越少。

计算每次借用主机位时创建的子网数量的公式是:

2^n = 新网络的数量。

要计算每个网络中的主机数量,我们使用公式:

2^n - 2,其中 n = 为主机保留的位数。

以下面的网络 172.16.1.0/24 为例,如果我们想将该网络子网化以创建 2 个子网,我们需要从主机部分借用 1 位并将其添加到网络部分。

在这里插入图片描述

在从第四个八位组借用两个主机位之后,新的网络将如下所示。

在这里插入图片描述

子网掩码将多出一个 1 位。

因此,在借用 1 个主机位后,我们将创建 2 个新网络,但我们会减少每个子网中的主机数量。

现在,新的子网将如下所示:

172.16.1.0/25

在这里插入图片描述

172.16.1.128/25

在这里插入图片描述

子网掩码将是 255.255.255.128

注意:每当我们进行子网划分时,最后一个子网将始终与新子网掩码的最后一个八位字节具有相同的位。


以下是示例:

如果我们将 172.16.1.0/24 子网划分为 8 个新网络。

步骤 1:我们需要从主机部分借用多少位?

2^n = 8

2^3 = 8

因此,我们需要借用 3 个主机位。

在这里插入图片描述

新的子网掩码 – 255.255.255.224

前两个子网和最后一个子网将是:

172.16.1.0/27

在这里插入图片描述

172.16.1.32/27

在这里插入图片描述

172.16.1.224

在这里插入图片描述

增量数通常是最后借用的主机位。在上述场景中,这是 32。

将 172.16.1.0/24 子网划分为 /27 后的子网为:

在这里插入图片描述

为什么要进行子网划分

在我们的网络中,IP 地址的需求可能会有所不同。例如,某些连接(如点对点连接)可能只需要少量的 IP 地址,而某些部门可能有 200 个用户,而另一些部门只有 20 个用户。

子网划分使我们能够将网络划分成多个子网,从而最优地使用 IP 地址。如果我们将 200 个 IP 地址分配给一个只需要 20 个的网络,就会浪费大量地址。

如果用电话服务提供商的类比,未进行子网划分就像是给一个客户分配 100 个电话号码,而他们只需要 1 个。

在进行子网划分时,我们应该仔细考虑扩展计划,因为由于需求,网络可能会增长。

在下面的场景中,我们将根据主机数量进行子网划分。这是理解子网划分的一个关键因素。

场景描述

在以下场景中,我们需要对三个网络地址进行子网划分:

  • 192.168.1.0/24 用于 WAN 连接 LINK A 和 LINK B
  • 172.16.1.0/24 用于 LAN A
  • 172.16.2.0/24 用于 LAN B
  • 192.168.2.0/24 用于 LAN C

在这里插入图片描述

所以我们将从 WAN 链接开始。

1、WAN 链接
对于这样的链接,我们每个链接只需要 2 个 IP 地址,因此,我们需要确定哪个子网掩码可以仅提供 2 个主机地址。

我们需要计算需要多少个右侧位,然后其余的将分配给网络部分。

2^n = 2 - 2

2^2 = 4

4 - 2 = 2

因此,我们只需要 2 个主机位。剩余的 6 个位将用于网络部分。

在这里插入图片描述

在将 6 位添加到网络部分后,新的子网掩码将是:

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

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

在这里插入图片描述

第二个网络将是 192.168.1.4/30,如下所示。

在这里插入图片描述
这些将为 WAN 链接提供足够的主机 IP 地址。

2、LAN A
对于第二部分,我们需要为 LAN A 提供足够的主机 IP 地址。

LAN A 需要 40 个 IP 地址。

因此,我们需要计算需要多少个主机位来容纳这些 IP 地址。

2^n - 2 = 40

2^5 - 2 = 30,这小于 40,因此不够。

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

主机位将是 6,我们将借用 2 个主机位来获得这些新的子网。

在进行子网划分后,172.16.1.0/24 网络的新子网掩码将是:

在这里插入图片描述

255.255.255.192

增量数将是 64,因此四个网络将是:

在这里插入图片描述

3、LAN B
我们需要 65 个主机 IP 地址,给定网络 172.16.2.0/24。

首先,我们需要确定在主机部分需要多少个主机位。

2^n - 2 = 65

2^6 - 2 = 62,这不足够。

2^7 - 2 = 126,这足够并且可以支持扩展。

因此,主机部分将有 7 个位,网络部分将从第四个八位字节借用 1 个位。

172.16.2.0 网络的新子网掩码将如下所示。

在这里插入图片描述

这是 255.255.255.128

因此,增量将是 128。

第一个网络将如下所示:172.16.2.0/25

在这里插入图片描述

第二个也是最后一个网络将是 172.16.2.128/25。

在这里插入图片描述

4、LAN C
在 LAN C 中,我们需要有能够容纳每个子网 12 个主机的子网,使用网络192.168.2.0/24。

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

2^n - 2 = 12

2^4 - 2 = 14,足够了。

因此,主机部分将有 4 个位,而网络部分将借用 4 个位。

192.168.2.0 网络的新子网掩码将是

在这里插入图片描述

子网掩码是:255.255.255.240

该网络的增量将是 16。

第一个和第二个网络将分别是 192.168.2.0/28 和 192.168.2.16/28。

总结

IPv4 地址分配第一部分到此结束。在第二部分,我们将深入探讨子网划分,并且还会探索其他概念,如超网划分。

标签:24,子网,主机,网络协议,网络,地址,IPv4,子网掩码
From: https://blog.csdn.net/2301_77485708/article/details/144947484

相关文章

  • 【C语言编程】地址与指针:理解与应用
    在C语言编程中,理解地址和指针的概念至关重要。地址是内存中可以唯一标识内存单元的数字,而指针则是存储这些地址的变量。通过指针,程序员可以直接访问和操作内存,这是C语言强大功能的基础。地址的概念在C语言中,每个变量都存储在内存中的一个特定位置,这个位置就是变量的地址。例如,一......
  • 【操作系统---Linux】一文带你入门了解线程和虚拟地址空间中页表映射的秘密(内附手绘底
    绪论​每日激励:“努力去做自己该做的,但是不要期待回报,不是付出了就会有回报的,做了就不要后悔,不做才后悔。—Jack”绪论​:本章是LInux中非常重要的线程部分,通过了解线程的基本概念:线程到底是什么、进程和线程的关系、线程为什么叫轻量级进程、为什么要用线程(他的比较......
  • 如何处理服务器IP地址更改后无法登录的问题
    用户反馈在将服务器IP地址更改为域名登录后,出现无法登录的情况。用户不确定是配置问题还是服务器问题。解决方案:服务器IP地址更改后无法登录的原因可能涉及多个方面,以下是详细的排查步骤:检查配置文件:确保服务器的配置文件中已正确更新为新的域名。例如,对于Linux服务器,可以检......
  • 美国地址解释
    美国地址的常见格式是:门牌号街道名称,城市,州邮编,国家或者:门牌号街道名称,公寓号,城市,州邮编,国家街道名称Pl(Place):较短的街道或死胡同。St(Street):街道。城市的主要道路。在很多城市中,Street是东西向的。Ave(Avenue):大道。比Street更宽。在很......
  • Nginx-CentOS设置网卡配置固定IP地址
    一、未设置网卡前唔怕ping通网络二、ipaddr查看网络配置ipaddr三、修改ifcfg-ens33配置文件vi/etc/sysconfig/network-scripts/ifcfg-ens33四、ONBOOT=no改为yes(启动操作系统后一并启动网卡)五、重启网卡systemctlrestartnetwork此时再去pingqq.com的话......
  • 使用Docker部署简单实用的 IP查询工具箱 【复制成功,复制和转载请标注本文地址】
    通过这个工具,可以查看需要查询的公网IP地址、连通性、检查WebRTC连接、检查DNS、网速测试、MTR测试等。假如你不想部署到本地,也可以直接体验官方网址:https://ipcheck.ing下面就开始部署:只需要一行命令就可以一键安装到docker,端口自行修改。部署起来非常的简单,使用SSH终端......
  • PCIe扫盲——基地址寄存器(BAR)详解
    基地址寄存器(BAR)在配置空间(ConfigurationSpace)中的位置如下图所示:其中Type0Header最多有6个BAR,而Type1Header最多有两个BAR。这就意味着,对于Endpoint来说,最多可以拥有6个不同的地址空间。但是实际应用中基本上不会用到6个,通常1~3个BAR比较常见。主要注意的是,如果某个设备的B......
  • 请问右键刷新、地址栏回车、F5、Ctrl+F5有什么区别?
    在前端开发中,右键刷新、地址栏回车、F5、Ctrl+F5都是常见的页面刷新操作,但它们之间存在一些明显的区别。以下是对这些操作的具体分析:右键刷新操作方式:通过鼠标右键点击浏览器界面上的刷新按钮或空白区域(如果浏览器支持右键刷新功能或通过某些插件实现)。缓存处理:右键刷新的具体......
  • Netlogon Remote Protocol (NRPC) 是 Microsoft Windows 操作系统中用于支持 Netlogon
    NetlogonRemoteProtocol(NRPC)是MicrosoftWindows操作系统中用于支持Netlogon服务的一个网络协议。这个协议主要用于客户端与域控制器之间进行身份验证和其他安全相关操作。NRPC是Windows网络中的重要协议之一,通常与ActiveDirectory(AD)和Kerberos身份验证系统......
  • c语言 - 如何安全返回局部变量的地址
    c语言返回局部变量的地址在C语言中,返回局部变量的地址是不安全的行为,因为一旦函数执行完毕,局部变量的内存将被释放,返回的地址将指向未定义的内存区域,这将导致不可预知的行为。以下是一个返回局部变量引用的例子,这是错误的做法:#include<stdio.h>int*getVarAddr()......