2023年11月27日发(作者:)
⾃考计算机⽹络原理考点之IP地址与⼦⽹掩码的计算与划
分
关于IP地址与⼦⽹掩码的学习⼼得
⾸先,不要管这个IP是A类还是B类还是C类,IP是哪⼀类对于解题是没有任何意义的,因为在很多题中B类掩码和A类或是C
类⽹络⼀起出现,不要把这认为是⼀个错误,很多时候都是这样出题
的。
其次,应该掌握以下⼀些知识:
1、明确“⼦⽹”的函义:
⼦⽹就是把⼀个⼤⽹划分为⼏个⼩⽹,每个⼩⽹的IP地址数⽬都是⼀样多的。这个⼩⽹就叫做这个⼤⽹的⼦⽹。⼤⽹可以是A
类⼤⽹(A类⽹络),也可以是B类⼤⽹,还可能是C类⼤⽹。
⑴、⼆进制数转为⼗进制
(这⾥顺便说⼀下⼆进制数转为⼗进制的问题:
在不牵涉到IP地址时的⼆进制到⼗进制的转换,采⽤的是“低次⽅相加”的⽅式,但是牵涉到IP 地址时(算⼴播地址时除外,算
⼴播地址时还是采⽤“低次⽅相加”)的⼆进制到⼗进制的转换就不能采⽤这种⽅式了,⽽是直接⽤2的N次⽅的⽅法来转换:
⽐⽅说在不牵涉到IP地址的计算时,将⼆进制的111转换为⼗进制,采⽤的⽅法是(2的2次⽅+2的1次⽅+2的0次⽅,即
4+2+1),得到的结果是⼗进制的7。但是在计算IP地址时的的⼆进制到⼗进制的转换就不能采⽤这种⽅式了,⼆进制的111转
换为⼗进制时,看到有⼏个“1”,就表⽰为2的⼏次⽅,这⾥有三个“1”,就是2的3次⽅,即在计算IP地址时,⼆进制的111转换
为⼗进制
就是2的3次⽅,2的3次⽅的结果是8。)
⑵、⽹络的总个数和可⽤个数
A类⽹络的个数有2的7次⽅个,即128个。根据⽹络规范的规定,应该再去除128个中的第⼀个和最后⼀个,那么可⽤的A类⽹
络的个数是126个。
B类⽹络的个数有2的14次⽅个,即16384个。根据⽹络规范的规定,应该再去除16384个中的第⼀个和最后⼀个,那么可⽤的
B类⽹络的个数是16382个。
C类⽹络的个数有2的21次⽅个,即2097152个。根据⽹络规范的规定,应该再去除16384个中的第⼀个和最后⼀个,那么可
⽤的C类⽹络的个数是2097150个。
⑶、⽹络的总IP数和可⽤IP地址数
每个A类⼤⽹(A类⽹络)中容纳2的24次⽅个IP地址,即16777216个IP地址;每个B类⼤⽹中容纳着2的16次⽅个IP地址,即
65536个IP地址;每个C类⼤⽹中容纳着2的8次⽅个IP地址,即256个IP地址。可⽤的IP地址数是在总IP地址数的基础上减2得
到。
如果把⼀个B类⼤⽹划分为32个⼩⽹,那么每个⼩⽹的IP地址数⽬就是65536/32=2048;如果把C 类⼤⽹划分为32个⼩⽹,那
么每个⼩⽹的IP地址数⽬就是256/32=8。
2、明确“掩码”的函义:
掩码的作⽤就是⽤来告诉电脑把“⼤⽹”划分为多少个“⼩⽹”! 好多书上说,掩码是⽤来确定IP
地址所在的⽹络号,⽤来判断另⼀个IP是不是与当前IP在同⼀个⼦⽹中。这也对,但是对于我们做题来说,意义不⼤。我们要
明确:掩码的作⽤就是⽤来告诉电脑把“⼤⽹”划分为多少个“⼩
⽹”! 掩码是⽤来确定⼦⽹数⽬的依据!
3、明确⼗进制数与8位⼆进制数的转换
做这类题要能够在⼼中将255以内的⼗进制数转换为对应的⼆进制数。可以参考这个公式表(第
⼀⾏是⼆进制,第⼆⾏是⼗进制):
1 1111111
21
可以看到:
第⼀⾏左起第⼀个⼆进制1对应⼗进制的128
第⼀⾏左起第⼆个1对应⼗进制的64
第⼀⾏左起第三个1对应⼗进制的32
第⼀⾏左起第四个1对应⼗进制的16
第⼀⾏左起第五个1对应⼗进制的8
第⼀⾏左起第六个1对应⼗进制的4
第⼀⾏左起第七个1对应⼗进制的2
第⼀⾏左起第⼋个1对应⼗进制的1
上⾯这些关系要牢记,这是进制转换的基础!
⽐⽅说将⼗进制的133转为⼆进制,可以这样想:因为133和128⽐较近,⼜由于公式表中左起第⼀个⼆进制1表⽰128,所以
可以马上将待转换成8位⼆进制的最左边的⼀位确定下来,定为1。再接下来,看到133和128只相差5,⽽5是4与1的和,⽽4
与1分别对应公式表中的左起第6和第8位,所以⼗进制的133转换为8位⼆进制表⽰就是10000101,对应如下:
1 000010 1 (⼆进制表⽰的133)
128000040 1 (⼗进制表⽰的133)
其它255以内的⼗进制数转换为8位⼆进制数的⽅法依此类推。
4、牢记各类⽹络的默认掩码
A类⽹络的默认掩码是255.0.0.0,换算成⼆进制就是 11111111.00000000.00000000.00000000;默认掩码意味着没有将A类
⼤⽹(A类⽹络)再划分为若⼲个⼩⽹。掩码中的1表⽰⽹络号,24个0表⽰在⽹络号确定的情况下(⽤⼆进制表⽰的IP地址的左
边8位固定不变),⽤24位⼆进制数来表⽰IP地址的主机号部分。(IP地址是由⽹络号+主机号两部分构成)
B类⽹络的默认掩码是255.255.0.0,换算成⼆进制就是
11111111.11111111.00000000.00000000;默认掩码意味着没有将B类⼤⽹再划分为若⼲个⼩⽹。16个0表⽰在⽹络号确定
的情况下(⽤⼆进制表⽰的IP地址的左边16位固定不变)可以⽤16位⼆
进制数来表⽰IP地址的主机号部分。(可以把B类默认掩码理解为是将A类⼤⽹(A类⽹络)划分为
2的8次⽅(即256)个⼩⽹)
C类⽹络的默认掩码是255.255.255.0,换算成⼆进制就是
11111111.11111111.11111111.00000000;默认掩码意味着没有将C类⼤⽹再划分为若⼲个⼩⽹。这⾥的8个0表⽰在⽹络号
确定的情况下(⽤⼆进制表⽰的IP地址的左边24位固定不变),可以⽤8位⼆进制数来表⽰IP地址的主机部分。(可以把C类
默认掩码理解为是将A类⼤⽹(A类⽹络)划分为2的16次⽅(即65536)个⼩⽹,是将B类⼤⽹划分为2的8次⽅(即256)个⼩
⽹)
5、关于正确有效的掩码:
正确有效的掩码应该满⾜⼀定的条件,即把⼗进制掩码换算成⼆进制后,掩码的左边部分⼀定要是全为1且中间不能有0出
现。⽐⽅说将255.255.248.0转为⼆进制是11111111.11111111.11111000.00000000,可以看到左边都是1,在1的中间没有0
出现(0都在1的右边),这样就是⼀个有效的掩码。我们再来看254.255.248.0,转成⼆进制是
11111110.11111111.11111000.00000000,这不是⼀个正确有效的掩码,因为在1中间有⼀个0的存在。再来看
255.255.249.0,转为⼆进制是11111111.11111111.11111001.00000000,这也不是⼀个正确有效的掩码,因为在1中间也有
0的存在。
6、关于⼦⽹掩码的另类表⽰法:
有些题⽬中不是出现如255.255.248.0这样的⼦⽹掩码,⽽是出现 IP地址/数字这样的形式,这⾥的/数字就是⼦⽹掩码的另类
表⽰法。在做题时,我们要正确理解这种另类表⽰法。我们将255.255.248.0转为⼆进制的形式是
11111111.11111111.11111000.00000000,可以看到左边是有21个1,所以我们可以将255.255.248.0这个掩码表⽰为/21。
反过来,当我们看到/21时,我们就把32位⼆进制的左边填上21个1,将这个32位⼆进制数每8位做为⼀节⽤句点隔开,再转
换为⼗进制,就是255.255.248.0了。
7、⽹络中有两个IP地址不可⽤:
不管是A类还是B类还是C类⽹络,在不划分⼦⽹的情况下,有两个IP地址不可⽤:⽹络号和⼴播地址。⽐如在⼀个没有划分
⼦⽹的C类⼤⽹中⽤202.203.34.0来表⽰⽹络号,⽤202.203.34.255来表⽰⼴播地址,因为C类⼤⽹的IP地址有256个,现在减
去这两个IP地址,那么可⽤的IP地址就只剩下256-2=254个了。如果题⽬问:把⼀个C类⼤⽹划分为4个⼦⽹,会增加多少个不
可⽤的IP地址?可以这样想:在C类⼤⽹不划分⼦⽹时,有两个IP地址不可⽤;现在将C类⼤⽹划分为4个⼦⽹,那么每个⼦⽹
中都有2个IP地址不可⽤,所以4个⼦⽹中就有8个IP地址不可⽤,⽤8个IP地址减去没划分⼦⽹时的那两个不可⽤的IP地址,得
到结果为6个。所以在将C 类⼤⽹划分为4个⼦⽹后,将会多出6个不可⽤的IP地址。
8、根据掩码来确定⼦⽹的数⽬
⾸先看题中给出的掩码是属于哪个默认掩码的“范围”内,这样我们就可以知道是对A类还是B类
还是C类⼤⽹来划分⼦⽹。⽐⽅说202.117.12.36/30,我们先把/30这种另类的掩码表⽰法转换为我们习惯的表⽰法:
11111111.11111111.11111111.11111100,转为⼗进制是
255.255.255.252。我们可以看到,这个掩码的左边三节与C类默认掩码相同,只有第四节与C 类默认掩码不同,所以我们认
为255.255.255.252这个掩码是在C类默认掩码的范围之内的,意味着我们将对C类⽹络进⾏⼦⽹划分。因为C类⽹络的默认掩
码是255.255.255.0,将C类默认掩码转换为⼆进制是11111111.11111111.11111111.00000000,这⾥的8个0表⽰可以⽤8位⼆
进制数来表⽰IP地址,也就是说C类⼤⽹中可有2的8次⽅个IP地址,也就是256个IP地址。这道题中的掩码的最后⼀节是
252,转换为⼆进制是11111100,因为1表⽰⽹络号,所以111111就表⽰将C 类⼤⽹划分为(111111)2进制个⼦⽹。将
111111转换为⼗进制是64,所以就表⽰将C类⼤⽹划分为64个⼦⽹,每个⼦⽹的IP地址数⽬是256/64=4,去除⼦⽹中的第⼀
个表⽰⼦⽹号的IP地址和最后⼀个表⽰⼴播地址的IP地址,⼦⽹中的可分配的IP地址数⽬就是⼦⽹中的总的IP地址数
⽬再减去2,也就是4-2=2个。
9、综合实例:
已知172.31.128.255/18,试计算:
1、⼦⽹数⽬,
2、⽹络号,
3、主机号,
4、⼴播地址,
5、可分配IP的起⽌范围
解:
1、算⼦⽹数⽬
⾸先将/18换成为我们习惯的表⽰法:
11111111.11111111.11000000.000000转为⼗进制就是255.255.192.0,可以看到这个掩码的左边两节和B类默认掩码是⼀致
的,所以这个掩码是在B类默认掩码的范围内,意味着我们将对B 类⼤⽹进⾏⼦⽹划分。B类掩码默类是⽤16位(16个0)来表⽰
可分配的IP地址,本题中的掩码在B 类默认掩码的基础上多出了两个表⽰⽹络号的1,这就是说是将B类⼤⽹划分为(11)2进制
个⼦⽹,将(11)2进制转换为⼗进制就是4,所以本题中是将B类⼤⽹划分为4个⼦⽹。
2、算⽹络号
⽤公式:将IP地址的⼆进制和⼦⽹掩码的⼆进制进⾏“与”(and)运算,得到的结果就是⽹络号。
“与运算”的规则是1和1得1,0和1得0,1和0得0。
172.31.128.255转为⼆进制是10101100.00011111.10000000.11111111,掩码是:
11111111.11111111.11000000.00000000
所以:
10101100.00011111.10000000.11111111
11111111.11111111.11000000.00000000
10101100.00011111.10000000.00000000
将10101100.00011111.10000000.00000000
转换为⼗进制就是172.31.128.0,所以⽹络号是172.31.128.0
3、算主机号
也⽤公式:⽤IP地址的⼆进制和(⼦⽹掩码的⼆进制的反码)进⾏“与”运算,得到的结果就是主机号。反码就是将原本是0的
变为1,原本是1的变为0。由于掩码是
11111111.11111111.11000000.00000000
所以其反码表⽰为00000000.00000000.00111111.11111111,再将IP地址的⼆进制和掩码的反码
表⽰法进⾏“与”运算:
10101100.00011111.10000000.11111111
00000000.00000000.00111111.11111111
00000000.00000000.00000000.11111111
将00000000.00000000.00000000.11111111
转换为⼗进制是0.0.0.255,我们将左边的0去掉,只留右边的数字,所以我们说这个IP的主机号是255。主机号是表⽰⽹络号
再加上255就是这个IP地址了。
4、算⼴播地址
也⽤公式:在得到⽹络号的基础上,将⽹络号右边的表⽰IP地址的主机部分的⼆进制位全部填上1,再将得到的⼆进制数转换
为⼗进制数就可以得到⼴播地址。因为本题中⼦⽹掩码是11111111.11111111.11000000.00000000,⽹络号占了18位,所以
本题中表⽰IP地址的主机部分的⼆进制位是14位,我们将⽹络号172.31.128.0,转换为⼆进制是
10101100.00011111.10000000.00000000,然后从右边数起,将14个0全部替换为1,即:
10101100.00011111.10111111.11111111,这就是这个⼦⽹的⼴播地址的⼆进制表⽰法。将这个⼆进制⼴播地址转换为⼗进
制就是172.31.191.255
5、算可⽤IP地址范围
因为⽹络号是172.31.128.0,⼴播地址是172.31.191.255,所以⼦⽹中可⽤的IP地址范围就是从⽹络号+1 到⼴播地址-1,所以
⼦⽹中的可⽤IP地址范围就是从
172.31.128.1-172.31.191.254。
发布评论