子网掩码简明手册

子网掩码的所有计算和运用都是在二进制的基础上的、所以重点讲一下子网掩码的二进制形式、通常莪们在IP属性查看虽然都是以十进制出现、但那只是为了方便用户观看、其实际上计算机都以二进制方法来计算和运用子网掩码、

通常的IP地址是由网络标识和主机标示所组成、如

192.168.0.3

网络标识为:192.168.0

主机标识为:3

而子网掩码也一样、如

255.255.255.0

但由于子网掩码是位运算的、莪们需要先转化为二进制来分析、这是一串长度为32位(简单说就是32个数啦)的二进制数字

11111111.11111111.11111111.00000000

1的数量代表子网掩码网络位的长度

0的数量代表子网掩码主机位的长度

由于子网掩码规定、只能网络位只能由连续的1组成、主机位只能由连续的0组成、而且左边只能是网络位、网络位写完后只能是主机位、

所以只能是以下的数字组合

10000000----128
11000000----192
11100000----224
11110000----240
11111000----248
11111100----252
11111110----254
11111111----255

就是说只可能出现以下这种情况的十进制子网掩码

255.255.128.0

这种是错误的!

255.255.120.0

因为二进制永远不会转换出这样的十进制数字来

这样的的子网掩码也是错误的!

255.128.128.0

转化成二进制迩就会明白了、

11111111.10000000.10000000.00000000

它不并符合网络标识位为连续1的规定

子网掩码的表现形式

1、常见的十进制表现形式、

255.0.0.0

255.254.0.0

2、linux系常见的表现形式、由IP地址后加上"/"再由1-32的数字来表示、其中数字部分为网络标识位的长度

192.168.1.1/24

因为网络标识位长度为24、也就是有24个1、也就是

11111111.11111111.11111111.00000000

转化成十进制也就是255.255.255.0咯

计算子网掩码的方法

子网掩码的作用就是用来划分子网、所以所以确定子网掩码的确切数字就是在划分子网、划分子网有两种方式、第一种是预先确定子网数来划分、第二种是预先确定每个子网的主机数来划分、

1、预先确定子网数来划分

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

2、预先确定每个子网的主机数来划分

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


相关资料:https://wangyan.org/blog/ipv4-mask.html

原文地址:https://www.cnblogs.com/klobohyz/p/2335959.html