引言

​ 网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。

IP地址

IP地址的概念

​ IP地址称为互网协议地址(英语:Internet Protocol address,又译为网际协议地址),缩写为IP地址(英语:IP address)它用于在计算机网络中唯一标识和定位设备的数字标签(当然也分为公有地址和私有地址),它标识了我们计算机在互联网中所处的位置,就类似于我们收发快递时的收货地址和寄件地址,这也对应着网络层中的来源IP和目的IP。

IP地址的组成

IP地址由 32个二进制数 组成,为了方便好记,我们将其转为十进制,并使用点分十进制的形式表示。

例如:

1
2
3
# 例如IP地址 192.168.1.1 的二进制表示形式为: 
11000000.10101000.00000001.0000001
# 转为点分十进制表示就为 192.168.1.1

IP地址分为 网络部分和主机部分

IP地址的分类

范围分类

IP地址分为A、B、C、D、E类,其中D和E类被作为保留地址。

从下图中可以看到具体的IP地址范围分类:

image-20240124114943806

私有地址

公有地址也称为公网地址,它是互联网中所有人都可以访问到的地址,与之相反的还有私有地址也称为内网地址。私有地址在IP地址分配中用于内部网络通信,不被直接路由到互联网上。

它们允许不同局域网内多个设备共享相同的私有地址。

私有IP地址范围如下:

1
2
3
4
# 私有地址范围
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
特殊地址
1
2
3
4
# 特殊地址
127.0.0.0~127.255.255.255 # 本地回环地址
0.0.0.0 # 通常用于表示一个未指定或未知的地址或所有地址
255.255.255.255 # 广播地址

127.0.0.1 是一个特殊的IP地址,通常被称为本地回环地址(Loopback Address)。它用于将网络通信引导回本地计算机,而无需通过网络硬件。在IPv4网络中,这个地址是保留的,被用于测试网络接口和本地服务。

当一个程序尝试连接到 127.0.0.1 时,它实际上是在与本地计算机上的自身进行通信。这种用法对于测试和调试网络服务非常有用,因为它允许程序在不依赖于网络连接的情况下模拟与其他设备的通信。

0.0.0.0 是一个特殊的IP地址,通常用于表示一个未指定或未知的地址。它在不同的应用场景中有不同的含义:

作为默认路由或通配符: 在网络配置中,0.0.0.0 可以表示默认路由或通配符,表示任何地址。例如,当一个设备设置其默认网关为 0.0.0.0 时,它将路由所有不在本地子网内的流量到该默认网关。

用于绑定所有网络接口: 在一些网络编程的情境下,0.0.0.0 可以用于表示绑定到所有可用的网络接口。当一个服务监听 0.0.0.0 时,它将接受从任何网络接口上来的连接。

255.255.255.255 是一个广播地址,用于在局域网中向所有设备发送广播消息。在IPv4网络中,这个地址被称为广播地址,它是一个保留的地址,用于将数据包发送到同一网络中的所有设备。

网络通信

image-20240124120117798

子网掩码

子网掩码的概念

​ 子网掩码(Subnet Mask)是一个32位的二进制数字,也常用点分十进制的形式表示,用于将一个IP地址划分为网络部分和主机部分。它定义了在一个IP地址中哪部分用于标识网络,哪部分用于标识主机。子网掩码中的”1”位表示网络部分而”0”位表示主机部分

​ 我们也常用其判断两个主机是否在同一局域网内。

image-20240124120419069

默认子网掩码

image-20240124120511011

子网掩码的表现形式

子网掩码通常使用点分十进制表示,比如 255.255.255.0,但是有些情况下,和IP地址写在一起,比如 192.168.1.0/24,则其中的 /24 表示子网掩码有 24 个1,那么子网掩码就为 255.255.255.0

计算子网

题目

计算出下方地址的子网掩码、网络地址、广播地址、可用地址范围。

1
192.168.3.200/25

子网掩码

题目告诉我们这里的子网掩码为 /25,则表示有25个1。其中前24位不用动,直接全1表示,也就是255.255,接着还差1个1,我们将其转为二进制前方补1即可。

因为子网掩码全1的表示主机位,全0的表示网络位。

1
255.255.255.1|0000000

最后得出子网掩码为:255.255.255.128

网络地址

题目给出了IP地址为 192.168.3.200 和子网掩码 255.255.255.128,我们只需要将IP地址中的主机部分转为二进制然后与子网掩码的二进制进行与运算即可。

先将IP地址中的主机部分转为二进制:

1
192.168.00000011.10001000

