关于子网掩码的计算
2006-09-11 09:23 Jeff 阅读(2637) 评论(0) 编辑 收藏 举报关于子网掩码计算- -
IP地址是32位的二进制数值,用于在TCP/IP通讯协议中标记每台计算机的地址。通
常我们使用点式十进制来表示,如192.168.0.5等等。
每个IP地址又可分为两部分。即网络号部分和主机号部分:网络号表示其所属的网
络段编号,主机号则表示该网段中该主机的地址编号。按照网络规模的大小,IP地
址可以分为A、B、C、D、E五类,其中A、B、C类是三种主要的类型地址,D类专供
多目传送用的多目地址,E类用于扩展备用地址。A、B、C三类IP地址有效范围如下
表:
类别 网络号 /占位数 主机号 /占位数 用途
A 1~126 / 8 0~255 0~255 1~254 / 24 国家级
B 128~191 0~255 / 16 0~255 1~254 / 16 跨过组织
C 192~223 0~255 0~255 / 24 1~254 / 8 企业组织
随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太
多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT
在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划
分,以形成多个子网,提供给不同规模的用户群使用。
这里主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取
作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更
多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。
子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一
个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用点式十进制来
表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们
共属于同一子网中。
在计算子网掩码时,我们要注意IP地址中的保留地址,即“ 0”地址和广播地址,
它们是指主机地址或网络地址全为“ 0”或“ 1”时的IP地址,它们代表着本网络
地址和广播地址,一般是不能被计算在内的。
下面就来以实例来说明子网掩码的算法:
对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写
出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码为
255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类
推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作
为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的
掩码计算。
一、利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数
目。
1)将子网数目转化为二进制来表示
2)取得该二进制的位数,为 N
3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址
划分子网的子网掩码。
如欲将B类IP地址168.195.0.0划分成27个子网:
1)27=11011
2)该二进制为五位数,N = 5
3)将B类地址的子网掩码255.255.0.0的主机地址前5位置 1,得到 255.255.248.0
即为划分成 27个子网的B类IP地址 168.195.0.0的子网掩码。
二、利用主机数来计算
1)将主机数目转化为二进制来表示
2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二
进制位数,为 N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占
据不止8位。
3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的
将N位全部置为 0,即为子网掩码值。
如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
1) 700=1010111100
2)该二进制为十位数,N = 10
3)将该B类地址的子网掩码255.255.0.0的主机地址全部置 1,得到
255.255.255.255
然后再从后向前将后 10位置0,即为: 11111111.11111111.11111100.00000000
即255.255.252.0。这就是该欲划分成主机为700台的B类IP地址 168.195.0.0的子
网掩码。
下面列出各类IP地址所能划分出的所有子网,其划分后的主机和子网占位数,以及
主机和子网的(最大)数目,注意要去掉保留的IP地址(即划分后有主机位或子网
位全为“0”或全为“1”的):
A类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/22 255.192.0.0 2/4194302
3/21 255.224.0.0 6/2097150
4/20 255.240.0.0 14/1048574
5/19 255.248.0.0 30/524286
6/18 255.252.0.0 62/262142
7/17 255.254.0.0 126/131070
8/16 255.255.0.0 254/65536
9/15 255.255.128.0 510/32766
10/14 255.255.192.0 1022/16382
11/13 255.255.224.0 2046/8190
12/12 255.255.240.0 4094/4094
13/11 255.255.248.0 8190/2046
14/10 255.255.252.0 16382/1022
15/9 255.255.254.0 32766/510
16/8 255.255.255.0 65536/254
17/7 255.255.255.128 131070/126
18/6 255.255.255.192 262142/62
19/5 255.255.255.224 524286/30
20/4 255.255.255.240 1048574/14
21/3 255.255.255.248 2097150/6
22/2 255.255.255.252 4194302/2
B类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/14 255.255.192.0 2/16382
3/13 255.255.224.0 6/8190
4/12 255.255.240.0 14/4094
5/11 255.255.248.0 30/2046
6/10 255.255.252.0 62/1022
7/9 255.255.254.0 126/510
8/8 255.255.255.0 254/254
9/7 255.255.255.128 510/126
10/6 255.255.255.192 1022/62
11/5 255.255.255.224 2046/30
12/4 255.255.255.240 4094/14
13/3 255.255.255.248 8190/6
14/2 255.255.255.252 16382/2
C类IP地址:
子网位 /主机位 子网掩码 子网最大数 /主机最大数
2/6 255.255.255.192 2/62
3/5 255.255.255.224 6/30
4/4 255.255.255.240 14/14
5/3 255.255.255.248 30/6
6/2 255.255.255.252 62/2
再根据CCNA中会出现的题目给大家举个例子:
首先,我们看一个考试中常见的题型:一个主机的IP地址是202.112.14.137,掩码
是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址。
常规办法是把这个主机地址和子网掩码都换算成二进制数,两者进行逻辑与运算后
即可得到网络地址。其实大家只要仔细想想,可以得到另一个方法:255.255.255.
224的掩码所容纳的IP地址有256-224=32个(包括网络地址和广播地址),那么
具有这种掩码的网络地址一定是32的倍数。而网络地址是子网IP地址的开始,广播
地址是结束,可使用的主机地址在这个范围内,因此略小于137而又是32的倍数的
只有128,所以得出网络地址是202.112.14.128。而广播地址就是下一个网络的网
络地址减1。而下一个32的倍数是160,因此可以得到广播地址为202.112.14.159。
可参照下表来理解本例。
子网络 2进制子网络域数 2进制主机域数的范围 2进制主机域数的范围
第1个子网络 000 00000 thru 11111 .0 thru.31
第2个子网络 001 00000 thru 11111 .32 thru.63
第3个子网络 010 00000 thru 11111 .64 thru.95
第4个子网络 011 00000 thru 11111 .96 thru.127
第5个子网络 100 00000 thru 11111 .128 thru.159
第6个子网络 101 00000 thru 11111 .160 thru.191
第7个子网络 110 00000 thru 11111 .192 thru.223
第8个子网络 111 00000 thru 11111 .124 thru.255
CCNA考试中,还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和
计算子网掩码。这也可按上述原则进行计算。比如一个子网有10台主机,那么对于
这个子网需要的IP地址是:
10+1+1+1=13
注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网
络地址和广播地址。因为13小于16(16等于2的4次方),所以主机位为4位。而
256-16=240
所以该子网掩码为255.255.255.240。
如果一个子网有14台主机,不少人常犯的错误是:依然分配具有16个地址空间的子
网,而忘记了给网关分配地址。这样就错误了,因为:
14+1+1+1=17
17大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时
子网掩码为:255.255.255.224。