子网掩码是一个32位地址,这是一种与IP地址结合使用的技术。 它具有两个主要功能。 一种是屏蔽IP地址的一部分,以区分网络ID和主机ID,并指示IP地址是在局域网上还是在远程网络上。 第二个是将大型IP网络划分为若干个小型子网。
子网的使用是为了减少IP的浪费。 因为随着Internet的发展,创建了越来越多的网络,有些网络多达数百个,而有些只有少数,这浪费了大量IP地址,因此必须划分子网。 使用子网可以提高网络应用程序的效率。
通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是将计算机的十进制IP地址和子网掩码转换为二进制形式,然后执行二进制AND计算(全1则得1,不全1则得0)。 如果结果相同,则两台计算机属于同一网段。
一、分割网络
但由于计算机数量不断增加,人们发展IP地址数量很快要不够用了,而有类IP的IP分类方法会造成许多IP地址的浪费,如某公司申请到一个A类IP地址范围,其有效IP数量可达2^24-2,即1600万之多,而公司中不可能有什么多电脑。于是人们想把着能不能把一个大的网络分割为若干个小网络。那如何来区别不同IP地址是否在同一网络呢?这里就需要使用子网掩码了,子网掩码与IP地址一样也是一个32位的二进制数,每个IP都规定一定子网掩码,把IP地址与子网掩码进行二进位的或,得到的就是网络号,如果网络号相同就表示二台电脑在同一网段,可以直接通讯,不需要路由器帮忙。这时的IP地址由于需要靠子网掩码来计算网络号,已经不再存在A、B、C类网络的概念了,这时的网络叫无类网络。我们也可以这样理解,需要靠IP地址的第一个字节数据的范围来区别网络号的称有类网络,靠子网掩码来计算得到网络号的叫无类网络。目前我的WINXP和LINUX在指定IP的同时都必须要指定一个子网掩码,所以都属于有类网络。
二 、 计算网络号
例1:A电脑IP地址为192.168.1.1,子网掩码为255.255.255.0;B电脑IP地址为192.168.1.2,子网掩码为255.255.225.0。大家都知道这二台电脑在同一网段,相互能PING通。
例2:A电脑的IP地址为192.168.1.1,子网掩码为255.255.255.0;B电脑的IP地址为192.168.2.1,子网掩码为255.255.0.0。大家分析一下二台电脑能相互PING通吗?
分析:这个问题需要大家理解子网掩码在网络通讯时的作用。不能简单的认为A电脑处在192.168.1.0网段,B电脑处在192.168.0.0网段,所以不能PING通。正确的分析应该如下:
⑴每台电脑事先会把自己IP和自己的子网掩码进行“与”操作,得到自己的网段号,如A电脑处在192.168.1.0网段,B电脑处在192.168.0.0网段。
⑵B电脑向A电脑发数据包时,会把A电脑的IP与B电脑的子网掩码进行“与”操作,得到网络号是192.168.0.0,B电脑会认为A电脑与自己在同一网段,所以数据包会顺利发出。
⑶A电脑由于与B电脑在同一网段,肯定能收到B电脑发出的数据包,由于PING操作要求A电脑回应一个响应包。这样A电脑会把B电脑的IP与A电脑的子网掩码进行“与”操作,得到网络号192.168.2.0,A电脑发现网络号与自己所处的192.168.1.0不在同一网段,由于A电脑目前没有设置默认网关,所以对该数据包将进行丢弃操作,结果B电脑当然就无法收到A电脑的回应包,所以B电脑上会显示“Request timed out”,即网络超时。
⑷如果在A电脑上去PINGB电脑,根据前面的分析,A电脑会认为B电脑与A电脑不在网段,而A电脑又没有设置默认网关,所以会显示“Destination host unreachable”,即目标主机不可达。