IP地址与子网掩码
文章目录
IP地址与子网掩码
文章从一个IP地址:128.36.202.186/20
开始说起。通过该IP来描述IP地址与子网掩码。
IP地址分类
我们知道IPV4是4段点分的十进制数字,我们在计算分类是需要转换成二进制。例如最高位255.255.255.255的二进制就是32个1:11111111.11111111.11111111.11111111
。
A类地址
A类地址最高位必须是0,形如0XXXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
,那么其范围就是从00000000.00000000.00000000.00000000
- 01111111.11111111.11111111.11111111
,换成十进制就是从0.0.0.0
- 127.255.255.255
。
-
10.0.0.0 - 10.255.255.255
是私有地址,用在局域网; -
127.0.0.0 - 127.255.255.255
用作环回地址。
所以实际A类地址范围是 0.0.0.0
- 126.255.255.255
。默认子网掩码为255.0.0.0.
B类地址
B类地址最高位必须是10,形如 10XXXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
,那么其范围就是 128.0.0.0
- 191.255.255.255
。默认子网掩码为255.255.0.0
.
C类地址
C类地址最高位必须是110,形如 110XXXXX.XXXXXXXX.XXXXXXXX.XXXXXXXX
,那么其范围就是 192.0.0.0
- 255.255.255.255
。默认子网掩码为255.255.255.0
.
所以上面的128.36.202.186就是一个B类地址。
子网掩码
我们在电脑上填写IP地址的时候,需要填写子网掩码,有时电脑会根据填写的IP的地址的分类自动生成子网掩码。上面的例子中的 /20
代表子网掩码的位数。通过这个位数我们可以计算子网掩码,同时可以计算网络中的最大主机数。
根据掩码位数计算掩码
这个子网掩码位数代表的是32个二进制从最高位开始1的个数,/20
就代表的是 11111111.11111111.11110000.00000000
,计算结果就是 255.255.240.0
,这个就是子网掩码。
所以如果要根据子网掩码计算掩码位数,只要换算成二进制,数一下从最高位开始连续的1的个数即可。
根据掩码位数计算最大主机数
最大主机数=2^(32-掩码位数)-2
之所以减2是要减去广播地址和网络地址。
根据IP和子网掩码计算网络地址、广播地址和最大主机数
例如IP地址是128.36.202.186,子网掩码是255.255.240.0。
计算网络地址
将IP和子网掩码的二进制进行与运算,结果是网络地址。
128.36 .11001100.10111010
&255.255.11110000.00000000
---------------------------
128.36 .11000000.00000000
那么网络地址就是128.36.192.0
主机位:子网掩码二进制中为0的部分。上例中主机位是12位,这个记住,在计算广播地址会用到。
计算广播地址
将网络地址中的主机位换成1,就是广播地址。
上例中的主机位是12,将网络地址换算下,就是128.36.11001111.11111111
,也就是128.36.207.255
。
计算IP范围
IP范围就是 网络地址+1
- 广播地址-1
。
对应到上例中就是 128.36.192.1 - 128.36.207.254
计算最大主机数
最大主机数=2^(32-掩码位数)-2
或 最大主机数=2^主机位数-2
上例中就是 2^(12)-2=4094
。
根据允许主机数计算子网掩码
既然通过子网掩码能够控制最大主机数,那么我们如果想控制主机数,如何计算子网掩码呢?
例如一个公司想允许最多接入1000台主机,如何计算子网掩码?
-
计算总主机数
总主机数=允许主机数+1+1+1 第一个1代表网络地址 第二个1代表广播地址 第三个1代表网关地址
所以这里总主机数是1003,但是我们要换算成2的倍数,也就是1024台,也就是2的10次方。
-
计算子网掩码
既然知道了是2的10次方,根据公式
最大主机数=2^主机位数-2
,那么主机位数就是10,也就是子网掩码中0的个数是10,1的个数就是22,也就是11111111.11111111.11111100.00000000
,换算成十进制就是255.255.240.0
。