子网掩码
编辑
RFC 950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位置都为1,对应于主机地址的所有位置都为0。
由此可知,A类网络的默认子网掩码是255.0.0.0,B类网络的默认子网掩码是255.255.0.0,C类网络的默认子网掩码是255.255.255.0。将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
子网掩码常用点分十进制表示,我们还可以用CIDR的网络前缀法表示掩码,即“/<网络地址位数>;”。如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。
IP判断
子网掩码告知路由器,IP地址的前多少位是网络地址,后多少位(剩余位)是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。
例如,有两台主机,主机一的IP地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。现在主机一要给主机二发送数据,先要判断两个主机是否在同一网段。
主机一
222.21.160.6即:11011110.00010101.10100000.00000110
255.255.255.192即:11111111.11111111.11111111.11000000
按位逻辑与运算结果为:11011110.00010101.10100000.00000000
十进制形式为(网络地址):222.21.160.0
主机二
222.21.160.73 即:11011110.00010101.10100000.01001001
255.255.255.192即:11111111.11111111.11111111.11000000
按位逻辑与运算结果为:11011110.00010101.10100000.01000000
十进制形式为(网络地址):222.21.160.64
C类地址判断前三位是否相同,即可确定2个IP地址是否在同一网段内,但本例中的222.21.160.6与222.21.160.73不在同一网段,因为这两个C类IP地址已经做了子网划分就不能只判断前三位是否相同就确认这两个IP是否在同一网段。其中222.21.160.6在222.21.160.1-222.21.160.62 段,222.21.160.73在222.21.160.65-222.21.160.126 段,所以不在同一网段 [2] ,如果要通信需要通过路由器转发。
设置
子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。以C类网络为例,原有8位主机位,2的8次方即256个主机地址,默认子网掩码255.255.255.0。借用1位主机位,产生2个子网,每个子网有126个主机地址;借用2