什么是子网掩码?简述子网掩码的编码规则及分类
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。[1]
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。
分类
子网掩码一共分为两类。一类是缺省(自动生成)子网掩码,一类是自定义子网掩码。[6]
缺省子网掩码
缺省子网掩码即未划分子网,对应的网络号的位都置1,主机号都置0。
A类网络缺省子网掩码:255.0.0.0
B类网络缺省子网掩码:255.255.0.0
C类网络缺省子网掩码:255.255.255.0[6]
在缺省掩码下的IP地址中,网络地址和广播地址的计算很简单,虽然按照计算方法需要进制转换和与运算,但是在实际使用当中,我们已经可以快速写出结果。网络地址的计算就是子网掩码中0对应的地方变0, “255”对应的地方不变即可;而广播地址则是子网掩码中0对应 的地方变“255”,“255”对应的地方不变。[6]
自定义子网掩码
自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。形式如下:
未做子网划分的IP地址:网络号+主机号
做子网划分后的IP地址:网络号+子网号+子网主机号
也就是说IP地址在划分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。子网掩码是32位二进制数,它的子网主机标识用部分为全“0”。利用子网掩码可以判断两台主机是否在同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。
变长子网掩码
变长子网掩码VLSM就是每段IP地址使用不同长度的子网掩码,可以对子网进行层次化编址,以便最有效的利用现有的地址空间。变长子网掩码(Variable-Length Subnet Masks,VLSM)的出现是打破传统的以类(class)为标准的地址划分方法,是为了缓解IP地址紧缺而产生的。他的作用是节约IP地址空间;减少路由表大小。需要注意的是注意事项:使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIPv2,OSPF,EIGRP和BGP。
IPV6与子网掩码
如果是都是使用的IPV6的话是没有子网掩码的概念。IPV6是端到端的连接通信,不需要子网了。但是,目前似乎更多都是在IPV4上使用隧道的方式使用IPV6。完全消灭IPV4还需要相当长的时间,子网掩码目前还是要的。
IPv6中没有子网掩码的概念,也没有网络号与主机号的概念。在IPV6中前缀长度就可以当作子网掩码来理解。接口ID可以当作主机号来理解。在Windows XP中,IPv6地址的前缀长度默认为64位。IPv6的地址空间过于广大,可能一个子网的子网都要比整个IPv4的世界要大很多,所以子网的概念在IPv6世界里已经淡化了。但是,同一站点的主机要想直接通信(不经过路由器),还是要求前缀相同才行的。