关于子网掩码

来源:互联网 发布:js encodeuri导入 编辑:程序博客网 时间:2024/06/04 18:50

定义:

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

默认子网掩码:

子网掩码——屏蔽一个IP地址的网络部分的“全1”比特模式。对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

构成

互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。

IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。

规则

子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数

(2的主机位数次方-2,因为主机号全为1时表示该网络广播地址,全为0时表示该网络的网络号,这是两个特殊地址)

。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

定义子网掩码

用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

定义子网掩码的步骤为:

A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为c类IP地址,网络标识为“210.73.a”,主机标识为“b”。

B、根据我们所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们需要12个子网,将来可能需要16个。用第四个字节的前四位确定子网掩码。前四位都置为“1”,即第四个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。

C、把对应初始网络的各个位都置为“1”,即前三个字节都置为“1”,则子网掩码的间断二进制形式为:“11111111.11111111.11111111.11110000” 。

D、把这个数转化为间断十进制形式为:“255.255.255.240” 。

如何用子网掩码得到网络 / 主机地址

过程如下:

将 IP 地址与子网掩码转换成二进制;

将二进制形式的 IP 地址与子网掩码做 ’ 与 ’ 运算,将答案化为十进制便得到网络地址;

将二进制形式的子网掩码取 ’ 反 ’ ;

将取 ’ 反 ’ 后的子网掩码与 IP 地址做 ’ 与 ’ 运算,将答案化为十进制便得到主机地址。

下面我们用一个例子给大家演示:

假设有一个 I P 地址: 192.168.0.1

子网掩码为: 255.255.255.0

化为二进制为: I P 地址 11000000.10101000.00000000.00000001

子网掩码 11111111.11111111.11111111.00000000

将两者做 ’ 与 ’ 运算得: 11000000.10101000.00000000.00000000

将其化为十进制得: 192.168.0.0

这便是上面 IP 的网络地址,主机地址以此类推。

如何计算子网数量?

这个问题大家会常常提到,还是从子网掩码入手,主要有两个步骤:

观察子网掩码的二进制形式,确定作为子网号的位数 n ;

子网数量为 2^n - 2 。(为什么减 2 ,继续往下看)

举个例子来说,比如有这样一个子网掩码: 255.255.255.224 其二进制为:

11111111.11111111.11111111.11100000

可见 n=3,2 的 3 次方为 8 ,说明子网地址可能有

如下 8 种情况:

000 001 010 011 100 101 110 111

但其中代表网络自身的 000 ;代表广播地址的 111 是被保留的,所以要减 2 。

如何计算总主机数量,子网内主机数量?

总主机数量=子网数量×子网内主机数量

再用一个例子给大家说明,比如子网掩码为 255.255.255.224

上面的讨论知道它最多可以划分 6 个子网,那么每个子网内最多有多少个主机呢?其实上面我已经给大家算过了,由于网络被划分为 6 个子网,占用了主机号的前 3 位,且是 C 类地址,则主机号只能用 5 位来表示主机号,因此子网内的主机数量=( 2 的 5 次方)- 2 = 30.

因此通过这个子网掩码我们可以算出这个网络最多可以标识 6*30=180 个主机(可见,在化分子网后,整个网络所能标识的主机数量将减少)。

计算方式

由于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

根据子网数

利用子网数来计算
在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

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(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0
即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码(实际上是划成了32-2=30个子网)。
这一段介绍的是旧标准下计算的方法,关于旧的标准后文在介绍,在新标准中则可以先将27减去1,因为计算机是从0开始计算的,从0到27实际上是有28个,所以说如果需要27个就需要将27减去1。

根据主机数

利用主机数来计算

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的子网掩码。

参考:
http://baike.baidu.com/view/878.htm
http://blog.csdn.net/jason314/article/details/5447743

0 0
原创粉丝点击