计算机网络基础 - 子网掩码划分
先来回顾一下IP地址,这里只列出三种常用的IP地址,ABC类,IP地址由32个二进制组成。点分十进制表达法为:192.168.0.1
子网掩码的表示方法:
- 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 | 192->11000000 |
然后把子网掩码叶转换成二进制
然后进行与运算(AND运算,1和1相与为1,0和1相与为0,1和0相与为0,0和0相与为0)
1 | 255->11111111 |
上面两个进行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.224(11100000),其次把他的组合给列举出来
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就是它的网络号,以此类推
模拟器试题
题目要求我们要对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通)
接下来我们假设PC0的地址为172.16.64.23,PC1的地址为172.16.175.53,不同子网肯定ping不通,结束
计算机网络基础 - 子网掩码划分