跳转到内容

通信与网络基础:子网掩码

来自维基教科书,开放的书籍,为开放的世界

试卷 2 - ⇑ 通信与网络基础 ⇑

← IP 地址结构 子网掩码 IP 标准 →


子网掩码

[编辑 | 编辑源代码]

IPv4 地址的结构是使用类别来区分网络地址和主机地址。随着网络压力越来越大,需要最大限度地利用地址,管理员将他们的网络细分为更小的子网(子网)。因此,8 位、16 位或 24 位边界可能不是划分的位置。

类似地,多个连续网络可以聚合在一起,看起来像一个超级网络(超级网),同样,网络和主机字段之间的边界可能不是类别指示的位置。

因此,我们需要一种不同的方法来指示 IP 地址中的分割位置。我们无法更改当前结构,因此需要额外的参数。

子网掩码

[编辑 | 编辑源代码]

子网掩码是一个 32 位二进制数,其中二进制 1 表示对应 IP 地址中的网络位,二进制 0 表示主机位。因此,子网掩码始终是一系列 1 后面跟着一系列 0。这些掩码用于路由器和终端设备,以指示分割位置,以便可以识别对应 IP 地址的网络部分。

路由器将学习或被配置为使用它们连接到的网络的子网掩码。终端设备将通过 DHCP 学习它们的子网掩码,或者被配置为使用适当的值。

我们可以用二进制或点分十进制(就像 IP 地址一样)来写子网掩码。


练习:子网掩码
用点分十进制表示子网掩码 11111111 11100000 00000000 00000000 是什么?

回答

255.224.0.0
子网掩码 255.224.0.0 表示什么?

回答

对应 IP 地址的前 11 位是网络位,其余 21 位是主机位。

因此,我们可以写出 A 类、B 类和 C 类网络的默认子网掩码

类别 子网掩码(二进制) 子网掩码(十进制)
A 11111111 00000000 00000000 00000000 255.0.0.0
B 11111111 11111111 00000000 00000000 255.255.0.0
C 11111111 11111111 11111111 00000000 255.255.255.0

使用子网掩码

[编辑 | 编辑源代码]

当 IP 数据包到达路由器时,路由器会检查目标地址以决定该怎么做。路由器有一个内部表(路由表),其中存储了它知道的所有网络以及通往该网络的关联接口。因此,路由器需要知道数据包的目标网络,以便将其用作路由表中的查找。

当数据包起源于终端设备时,终端设备将需要知道目标是在同一个本地网络上还是在另一个网络上。它通过检查自己的本地地址来查看它位于哪个网络,然后将此与数据包的目标网络进行比较。如果两者匹配,则目标在其自己的局域网 (LAN) 上。否则,它位于另一个网络,数据包应该转发到默认路由器(有时称为网关)。

在上面的两种情况下,我们都有一个 IP 地址和一个子网掩码,并且必须找出网络地址。

该过程是对子网掩码和 IP 地址中的对应位进行“按位与”运算。掩码就像一个过滤器,允许网络位通过(掩码中有 1 的地方)并阻止主机位(掩码中有 0 的地方)。

按位与

结果
0 与 0 0
0 与 1 0
1 与 0 0
1 与 1 1

因此,给定一台 IP 地址为 192.168.1.1、子网掩码为 255.255.255.0 的设备,计算该设备的 IP 网络地址

字段 点分十进制 二进制 点分十进制
IP 地址 192.168.1.1 11000000 10101000 00000001 00000001
网络地址 255.255.255.0 11111111 11111111 11111111 00000000
11000000 10101000 00000001 00000000 192.168.1.0


因此,一个到达具有目标地址 192.168.1.1 的接口的 IP 数据包将与关联掩码 255.255.255.0 进行按位与运算。这告诉我们目标位于 192.168.1.0 网络上,设备可以查找该网络在哪里。

练习:计算网络地址
如果关联掩码为 C 类,则 IP 地址为 130.16.31.11 的设备的网络地址是什么?

回答

尽管地址是 B 类地址,但要使用的掩码是 C 类 (255.255.255.0)。因此,网络地址为 130.16.31.0
一台 IP 地址为 42.11.16.28 的 PC 向 42.11.100.43 发出 ping 请求。该网络上的掩码为 255.255.0.0。这两台设备在同一个网络上吗?

回答

是的。两者都在同一个网络 42.11.0.0 上
扩展:子网划分、VLSM 和 CIDR

上面的网络都使用了子网掩码,其中分割位于 8 位边界。情况并非总是如此。以拥有 200.41.11.0 C 类网络的组织为例。它在内部通过从主机字段借用一位来将此网络划分为两个独立的子网。因此,整个 C 类网络的子网掩码为 255.255.255.0,现在两个子网的子网掩码为 255.255.255.128。计算两个子网的网络地址。每个子网可用的 IP 地址范围是多少?

一家 ISP 有四个客户,分别使用以下 B 类 IP 网络。

  • 130.16.0.0
  • 130.17.0.0
  • 130.18.0.0
  • 130.19.0.0(每个都有默认子网掩码 255.255.0.0)。

ISP 希望将这四个网络聚合成一个网络,以便向上游到核心进行广播。可以使用哪些地址和掩码来表示所有这四个网络?

华夏公益教科书