网络掩码,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。
举个列子:
有一次参加小朋友的毕业典礼,一共33个小朋友,老师说现在玩一个小游戏,老师喊数字N,小朋友们按照数字N抱在一起,落单的小朋友就输了。
老师喊2,小朋友们2个人抱成一团,最后有一个小朋友落单。
老师喊4,小朋友们4个人抱在一起,最后有一个小朋友落单。
老师喊8,小朋友们8个人抱在一起,最后有一个小朋友落单。
老师喊的数字2、4、8也是一种掩码,这种掩码的作用就是将小朋友分成一个个小单元。
某个小朋友无论被分在哪个小单元里,小朋友还是哪个小朋友,但是由于掩码的变化,小朋友的单元会发生变化。
在Internet里有20亿+个IP地址,这些IP地址如果比作小朋友的学号的话,从1.0.0.0开始,1.0.0.1、1.0.0.2、1.0.0.3….,面对这×××数量一般的IP地址,如何管理他们呢?
从幼儿园老师那里得到了启发,老师开始报数了,老师喊256,于是一个个小朋友自动找到了自己的小单元。
1.0.0.0、1.0.0.1、1.0.0.2、1.0.0.3、 … 1.0.0.254、1.0.0.255
1.0.1.0、1.0.1.1、1.0.1.2、1.0.1.3、 … 1.0.1.254、1.0.1.255
1.0.2.0、1.0.2.1、1.0.2.2、1.0.2.3、 … 1.0.2.254、1.0.2.255
正好每256个小朋友在一个单元。
请看以下示例:
运算演示之一:
I P 地址 192.168.0.1
子网掩码 255.255.255.0
AND运算 (AND运算法则:1 与 1 = 1 ,1 与 0 = 0 ,0 与 1 = 0 ,0 与 0 = 0 ,即当对应位均为1时结果为1,其余为0。)
转化为二进制进行运算:
I P 地址 11000000.10101000.00000000.00000001
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
运算演示之二:
I P 地址 192.168.0.254
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11000000.10101000.00000000.11111110
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
运算演示之三:
I P 地址 192.168.0.4
子网掩码 255.255.255.0
AND运算
转化为二进制进行运算:
I P 地址 11000000.10101000.00000000.00000100
子网掩码 11111111.11111111.11111111.00000000
AND运算
11000000.10101000.00000000.00000000
转化为十进制后为:
192.168.0.0
通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0
所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。
为何电脑配置IP,还要配置网络掩码?
那是因为互联网设计之初,是以网段为最小单元来管理互联网的,换句话说,互联网是由一个个网段组成的,对于一台计算机来说,差不多有三种场合的通信。
1)自己与自己通信
2)与本网段其它主机通信
3)与别的网段主机的通信
接下来的问题就是,如何让计算机知道是哪种场合的通信?
必然有一种技术手段,让计算机做出合理判断,这个技术手段就是网络掩码。
举个例子
10.10.10.1 255.255.255.0
其中255.255.255.0就是网络掩码,由于这个掩码全1的二进制位长为24位,我们也经常写为10.10.20.1/24。
自己与自己通信
当ping 10.10.10.1 时,计算机和自己的IP相比较,所以会发给自己,我们称之为精确匹配。
与本网段其它主机通信
当ping 10.10.10.2 时,计算机和自己的IP相比较,发现并不相等,则需要退而求其次,使用模糊匹配,用自己的掩码255.255.255.0与10.10.10.2 做按位与,得到网段10.10.10,这个和自己在一个网段(一个广播域),所以可以广播ARP得到对方的MAC,完成通信。
与别的网段主机的通信
当ping 8.8.8.8 时,计算机和自己的IP相比较,发现并不相等,则需要退而求其次,使用模糊匹配,用自己的掩码255.255.255.0与8.8.8.8做按位与,得到网段8.8.8,和自己10.10.10不在一个网段,需要使用最模糊的匹配,一般会匹配0.0.0.0/0,这个是最后的选择,一般指向网关,由于网关和自己在一个网段(一个广播域),所以可以广播ARP得到网关的MAC,然后把ping 包发给网关,完成通信。
转载于:https://blog.51cto.com/13115278/2176865