接着将子网掩码的主机部分转为二进制:

1
255.255.255.1|0000000

最后进行与运算即可:

1
2
3
4
192.168.3.  10001000
255.255.255.10000000
---------------------------
192.168.3 10000000 # 上下为1才为1,否则为为0

最终得到网络地址为 192.168.3.128

广播地址

网络地址则是主机位全为0,而广播地址则是主机位全为1。

1
2
192.168.3.1|0000000   # |分割的右边则为主机地址,将其全置为1
192.168.3.1|1111111 # 192.168.3.255

最终得到广播地址为:192.168.3.255

可用地址

减去不可用的网络地址 198.168.3.128 和广播地址 192.168.3.255

其可用地址为:192.168.3.129-192.168.3.254 ,可用IP地址的数量可以用2的主机次方-2即可。主机位为7位,因此就是2的7次方-2=126。最终可用主机数为126个。

子网划分 VLSM

题目

某公司获得了一个IP地址段为 172.16.24.0/23 的网络。该公司需要将这个网络划分为多个子网以满足不同的部门需求。根据给定的要求,请回答以下问题:

公司有三个部门,各部门所需最少子网地址数量,销售(60)、技术(10)、营销(129)

基于上述划分,确定每个子网的子网掩码、网络地址范围和广播地址。

提取关键点

  1. 题目给出的地址 172.16.24.0/23
  2. 给出的部门及数量
  3. 几个部门对应几个子网(销售60、技术10、营销129)

计算子网掩码

题目告诉我们这里的子网掩码为 /23,则表示有23个1。其中前16位不用动,直接全1表示,也就是255.255,接着还差7个1,我们将其转为二进制前方补1即可。

1
255.255.1111111|0.00000000  #  255.255.254.0

得到子网掩码为:255.255.254.0

计算网络地址

题目给出了IP地址 172.16.24.0 和子网掩码 255.255.254.0我们只需要将IP地址中的主机部分转为二进制然后与子网掩码的二进制进行与运算即可。

先将IP地址中的主机部分转为二进制:

1
172.16.0001100|0.00000000

接着将子网掩码的主机部分转为二进制:

1
255.255.1111111|0.00000000

最后进行与运算即可:

1
2
3
4
172.16. 00011000.00000000
255.255.11111110.00000000
--------------------------
172.16. 00011000.00000000 # 172.16.24.0

得到网络地址为:172.16.24.0

子网划分

题目:

某公司获得了一个IP地址段为 172.16.24.0/23 的网络。该公司需要将这个网络划分为多个子网以满足不同的部门需求。根据给定的要求,请回答以下问题:

公司有三个部门,各部门所需最少子网地址数量,销售(60)、技术(10)、营销(129)

基于上述划分,确定每个子网的子网掩码、网络地址范围和广播地址。

  1. 进行子网划分,遵循 从大到小 原则,先算大,再算小。先算营销(129)、再销售(60)、最后技术(10)
  2. 通过子网掩码计算可用主机数量,营销所需129个。2的n次方-2>=129 ,套入公式计算。得出n=8,再用32-8等于24所以,营销部门的掩码为24位,后面以此类推得出,营销24、销售26、技术28。

详细过程:

  1. 营销部门所需要的IP地址为 119 个。我们需要知道 2的N次方-2 >= 129 套入公式,得到 n=8,即2的8次方=256(-2表示网络地址和广播地址不能使用)。再用 32-8=24 得到掩码为24位。

    1
    2
    3
    4
    网络地址: 172.16.24.0 
    广播地址: 172.16.24.255
    可用地址: 172.16.24.1~172.16.24.255
    子网掩码: 255.255.255.0
  2. 销售部门所需要的IP地址为 60,我们需要知道 2的N次方-2>=60,套入公司, 得到 n=6,即2的6次方=64(-2表示网络地址和广播地址不能使用)。再用 32-6=26 得到掩码为26位

    1
    2
    3
    4
    网络地址: 172.16.25.0
    广播地址: 172.16.25.63
    可用地址: 172.16.25.1~172.16.25.62
    子网掩码: 255.255.255.192
  3. 技术部门所需要的IP地址为 10,我们需要知道 2的N次方-2>=10,套入公司, 得到 n=4,即2的4次方=16(-2表示网络地址和广播地址不能使用)。再用 32-4=28 得到掩码为28位

    1
    2
    3
    4
    网络地址: 172.16.25.63
    广播地址: 172.16.25.79
    可用地址: 172.16.25.64~172.16.25.78
    子网掩码: 255.255.255.2