# 子网如何划分

子网的划分目的是为了让网络变的更灵活,IP 地址利用率更高。

# 子网掩码

虽然给了 IP 地址,但是我们不知道当前这个 IP 哪些是网络号,哪些是主机号,所以作区分,诞生了子网掩码。子网掩码是可以计算出来当前 IP 哪些是网络号哪些是主机号。

首先上边说了 IP 地址的类别中 ABC 其中这三类对应的默认子网掩码分别是:

A:255.0.0.0

B:255.255.0.0

C:255.255.255.0

没进行子网划分前的子网掩码,格式为:网络号+主机号

子网划分之后的话子网掩码格式为:网络号+子网号+子网主机号(子网是在主机号的基础上再划分子网号和子网主机号)。

在计算的时候,子网掩码会和 IP 地址进行与运算得到一个对应的网络地址的位数。

# 具体如何计算和划分子网?

假设我们继续用 192.168.212.155 这个 IP,我们看到这个 IP 就知道他是一个 C 类 IP 地址,那么他的默认子网掩码是 255.255.255.0。我们如何对这个地址进行子网划分呢?

首先我们拿到这个 IP 之后,它的前三位都是网络号,那我们在它的最后一位 155 这个主机号再做一个网络号和主机号的划分,在 C 类的默认划分下的主机号一个字节对应的 8 位。

子网网络号 0 0 0 0 0 0 0
128 64 32 16 8 4 2 1

如果我们把它的主机号的 8 位的最高位拿出来作为子网号,也就是 128,那剩下的 7 位就是主机号,最高位的子网号可能是 0 或者 1,也就是说最高位的 0 或者 1 都对应了 1+2+4+8+16+32+64=128 个主机。所以单个网络下会有 128 个主机,两个网络下就是 128+128 个主机。所以可以看到针对子网进行划分,IP 的数量可以精确控制。

那如果最后一个主机字节的前两位划分为网络号,也就是这样

子网网络号 子网网络号 0 0 0 0 0 0
128 64 32 16 8 4 2 1

那这个划分规则对应的主机号就是 1+2+4+8+16+32 = 64 个,那前两位的 01 排列组合一共是 4 个网络号,每一个网络号对应的是 64 个主机,所以一共就是 64*4 个主机分别在 4 个不同的网络下。

现在 C 类的默认的子网掩码是前三字节,也就是 24 位,加刚才我们举例的前 1 位或者前两位,那就是变成了 25 位 或者 26 位。

首先针对 192.168.212.155 这个 IP,看需求需要划分几个网络,如果划分 2 个网络,那就是最后一个字节的 8 位的第一位为网络号,如果划分 4 位那就是前两位,因为是 00,01,10,11,剩下的就是主机号,以此类推。

那用 1 位举例,就是会划分 2 个网络,0 对应的后面的主机号一共是 1+2+4+8+16+32+64=128,所以 一个网段就是 0 ~ 127,一个网段就是 128 ~ 255,所以现在的子网范围就是:192.168.212.0~192.168.212.127 和 192.168.212.128~192.168.212.255,每个网段允许连接 128 个 IP 地址。计算前两位方式一样的。只不过是主机号变成 64,网段变成了 0 ~ 63,64 ~ 127,128-191,192-255。

# 子网网段

那如果现在把 192.168.212.155 的主机号划分两个网络号,也就是上边说的第二种,那这样,原先的网络号的前两位都变成了子网网络号,这样

子网网络号 子网网络号 0 0 0 0 0 0
128 64 32 16 8 4 2 1

那它的一个网络下可以用的 IP 数是 64 个,它的网段(同一个网段下是属于一个网络)分别是:

192.168.212.0~192.168.212.63
192.168.212.64~192.168.212.127
192.168.212.128~192.168.212.191
192.168.212.192~192.168.212.255

所以就得到了划分之后的子网网段。

# 子网掩码计算

关于子网掩码的计算,C 类默认子网掩码是 255.255.255.0 然后我们又针对 192.168.212 做了主机号的子网划分,之前默认的子网掩码位数是 24 位,现在加了主机号中的两位子网网络号也就是 24+2=26 位。 所以子网的网络号是前两位 128+64=192,也就是说针对刚刚网段的子网掩码,最后变成了 255.255.255.192。

最后更新: 2/12/2023, 7:42:22 AM