IP地址专题七:子网掩码及主机段的算法

简介:
类范围:IP地址常采用点分十进制表示方法:X.Y.Y.Y,在这里,X=1--126时称为A类地址;X=128--191时成为B类地址;X=192--223时称为C类地址;如10.202.52.130,因为X=10在1--126范围内所以称为A类地址,默认子网掩码:A类为255.0.0.0;B类为255.255.0.0;C类为255.255.255.0

当我们要划分子网用到子网掩码M时,类子网掩码的格式应为:A类为255.M.0.0;B类为255.255.M.0;C类为255.255.255.M. M是相应的子网掩码,如255.255.255.240

十进制计算基数:256.等一下我们所有的十进制计算都要用256来进行

几个公式变量的说明:

Subnet_block:可分配子网块的大小,指在某一子网掩码下的子网的块数.

Subnet_num:实际可分配子网数,指可分配子网块中要剔除首,尾两块,这是某一子网掩码下可分配的实际子网数量,它等于Subnet_block-2

IP_block:每个子网可分配的IP地址块大小

IP_num:每个子网实际可分配的IP地址数,因为每个子网的首,尾IP地址必须保留(一个为网络地址,一个为广播地址),所以它等于IP_block-2.IP_num也用于计算主机段

M:子网掩码(net mask)

他们之间的公式如下:

M=256-IP_block

IP_block=256/Subnet_block,反之Subnet_block=256/IP_block

IP_num=IP_block-2

Subnet_num=Subnet_block-2

2的冥数:要熟练掌握2^8(256)以内的2的冥数的十进制数,如128=2^7,64=2^6....,这可使我们立即推算出Subnet_block和IP_block数.

现在我们举一些例子:

一,已知所需子网数12,求实际子网数

解:这里实际子网数指Subnet_num,由于12最接近2的冥数为16(2^4),既Subnet_block=16,那么Subnet_num=16-2=14,故实际子网数为14.

二,已知一个B类子网每个子网主机数要达到60X255(约相当于X.Y.0.1--X.Y.59.254的数量)个,求子网掩码

解:1.  60接近2的冥数为64(2^6),即IP_block=64

2.  子网掩码M=256-IP_block=256-64=192

3.  子网掩码格式B类是:255.255.M.0,所以子网掩码为:255.255.192.0

三.如果所需子网数为7,求子网掩码

解:1.  7最接近2的冥为8,但8个Subnet_block因为要保留首,尾2个子网块,即8-2=6<7,并不能达到所需子网数,所以应该取2的冥为16,即Subnet_block=16

2.  IP_block=256/Subnet_block=256/16=16

3.  子网掩码M=256-IP_block=256-16=240

四.已知网络地址为211.134.12.0,要有4个子网,求子网掩码及主机段

解:1.  211.Y.Y.Y是一个C类网,子网掩码格式为255.255.255.M

2.  4个子网,4接近2的冥是8(2^3),所以Subnet_block=8,Subnet_num=8-2=6

3.  IP_block=256/Subnet_block=256/8=32

4.  子网掩码M=256-IP_block=256-32=224

5.  所以子网掩码表示为255.255.255.224

6.  因为子网块中的可分配主机又有首,尾两个不能使用,所以可分配6个子网块(Subnet_num),每块32个可分配主机块(IP_block) 即:32-63,64-95,96-127,128-159,160-191,192-223

首块(0-31)和尾块(224-255)不能使用

7.  每个子网块中的可分配主机块又有首,尾两个不能使用(一个是子网网络地址,一个是子网广播地址),所以主机段分别为:33-62,65-94,97-126,129-158,161-190,193-222

8.  所以子网掩码为255.255.255.224    主机段共6段为:211.134.12.33--211.134.12.62;

211.134.12.65--311.134.12.94;211.134.12.97--211.134.12.126;211.134.12.129--211.134.12.158;

211.134.12.161--211.134.12.190;211.134.12.193--211.134.12.222   可以任选其中的4段作为4个子网.

介绍子网掩码的两种简便算法

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




















本文转自starger51CTO博客,原文链接:http://blog.51cto.com/starger/17248 ,如需转载请自行联系原作者



相关文章
|
存储 算法 NoSQL
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
332 0
【数据结构和算法】散列表的查找算法(开放地址法,链地址法)
|
4月前
|
算法 网络协议 网络架构
【网络层】动态路由算法、自治系统AS、IP数据报格式
【网络层】动态路由算法、自治系统AS、IP数据报格式
33 0
|
5月前
|
算法
代码随想录算法训练营第二十七天 | LeetCode 93. 复原 IP 地址、78. 子集、90. 子集 II
代码随想录算法训练营第二十七天 | LeetCode 93. 复原 IP 地址、78. 子集、90. 子集 II
34 0
|
12月前
|
算法 Java PHP
半天不到,实现仿微博URL短地址算法与解析
半天不到,实现仿微博URL短地址算法与解析
|
算法
IP地址转换整型(算法练习)
IP地址转换整型(算法练习)
99 0
IP地址转换整型(算法练习)
《全景揭秘阿里文娱智能算法》电子版下载地址
文娱大脑究竟能有多“智能”?答案是全生命周期的人工智能技术!从内容智能到增长营销,全景揭秘阿里文娱智能算法,就在这一本!
45 0
《全景揭秘阿里文娱智能算法》电子版下载地址
|
算法 Java
【算法】字符串复原IP地址,从前序与中序编辑序列构造二叉树 三道算法题
字符串复原IP地址,从前序与中序编辑序列构造二叉树
89 1
【算法】字符串复原IP地址,从前序与中序编辑序列构造二叉树 三道算法题
|
算法 Apache 流计算
《Alink:基于Apache Flink的算法平台》电子版地址
Alink:基于Apache Flink的算法平台
134 0
《Alink:基于Apache Flink的算法平台》电子版地址
|
机器学习/深度学习 算法
《阿里千亿特征深度学习算法XNN实践》电子版地址
阿里千亿特征深度学习算法XNN实践
106 0
《阿里千亿特征深度学习算法XNN实践》电子版地址
|
算法