计算机网络基础 - 子网掩码划分

先来回顾一下IP地址,这里只列出三种常用的IP地址,ABC类,IP地址由32个二进制组成。点分十进制表达法为:192.168.0.1

img

子网掩码的表示方法:

  • 32位二进制数字,在子网掩码中,网络号部分用”1”表示,主机号部分用”0”表示
  • 网络后缀法表示子网掩码,”/<网络号位数>”

例子

一个网络,主机号有x位,则这个网络分配给主机的IP地址有多少个

该网络共包含$2^x$个地址,去除网络地址和广播地址,可以分配给主机的IP地址是$2^x-2$个

e.g: C类网络可以分配给主机的IP地址为254

解析:C类网络主机有8位,根据公式$2^x-2$得出$2^8-2=254$有254个地址

子网划分的核心思想,网络号不变,借用主机号来产生新的网络

  • 划分前:网络号/主机号
  • 划分后:原网络号/子网号/主机号

首先确定要借几位,为了方便,我们假设借n位,这时候可表示的子网个数为$2^n≥3$(这里包括全0和全1)

每个子网可分配给主机的IP数量为$2^{8-n}-2≥50$(全0表示网络地址,全1表示主机地址)

比如说我们要给192.168.1.0这个网段划分子网,比如我们要借用两个主机号(表示子网IP)

192.168.1.00000000 - 192.168.1.0

然后进行分组

192.168.1.00000000 - 192.168.1.0

192.168.1.01000000 - 192.168.1.64

192.168.1.10000000 - 192.168.1.128

192.168.1.11000000 - 192.168.1.192

这分完组后我们就有了四个子网,可容纳的主机位数为上面说的那个公式,然后我们把剩下的主机号那六个零填进去$2^{2^6}-2=62$,说明可以容纳62台主机


例子:网络A中,主机A1的IP地址为192.168.1.183,子网掩码为255.255.255.240,网络A的网络ID是多少?

解答

首先把IP地址192.168.1.183转换成二进制位

1
2
3
4
5
192->11000000
168->10101000
1->00000010
183->10110111
192.168.1.183-[11000000-10101000-00000010-10110111]

然后把子网掩码叶转换成二进制
然后进行与运算(AND运算,1和1相与为1,0和1相与为0,1和0相与为0,0和0相与为0)

1
2
3
4
5
6
7
255->11111111
255->11111111
255->11111111
240->11110000
255.255.255.240-[11111111-11111111-11111111-11110000]
[11000000-10101000-00000010-10110111]
[11111111-11111111-11111111-11110000]

上面两个进行AND运算

1
[11000000-10101000-00000010-10110000]

接着再转换为十进制
[11000000-10101000-00000010-10110000]的十进制为192.168.2.176,这下我们就得出了192.168.1.183的网络地址


如果要划分多个子网

例子:现有一个C类的地址192.168.5.0,希望将它划分成5个子网,请问子网掩码是多少,各个子网的网络号是多少?

解答

题目告诉我们是C类的地址,为此我们要根据C类的地址(三个字节网络号,一个字节主机号)进行划分,首先将IP地址转换成二进制

1
192.168.5.0->11000000-10101000-00000101-00000000

然后题目要求要划分5个子网,接下来我们要对这个IP进行借位,子网个数占主机地址位数有如下等式:$2^m≥n$,m表示占用主机地址位数,n表示划分的子网个数,这时候我们就要看2的多少次方大于等于5,就得出了$2^m≥5$,明显$2^2≥5$是不可能大于等于5的,为此$2^3≥5$成立,我们要借3位,接下来就跟上面的例子一样了

首先确定借三位,因此它的子网掩码为255.255.255.22411100000),其次把他的组合给列举出来

192.168.5.00000000 - 192.168.5.0

192.168.5.00100000 - 192.168.5.32

192.168.5.01000000 - 192.168.5.64

192.168.5.011000000 - 192.168.5.96

192.168.5.100000000 - 192.168.5.128

192.168.5.101000000 - 192.168.5.160

192.168.5.011000000 - 192.168.5.192

192.168.5.111000000 - 192.168.5.224

得出有8个子网,那么我们取出前5个子网就可以了,每个子网的网络号,比如192.168.5.32,32就是它的网络号,以此类推


模拟器试题

img

题目要求我们要对172.16.1.0这个IP分2个子网,由于题目没有给出哪类地址,我们假设这是个B类地址(这就是B类)开始进行划分

借用上面的公式 $2^m≥n$,m表示占用主机地址位数,n表示划分的子网个数,得出$2^4≥10$,为此我们向主机借4位,得出子网掩码为(255.255.255.240)得出以下组合

172.16.00000000.00000000-172.16.0.0

172.16.00010000.00000000-172.16.16.0

172.16.00100000.00000000-172.16.32.0

172.16.00110000.00000000-172.16.48.0

172.16.01000000.00000000-172.16.64.0

172.16.01010000.00000000-172.16.80.0

172.16.01100000.00000000-172.16.96.0

172.16.01110000.00000000-172.16.112.0

172.16.10000000.00000000-172.16.128.0

172.16.10100000.00000000-172.16.160.0

172.16.11100000.00000000-172.16.224.0

172.16.11110000.00000000-172.16.240.0

写下来就要确定它们的网络范围了

例如:172.16.128.0的起始位是172.16.128.1结束为172.16.143.254它的广播地址是172.16.143.255,这里我就不多写了懂得都懂。

为此假设PC0的地址为172.16.160.1,PC1的地址为172.16.175.53,子网掩码为255.255.240.0,这里是相同子网(肯定能ping通)

img

接下来我们假设PC0的地址为172.16.64.23,PC1的地址为172.16.175.53,不同子网肯定ping不通,结束

img

作者

IceCliffs

发布于

2021-02-22

更新于

2023-10-28

许可协议

评论