当前使用的IP地址有4个字节(32bit)组成,即IPV4编码方式。每个IP地址包括两部分:网络号和主机号。当分配给主机号的二进制位越多,则能标识的主机数就越多,相应地能标识的网络数就越少,反之同理。
IP地址分为五类,A类保留给*机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。
A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,A类地址的第一位总是0,B类地址的前两位总是10,C类地址的前三位总是110。
给出一个IP地址,我们可以通过子网掩码确定这个IP地址的网络号和主机号。
子网掩码的作用就是将某个IP地址划分成网络地址和主机地址两部分。
例如
有一个C类地址为: 192.9.200.13
其缺省的子网掩码为: 255.255.255.0
则它的网络号和主机号可按如下方法得到:
① IP地址 192.9.200.13
转换为二进制11000000 00001001 11001000 00001101
② 子网掩码255.255.255.0
转换为二进制11111111 11111111 11111111 00000000
③ 将两个二进制数做按位与(&)运算后得出的结果即为网络部分
11000000 00001001 11001000 00001101
& 11111111 11111111 11111111 00000000
-------------------------------------------------------------
11000000 00001001 11001000 00000000
= 192 . 9 . 200 . 0
即网络号为192.9.200.0
④将子网掩码取反再与IP地址按位与(&)后得到的结果即为主机部分
11000000 00001001 11001000 00001101
& 00000000 00000000 00000000 11111111 --- >已将掩码取反
------------------------------------------------------------
00000000 00000000 00000000 00001101
= 0 . 0 . 0 . 13
即主机号为13(或者0.0.0.13)。
已知192.168.1.133、255.255.255.0,这个子网掩码是C类地址的默认的子网掩码,在使用这个掩码时,这个IP地址并没有划分子网,将其转换为8位二进制数,其中的1所的对应的部分就是网络号,而0所对应的部分就是主机号。根据计算方法,192.168.1.0就是网络号(代表当前网络),0.0.0.133就是主机号。同时根据定义,主机号位全为一的地址为此网段的广播地址可知,此时的广播地址为192.168.1.255。此种默认情况是最常见的。
下面看下将网络划分子网后的情况,如:已知192.168.1.133、255.255.255.192.判断网络号,主机号和广播地址。
我们来看掩码255.255.255.192,将其转换成二进制后和255.255.255.0对比可发现,前掩码的前24位没有变化,只是在原来表示主机号的部分头两位变成了1。
我们把IP地址中的前24位(192.168.1)不看,因为前24位对应掩码没有变化它们始终表示网络号。
按照子网掩码的定义,
子网掩码1所对应的位为网络号位
而0所对应的位为主机号位
如图中深蓝色部分所示,主机号中的两位被用来表示网络号了,这就是子网号。(二进制一位用0或1表示,那么占用了两位就有2*2=4种表示,这里占用了2位,也就是说我们将原有的192.168.1.0这个网络分成了四份,即4个子网)这四段的网络号分别是00000000、01000000、10000000、11000000,现在我们将它们转换成10进制就分别是0、64、128、192,现在把前24位加进来。
这四段网络分别是192.168.1.0 (~192.168.1.63)
192.168.1.64 (~192.168.1.127)
192.168.1.128 (~192.168.1.191)
192.168.1.192 (~192.168.1.255)
现在我们来看广播地址,既然我们把一个网段分成了四份,它就应该有4个广播地址。 广播地址的定义是主机号位全为1的地址就是广播地址。所以这四个网段的广播地址末八位就是00111111、01111111、10111111、11111111,转换成10进制分别为63、127、191、255。加上原来的网络号位,广播地址就是
192.168.1.63
192.168.1.127
192.168.1.191
192.168.1.255
四个网段中刨除网络地址和广播地址中间的部分就是可用的主机IP地址了。
通过以上分析方法可知192.168.1.133这个IP地址的网络号是192.168.1.128,其主机号是0.0.0.5,广播地址是192.168.1.191。
根据以上分析和计算方法,子网划分建议按以下步骤和实例计算子网掩码。
1.将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。
2.取上述要划分子网数的2m的幂m。如23,即m=3。
3.将上一步确定的幂m按高序占用主机地址m位后转换为十进制。
4.如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是C类网,则子网掩码为255.255.255.224;如果是B类网,则子网掩码为 255.255.224.0;如果是A类网,则子网掩码为255.224.0.0。在这里,子网个数n与占用主机地址位数m有如下等式成立:2m=n。
根据这些原则,将一个C类网络分成4个子网。若我们用的网络号为192.9.200.0,则该C类网内的主机IP地址就是192.9.200.1~192.9.200.254
(因为全“0”和全“1”的主机地址有特殊含义,不作为有效的IP地址)
例:学校新建5个机房,每个房间有30台机器,如果给定一C类网络地址:192.168.1.0,问如何将其划分为5个子网,子网掩码该如何设置?
答:23 =8(大于5的最小的2的整幂次数),取23的幂,即3,即占用了主机号中的高3位即为11100000,转换为十进制为224,所以该地址为C类地址的子网掩码应该设置为255.255.255.224。各机房IP和子网掩码配置如下(已经去掉广播地址和主机地址):
机房号 子网掩码 IP地址范围
机房1 255.255.255.224 192.168.1.1~192.168.1.30
机房2 255.255.255.224 192.168.1.33~192.168.1.62
机房3 255.255.255.224 192.168.1.65~192.168.1.94
机房4 255.255.255.224 192.168.1.97~192.168.1.126
机房5 255.255.255.224 192.168.1.129~192.168.1.158
ps:网络号占了3位,那么就是把主机号分成了有8段:即(00000000、00100000、01000000、01100000、10000000、10100000、11000000、11100000)转换成十进制:
192.168.1.0 (~192.168.1.31)机房1 192.168.1.0 不作有效ip(一般用作网关),从192.168.1.1开始,选30个ip号,后面一致
192.168.1.32(~192.168.1.63)机房2
192.168.1.64(~192.168.1.95)机房3
192.168.1.96(~192.168.1.127)机房4
192.168.1.128(~192.168.1.159)机房5
192.168.1.160(~192.168.1.191)
192.168.1.192(~192.168.1.223)
192.168.1.224(~192.168.1.225)
可能会有疑问,为什么不从192.168.1.32开始,而是从192.168.1.33开始,我的理解是,可以从32开始,但是一般第一位都作为子网的网关,因为这里设定为30个ip地址,按照子网的划分规则,划分为8个子网后,每个子网除去一个广播地址与一个网关后,正好有30。所以这个网关可以*选择,一般网关地址是子网网段的第一个ip或者倒数第二个ip。
本文章转自ZBK的随笔(http://www.cnblogs.com/gylei/archive/2012/12/17/2822480.html),另添加自己的一些理解。