子网算法.docx
- 文档编号:10906183
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:14
- 大小:23.09KB
子网算法.docx
《子网算法.docx》由会员分享,可在线阅读,更多相关《子网算法.docx(14页珍藏版)》请在冰豆网上搜索。
子网算法
IP地址是32位的二进制数值,用于在TCP/IP通讯协议中标记每台计算机的地址。
通常我们使用点式十进制来表示,如192.168.0.5等等。
每个IP地址又可分为两部分。
即网络号部分和主机号部分:
网络号表示其所属的网络段编号,主机号则表示该网段中该主机的地址编号。
按照网络规模的大小,IP地址可以分为A、B、C、D、E五类,其中A、B、C类是三种主要的类型地址,D类专供多目传送用的多目地址,E类用于扩展备用地址。
A、B、C三类IP地址有效范围如下表:
类别网络号/占位数主机号/占位数用途
A1~126/80~2550~2551~254/24国家级
B128~1910~255/160~2551~254/16跨过组织
C192~2230~2550~255/241~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/22255.192.0.02/4194302
3/21255.224.0.06/2097150
4/20255.240.0.014/1048574
5/19255.248.0.030/524286
6/18255.252.0.062/262142
7/17255.254.0.0126/131070
8/16255.255.0.0254/65536
9/15255.255.128.0510/32766
10/14255.255.192.01022/16382
11/13255.255.224.02046/8190
12/12255.255.240.04094/4094
13/11255.255.248.08190/2046
14/10255.255.252.016382/1022
15/9255.255.254.032766/510
16/8255.255.255.065536/254
17/7255.255.255.128131070/126
18/6255.255.255.192262142/62
19/5255.255.255.224524286/30
20/4255.255.255.2401048574/14
21/3255.255.255.2482097150/6
22/2255.255.255.2524194302/2
B类IP地址:
子网位/主机位子网掩码子网最大数/主机最大数
2/14255.255.192.02/16382
3/13255.255.224.06/8190
4/12255.255.240.014/4094
5/11255.255.248.030/2046
6/10255.255.252.062/1022
7/9255.255.254.0126/510
8/8255.255.255.0254/254
9/7255.255.255.128510/126
10/6255.255.255.1921022/62
11/5255.255.255.2242046/30
12/4255.255.255.2404094/14
13/3255.255.255.2488190/6
14/2255.255.255.25216382/2
C类IP地址:
子网位/主机位子网掩码子网最大数/主机最大数
2/6255.255.255.1922/62
3/5255.255.255.2246/30
4/4255.255.255.24014/14
5/3255.255.255.24830/6
6/2255.255.255.25262/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个子网络00000000thru11111.0thru.31
第2个子网络00100000thru11111.32thru.63
第3个子网络01000000thru11111.64thru.95
第4个子网络01100000thru11111.96thru.127
第5个子网络10000000thru11111.128thru.159
第6个子网络10100000thru11111.160thru.191
第7个子网络11000000thru11111.192thru.223
第8个子网络11100000thru11111.124thru.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个地址(
子网划分
Internet组织机构定义了五种IP地址,用于主机的有A、B、C三类地址。
其中A类网络有126个,每个A类网络可能有16,777,214台主机,它们处于同一广播域。
而在同一广播域中有这么多结点是不可能的,网络会因为广播通信而饱和,结果造成16,777,214个地址大部分没有分配出去,形成了浪费。
而另一方面,随着互连网应用的不断扩大,IP地址资源越来越少。
为了实现更小的广播域并更好地利用主机地址中的每一位,可以把基于类的IP网络进一步分成更小的网络,每个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分创建的。
划分子网后,通过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
1.子网掩码
RFC950定义了子网掩码的使用,子网掩码是一个32位的2进制数,其对应网络地址的所有位都置为1,对应于主机地址的所有位都置为0。
由此可知,A类网络的缺省的子网掩码是255.0.0.0,B类网络的缺省的子网掩码是255.255.0.0,C类网络的缺省的子网掩码是255.255.255.0。
将子网掩码和IP地址按位进行逻辑“与”运算,得到IP地址的网络地址,剩下的部分就是主机地址,从而区分出任意IP地址中的网络地址和主机地址。
子网掩码常用点分十进制表示,我们还可以用网络前缀法表示子网掩码,即“/<网络地址位数>”。
如138.96.0.0/16表示B类网络138.96.0.0的子网掩码为255.255.0.0。
子网掩码告知路由器,地址的哪一部分是网络地址,哪一部分是主机地址,使路由器正确判断任意IP地址是否是本网段的,从而正确地进行路由。
例如,有两台主机,主机一的IP地址为222.21.160.6,子网掩码为255.255.255.192,主机二的IP地址为222.21.160.73,子网掩码为255.255.255.192。
现在主机一要给主机二发送数据,先要判断两个主机是否在同一网段。
主机一
222.21.160.6即:
11011110.00010101.10100000.00000110
255.255.255.192即:
11111111.11111111.11111111.11000000
按位逻辑与运算结果为:
11011110.00010101.10100000.00000000
主机二
222.21.160.73即:
11011110.00010101.10100000.01001001
255.255.255.192即:
11111111.11111111.11111111.11000000
按位逻辑与运算结果为:
11011110.00010101.10100000.01000000
两个结果不同,也就是说,两台主机不在同一网络,数据需先发送给默认网关,然后再发送给主机二所在网络。
那么,假如主机二的子网掩码误设为255.255.255.128,会发生什么情况呢?
让我们将主机二的IP地址与错误的子网掩码相“与”:
222.21.160.73即:
11011110.00010101.10100000.01001001
255.255.255.128即:
11111111.11111111.11111111.10000000
结果为11011110.00010101.10100000.00000000
这个结果与主机的网络地址相同,主机与主机二将被认为处于同一网络中,数据不再发送给默认网关,而是直接在本网内传送。
由于两台主机实际并不在同一网络中,数据包将在本子网内循环,直到超时并抛弃。
数据不能正确到达目的机,导致网络传输错误。
反过来,如果两台主机的子网掩码原来都是255.255.255.128,误将主机二的设为255.255.255.192,主机一向主机二发送数据时,由于IP地址与错误的子网掩码相与,误认两台主机处于不同网络,则会将本来属于同一子网内的机器之间的通信当作是跨网传输,数据包都交给缺省网关处理,这样势必增加缺省网关的负担,造成网络效率下降。
所以,子网掩码不能任意设置,子网掩码的设置关系到子网的划分。
2.子网划分与掩码的设置
子网划分是通过借用IP地址的若干位主机位来充当子网地址从而将原网络划分为若干子网而实现的。
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,而每个子网中的可用主机数逐渐减少。
以C类网络为例,原有8位主机位,28即256个主机地址,默认子网掩码255.255.255.0。
借用1位主机位,产生21个子网,每个子网有27个主机地址;借用2位主机位,产生22个子网,每个子网有26个主机地址……根据子网ID借用的主机位数,我们可以计算出划分的子网数、掩码、每个子网主机数,列表如下:
划分子网数
子网位数
子网掩码(二进制)
子网掩码(十进制)
每个子网主机数
1~2
1
11111111.11111111.11111111.10000000
255.255.255.128
128
3~4
2
11111111.11111111.11111111.11000000
255.255.255.192
64
5~8
3
11111111.11111111.11111111.11100000
255.255.255.224
32
9~16
4
11111111.11111111.11111111.11110000
255.255.255.240
16
17~32
5
11111111.11111111.11111111.11111000
255.255.255.248
8
33~64
6
11111111.11111111.11111111.11111100
255.255.255.252
4
如上表所示的C类网络中,若子网占用7位主机位时,主机位只剩一位,无论设为0还是1,都意味着主机位是全1或全1。
由于主机位全0表示本网络,全1留作广播地址,这时子网实际没有可用主机地址,所以主机位至少应保留2位。
从上表可总结出子网划分的步骤或者说子网掩码的计算步骤:
2.1确定要划分的子网数目以及每个子网的主机数目。
2.2求出子网数目对应二进制数的位数N及主机数目对应二进制数的位数M。
2.3对该IP地址的原子网掩码,将其主机地址部分的前N位置1或后M位置0即得出该IP地址划分子网后的子网掩码。
例如,对B类网络135.41.0.0/16需要划分为20个能容纳200台主机的网络。
因为16<20<32,即24<20<25,所以,子网位只须占用5位主机位就可划分成32个子网,可以满足划分成20个子网的要求。
B类网络的默认子网掩码是255.255.0.0,转换为二进制为11111111.11111111.00000000.00000000。
现在子网又占用了5位主机位,根据子网掩码的定义,划分子网后的子网掩码应该为11111111.11111111.11111000.00000000,转换为十进制应该为255.255.248.0。
现在我们再来看一看每个子网的主机数。
子网中可用主机位还有11位,211=2048,去掉主机位全0和全1的情况,还有2046个主机ID可以分配,而子网能容纳200台主机就能满足需求,按照上述方式划分子网,每个子网能容纳的子网数目远大于需求的主机数目,造成了IP地址资源的浪费。
为了更有效地利用资源,我们也可以根据子网所需主机数来划分子网。
还以上例来说,128<200<256,即27<200<28,也就是说,在B类网络的16位主机位中,保留8位主机位,其它的16-8=8位当成子网位,可以将B类网络138.96.0.0划分成256(28)个能容纳256-1-1-1=253台(去掉全0全1情况和留给路由器的地址)主机的子网。
此时的子网掩码为11111111.11111111.11111111.00000000,转换为十进制为255.255.255.0。
在上例中,我们分别根据子网数和主机数划分了子网,得到了两种不同的结果,都能满足要求,实际上,子网占用5~8位主机位时所得到的子网都能满足上述要求,那么,在实际工作中,应按照什么原则来决定占用几位主机位呢?
在划分子网时,不仅要考虑目前需要,还应了解将来需要多少子网和主机。
对子网掩码使用比需要更多的主机位,可以得到更多的子网,节约了IP地址资源,若将来需要更多子网时,不用再重新分配IP地址,但每个子网的主机数量有限;反之,子网掩码使用较少的主机位,每个子网的主机数量允许有更大的增长,但可用子网数量有限。
一般来说,一个网络中的节点数太多,网络会因为广播通信而饱和,所以,网络中的主机数量的增长是有限的,也就是说,在条件允许的情况下,会将更多的主机位用于子网位。
综上所述,子网掩码的设置关系到子网的划分。
子网掩码设置的不同,所得到的子网不同,每个子网能容纳的主机数目不同。
若设置错误,可能导致数据传输错误。
补充:
子网划分(subnetting)的优点:
1.减少网络流量
2.提高网络性能
3.简化管理
4.易于扩大地理范围
HowtoCreatSubnets
如何划分子网?
首先要熟记2的幂:
2的0次方到9次方的值分别为:
1,2,4,8,16,32,64,128,256和512.还有要明白的是:
子网划分是借助于取走主机位,把这个取走的部分作为子网位.因此这个意味划分越多的子网,主机将越少
SubnetMasks
子网掩码用于辨别IP地址中哪部分为网络地址,哪部分为主机地址,有1和0组成,长32位,全为1的位代表网络号.不是所有的网络都需要子网,因此就引入1个概念:
默认子网掩码(defaultsubnetmask).A类IP地址的默认子网掩码为255.0.0.0;B类的为255.255.0.0;C类的为255.255.255.0
ClasslessInter-DomainRouting(CIDR)
CIDR叫做无类域间路由,ISP常用这样的方法给客户分配地址,ISP提供给客户1个块(blocksize),类似这样:
192.168.10.32/28,这排数字告诉你你的子网掩码是多少,/28代表多少位为1,最大/32.但是你必须知道的1点是:
不管是A类还是B类还是其他类地址,最大可用的只能为30/,即保留2位给主机位
CIDR值:
1.掩码255.0.0.0:
/8(A类地址默认掩码)
2.掩码255.128.0.0:
/9
3.掩码255.192.0.0:
/10
4.掩码255.224.0.0:
/11
5.掩码255.240.0.0:
/12
6.掩码255.248.0.0:
/13
7.掩码255.252.0.0:
/14
8.掩码255.254.0.0:
/15
9.掩码255.255.0.0:
/16(B类地址默认掩码)
10.掩码255.255.128.0:
/17
11.掩码255.255.192.0:
/18
12.掩码255.255.224.0:
/19
13.掩码255.255.240.0:
/20
14.掩码255.255.248.0:
/21
15.掩码255.255.252.0:
/22
16.掩码255.255.254.0:
/23
17.掩码255.255.255.0:
/24(C类地址默认掩码)
18.掩码255.255.255.128:
/25
19.掩码255.255.255.192:
/26
20.掩码255.255.255.224:
/27
21.掩码255.255.255.240:
/28
22.掩码255.255.255.248:
/29
23.掩码255.255.255.252:
/30
SubnettingClassA,B&CAddress
划分子网的几个捷径:
1.你所选择的子网掩码将会产生多少个子网?
:
2的x次方-2(x代表掩码位,即2进制为1的部分)
2.每个子网能有多少主机?
:
2的y次方-2(y代表主机位,即2进制为0的部分)
3.有效子网是?
:
有效子网号=256-10进制的子网掩码(结果叫做blocksize或basenumber)
4.每个子网的广播地址是?
:
广播地址=下个子网号-1
5.每个子网的有效主机分别是?
:
忽略子网内全为0和全为1的地址剩下的就是有效主机地址.最后有效1个主机地址=下个子网号-2(即广播地址-1)
根据上述捷径划分子网的具体实例:
C类地址例子:
网络地址192.168.10.0;子网掩码255.255.255.192(/26)
1.子网数=2*2-2=2
2.主机数=2的6次方-2=62
3.有效子网?
:
blocksize=25
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 子网 算法
![提示](https://static.bdocx.com/images/bang_tan.gif)