开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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 ,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
子网地址与子网掩码
子网地址与子网掩码概述
73 0
啥叫IP地址及子网掩码 ???
1、IP地址的定义及分类 1.1IP地址的定义 1.2IP地址的分类 2、子网掩码
55 0
SAP UI5 walkthrough第一第二部分解析:data-sap-ui-libs=“sap.ui.commons,sap.ui.table“
SAP UI5 walkthrough第一第二部分解析:data-sap-ui-libs=“sap.ui.commons,sap.ui.table“
26 0
SAP WebClient UI源代码搜索工具
SAP WebClient UI源代码搜索工具
111 0
自动获取计算机名、用户名、IP地址、子网掩码和默认网关
本单位有很多计算机设备(成千上万),现需要统计计算机名、用户名、MAC地址、IP地址、默认网关、子网掩码信息,咋办捏。
139 0
子网掩码
网络标识(即A类地址的前八位、B类地址的前16位、C类地址的前24位)相同的计算机比属于同一个链路。 为了减少主机号的浪费,设计出子网掩码。
929 0
CCAH-CCA-500-1题:What is the maximum amount of virtual memory allocated......
1. What is the maximum amount of virtual memory allocated for each map task before YARN will kill its Container? Your cluster’s mapred-start.
729 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
子网路由介绍
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载