Internet
组织机构定义了五种IP地址,用于主机的有A、B、C三类地址。其中A类网络有126个,每一个A类网络可能有16,777,214台主机,它们处于同一广播域。而在同一广播域中有这么多结点是不可能的,网络会由于广播通讯而饱和,结果形成16,777,214个地址大部分没有分配出去,造成了浪费。而另外一方面,随着互连网应用的不断扩大,IP地址资源愈来愈少。为了实现更小的广播域并更好地利用主机地址中的每一位,能够把基于类的IP网络进一步分红更小的网络,每一个子网由路由器界定并分配一个新的子网网络地址,子网地址是借用基于类的网络地址的主机部分建立的。划分子网后,经过使用掩码,把子网隐藏起来,使得从外部看网络没有变化,这就是子网掩码。
1. 子网掩码
RFC 950
定义了子网掩码的使用,子网掩码是一个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位主机位,2^8即256个主机地址,默认子网掩码255.255.255.0。借用1位主机位,产生2^1个子网,每一个子网有2^7个主机地址;借用2位主机位,产生2^2个子网,每一个子网有2^6个主机地址……根据子网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,都意味着主机位是全0或全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,即2^4<20<2^5,因此,子网位只须占用5位主机位就可划分红32个子网,能够知足划分红20个子网的要求。B类网络的默认子网掩码是255.255.0.0,转换为二进制为11111111.11111111.00000000.00000000。如今子网又占用了5位主机位,根据子网掩码的定义,划分子网后的子网掩码应该为11111111.11111111.11111000.00000000,转换为十进制应该为255.255.248.0。如今咱们再来看一看每一个子网的主机数。子网中可用主机位还有11位,2^11=2048,去掉主机位全0和全1的状况,还有2046个主机ID能够分配,而子网能容纳200台主机就能知足需求,按照上述方式划分子网,每一个子网能容纳的子网数目远大于需求的主机数目,形成了IP地址资源的浪费。为了更有效地利用资源,咱们也能够根据子网所需主机数来划分子网。还以上例来讲,128<200<256,即2^7<200<2^8,也就是说,在B类网络的16位主机位中,保留8位主机位,其它的16-8=8位当成子网位,能够将B类网络138. 96.0.0划分红256(2^8)个能容纳256-1-1-1=253台(去掉全0全1状况和留给路由器的地址)主机的子网。此时的子网掩码为11111111.11111111.11111111.00000000,转换为十进制为255.255.255.0。
在上例中,咱们分别根据子网数和主机数划分了子网,获得了两种不一样的结果,都能知足要求,实际上,子网占用5~8位主机位时所获得的子网都能知足上述要求,那么,在实际工做中,应按照什么原则来决定占用几位主机位呢?在划分子网时,不只要考虑目前须要,还应了解未来须要多少子网和主机。对子网掩码使用比须要更多的主机位,能够获得更多的子网,节约了IP地址资源,若未来须要更多子网时,不用再从新分配IP地址,但每一个子网的主机数量有限;反之,子网掩码使用较少的主机位,每一个子网的主机数量容许有更大的增加,但可用子网数量有限。通常来讲,一个网络中的节点数太多,网络会由于广播通讯而饱和,因此,网络中的主机数量的增加是有限的,也就是说,在条件容许的状况下,会将更多的主机位用于子网位。综上所述,子网掩码的设置关系到子网的划分。子网掩码设置的不一样,所获得的子网不一样,每一个子网能容纳的主机数目不一样。若设置错误,可能致使数据传输错误。
⊙子网掩码的计算方法
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,这里确定 N8,这就是说主机地址将占据不止8位。 3)使用255.255.255.255来将该类IP地址的主机地址位数所有置1,而后从后向前的将N位所有置为 0,即为子网掩码值。 如欲将B(c)类IP地址168.195.0.0划分红若干子网,每一个子网内有主机700台(17): 1) 700=1010111100 2)该二进制为十位数,N = 10(1001) 3)将该B类地址的子网掩码255.255.0.0的主机地址所有置1,获得255.255.255.255,而后再从后向前将后10位置0,即为:11111111.11111111.11111100.00000000(10个0),即255.255.252.0。这就是该欲划分红主机为700台的B类IP地址 168.195.0.0的子网掩码。♂一个很容易算子网掩码的方法。(我的以为没什么用!!!仍是掌握上面的方法好!!!) 你们都应该知道2的0次方到10次方是多少把?也给你们说一下,分别是: 1 2 4 8 16 32 64 128 256 512 1024。若是你但愿每一个子网中只有5个ip地址能够给机器用,那么你就最少须要准备给每一个子网7个ip地址,由于须要加上两头的不可用的网络和广播ip,因此你须要选比7多的最近的那位,也就是8,就是说选每一个子网8个ip。好,到这一步,你就能够算掩码了,这个方法就是:最后一位掩码就是256减去你每一个子网所须要的ip地址的数量,那么这个例子就是256-8=248,那么算出这个,你就能够知道那些ip是不能用的了,看:0-7,8-15,16-23,24-31依此类推,写在上面的0、7、8、15、16、23、24、31(依此类推)都是不能用的,你应该用某两个数字之间的IP,那个就是一个子网可用的IP,怎么了?是否是不相信?太简单了。。。 我再试验一下,就拿200台机器分红4个子网来作例子吧。 200台机器,4个子网,那么就是每一个子网50台机器,设定为192.168.10.0,C类的IP,大子网掩码应为255.255.255.0,对巴,可是咱们要分子网,因此按照上面的,咱们用32个IP一个子网内不够,应该每一个子网用64个IP(其中62位可用,足够了吧),而后用个人办法:子网掩码应该是256-64=192,那么总的子网掩码应该为:255.255.255.192。不相信?算算:0-63,64-127,128-191,192-255,这样你就能够把四个区域分别设定到四个子网的机器上了,是否是很简单?不须要软件算了吧。。。呵呵。。但愿你们能看懂我写的。。。。 子网的再划分就是这样:好比一个c类地址192。168。1。0/24,这个子网中可用主机地址为255-2=253个,一个网络地址和一个广播地址不可分配给主机用,网络地址是1。0,广播地址是1。255。那么若是我有些机器,ip都是这个子网中的地址,那么他们互ping,能够通,不用通过路由,由于是一个子网内的通讯。若是个人规划是这样的:公司每一个部门占用一个子网,为了安全性考虑,部门之间不能通讯,那么若是一个部门只有2台机器,怎么办?一个c类子网有253个地址,就只让那两台机器给占用了吗?难道就这么浪费?私网地址也就罢了,随便用吧,反正用不完,若是这是公网地址呢?因此出现了子网划分,就是将一个子网,划分称更多的小子网,可是子网数目有规定,就是2的n次方,也就是一个子网能够分红2,4,8,16,32,64,128个子网,若是分红2个,那么原先的256个地址除2等于128,就是说每一个小子网有128个地址了,而掩码原来是24位的,如今分了一次,变成两个小子网,那么掩码就加1,变长了,变成25了,这就叫vlsm,若是又分了一次,就是说在原来的基础上分红4个子网(也能够把25位的小子网再分一次,就和细胞分裂同样的。),那么256除4就是64,也就是一个小子网有64个地址,掩码再次加1,变成26了,一样,再分,再加,每子网32个(掩码27),16个(28),8个(29),4个(30),2个(31),1个(32),31位的子网已经没有可用地址了,只有一个网络地址和一个广播地址了(每一个子网开头第一个地址为网络地址,最后一个为广播地址,这是规定),32位的就不叫网了,叫单主机了。若是不用24,25,26,等表示掩码,也能够用256-子网地址数的值来表示(见楼上)。这样,若是给一个有28台主机的部门分一个子网,那么用那个子网好呢?看看来,1,2,4,8,16,32。。。。。。。。28介于16和32之间因此只能分一个比32大的子网给他,为了节约地址,分一个32地址的,因此,掩码为256-32=224,若是用位数表示,好,256÷32=8,因此分了8个子网,也就是分了3次,因此24+3=27。地址范围:0-31,32-63,64-127,128-159,160-191,192-223,224-256,分哪个子网都行,可是掩码必定要带着,不然按照默认的abc类地址掩码算!就像切豆腐同样,一块大的,切成若干小的,小的还能够再分,不过必定要是2的n次方。 |