1.定义
IP地址由32位二进制组成,Internet组织机构根据网络号和主机号位数不同,IP地址分成A,B,C,D,E,5类地址,其中A,B,C类地址最常用。
A类地址:网络号占8位,主机号占24位。特点:前1位为0,网络号的范围:1.0.0.0~126.0.0.0。默认子网掩码:255.0.0.0
最大网络数127个(1~126是可用的,127作为本地软件回测本主机之用),网络中最大主机数是2^24-2个,减去两个的原因是去掉一个主机号全0的地址(网络地址)和主机号全1的广播地址。
B类地址:网络号占16为,主机号占16位。特点:前2位是10,网络号范围:128.0.0.0~191.255.0.0.默认子网掩码:255.255.0.0。最大网络数:2^14,网络中最大主机数65534(2^16-2)个。
C类地址:网络号占24位,主机号占8位。特点前3位110,网络号范围:192.0.0.0~223.255.255.0,默认子网掩码:255.255.255.0.最大网络数为2^21个,网络最大主机数254(2^8-2)。
2.子网划分
为了提高IP地址的使用效率,可以将一个网络划分为多个子网。采用借位的方式,从主机最高位开始借位为新的网络,剩余部分仍然为主机位。使本来属于主机号的部分改变为网络号,这样就实现了划分子网的目的。借位使得IP地址的结构划分了3个部分:网络位,子网位和主机位。
网络位+主机位 -->网络位+子网位+主机位
假设某公司有一个C类地址202.110.1.0,现将主机字段的前3位作为子网号,后5位作为主机号,这样该公司最多可划分8(23)个子网,每个子网有30(25-2)个主机地址可以分配。
子网数=2^x个(X=借位数)
主机数=2^y-2个(Y=主机位)
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。以C类网络为例,原有8位主机位,2的8次方即256个主机地址,默认子网掩码255.255.255.0。借用1位主机位,产生2个子网,每个子网有126个主机地址;借用2位主机位,产生4个子网,每个子网有62个主机地址……每个网中,第一个IP地址(即主机部分全部为0的IP)和最后一个IP(即主机部分全部为1的IP)不能分配给主机使用,所以每个子网的可用IP地址数为总IP地址数量减2;根据子网ID借用的主机位数,我们可以计算出划分的子网数、掩码、每个子网主机数,列表如下:
① 划分子网数 ② 子网位数 ③子网掩码(二进制) ④ 子网掩码(十进制) ⑤ 每个子网主机数
① 1~2 ② 1 ③ 11111111.11111111.11111111.10000000 ④ 255.255.255.128 ⑤ 126
① 3~4 ② 2 ③ 11111111.11111111.11111111.11000000 ④ 255.255.255.192 ⑤ 62
① 5~8 ② 3 ③ 11111111.11111111.11111111.11100000 ④ 255.255.255.224 ⑤ 30
① 9~16 ② 4 ③ 11111111.11111111.11111111.11110000 ④ 255.255.255.240 ⑤ 14
① 17~32 ② 5 ③ 11111111.11111111.11111111.11111000 ④ 255.255.255.248 ⑤ 6
① 33~64 ② 6 ③ 11111111.11111111.11111111.11111100 ④ 255.255.255.252 ⑤ 2
如上表所示的C类网络中,若子网占用7位主机位时,主机位只剩一位,无论设为0还是1,都意味着主机位是全0或全1。由于主机位全0表示本网络,全1留作广播地址,这时子网实际没有可用主机地址,所以主机位至少应保留2位。
3.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
通过得到网络地址,这两个IP不在同一网段。
4.主机号、网络号的计算
当知道一个IP地址,可以通过子网掩码来确定网络号(子网号)和主机号给定的IP地址为192.55.12.120,子网掩码为255.255.255.240
子网号的计算:
IP地址 192.55.12.120 转换为二进制 11000000 00110111 00001100 01111000
子网掩码 255.255.255.240 转换为二进制 11111111 11111111 11111111 11110000
逐位与(AND)运算: 11000000 00110111 00001100 01110000
网络号 : 192 55 12 112
将子网掩码取反再与IP地址与(AND)运算后得到的结果即为主机号
IP地址 192.55.12.120 转换为二进制 11000000 00110111 00001100 01111000
子网掩码 255.255.255.240 取反转换为二进制 00000000 00000000 00000000 00001111
逐位与(AND)运算: 00000000 00000000 00000000 00001000
主机号 : 0 0 0 8