子网划分和子网掩码详解

来源:互联网 发布:c 开发彩票软件源码 编辑:程序博客网 时间:2024/05/05 01:32

一、为什么要划分子网 
在20世纪70年代初期,建立Internet的工程师们并未意识到计算机和通信在未来的迅猛发展。局域网和个人电脑的发明对未来的网络产生了巨大的冲击。开发者们依据他们当时的环境,并根据那时对网络的理解建立了逻辑地址分配策略。他们知道要有一个逻辑地址管理策略,并认为32位的地址已足够使用。为了给不同规模的网络提供必要的灵活性,IP地址的设计者将IP地址空间划分为五个不同的地址类别,如下表所示,其中A,B,C三类最为常用。 
从当时的情况来看,32位的地址空间确实足够大,能够提供232(4,294,967,296,约为43亿)个独立的地址。这样的地址空间在因特网早期看来几乎是无限的,于是便将IP地址根据申请而按类别分配给某个组织或公司,而很少考虑是否真的需要这么多个地址空间,没有考虑到IPv4地址空间最终会被用尽。但是在实际网络规划中,它们并不利于有效地分配有限的地址空间。对于A、B类地址,很少有这么大规模的公司能够使用,而C类地址所容纳的主机数又相对太少。所以有类别的IP地址并不利于有效地分配有限的地址空间网络规划。 
二、如何划分子网 
为了提高IP地址的使用效率,引入了子网的概念。将一个网络划分为子网:采用借位的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得IP地址的结构分为三级地址结构:网络位、子网位和主机位。这种层次结构便于IP地址分配和管理。它的使用关键在于选择合适的层次结构--如何既能适应各种现实的物理网络规模,又能充分地利用IP地址空间(即:从何处分隔子网号和主机号)。 
三、子网掩码的作用 
简单地来说,掩码用于说明子网域在一个IP地址中的位置。子网掩码主要用于说明如何进行子网的划分。掩码是由32位组成的,很像IP地址。对于三类IP地址来说,有一些自然的或缺省的固定掩码。(参考P189) 
四、如何来确定子网地址 
如果此时有一个I P地址和子网掩码,就能够确定设备所在的子网。子网掩码和IP地址一样长,用32bit 组成,其中的1表示在IP地址中对应的网络号和子网号对应比特,0表示在IP地址中的主机号对应的比特。将子网掩码与IP地址逐位相“与”,得全0部分为主机号,前面非0部分为网络号。参考(P190表7-5) 
要划分子网就需要计算子网掩码和分配相应的主机块,尽管采用二进制计算可以得出结论,但采用十进制计算方法看起来要比二进制方法简单许多,经过一番观察和总结,我终于得出了子网掩码及主机块的十进制算法。 
首先要明确一些概念: 
类范围: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、因为子网块(Subnet_block)的首、尾两块不能使用,所以可分配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--211.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个子网。 
总之,只要理解了公式中的逻辑关系,就能很快计算出子网掩码,从而得出可分配的主机段,参加MCSE和CCNA考试的时候使用这种方法可以顺利地通过相关试题的考试,而不用象记9×9乘法口诀表一样去背什么二进制掩码表了。 
实验目的  
1.掌握子网划分的方法和子网掩码的设置 
2.理解IP协议与MAC地址的关系 
3.熟悉ARP命令的使用:arp [–d], [-a] 
实验步骤: 
实验1: 
1) 两人一组,设置两台主机的IP地址与子网掩码: 
A: 10.2.2.2    255.255.254.0 
B: 10.2.3.3    255.255.254.0 
2)两台主机均不设置缺省网关。 
3)用arp -d命令清除两台主机上的ARP表,然后在A与B上分别用ping命令与对方通信,观察并记录结果,并分析原因。 
4)在两台PC上分别执行arp -a命令,观察并记录结果,并分析原因。 
提示:由于主机将各自通信目标的IP地址与自己的子网掩码相"与"后,发现目标主机与自己均位于同一网段(10.2.2.0),因此通过ARP协议获得对方的MAC地址,从而实现在同一网段内网络设备间的双向通信。 
实验2. 
1)将A的子网掩码改为:255.255.255.0,其他设置保持不变。 
2)在两台PC上分别执行arp -d命令清除两台主机上的ARP表。然后在A上"ping"B,观察并记录结果。 
3)在两台PC上分别执行 arp -a命令,观察并记录结果,并分析原因。 
提示:A将目标设备的IP地址(10.2.3.3)和自己的子网掩码(255.255.255.0)相"与"得10.2.3.0,和自己不在同一网段(A所在网段为:10.2.2.0),则A必须将该IP分组首先发向缺省网关。 
实验3 
1)按照实验2 的配置,接着在B上"ping"A,观察并记录结果,并分析原因。 
2)在B 上执行arp -a命令,观察并记录结果,并分析原因。 
提示:B将目标设备的IP地址(10.2.2.2)和自己的子网掩码(255.255.254.0)相"与",发现目标主机与自己均位于同一网段(10.2.2.0),因此,B通过ARP协议获得A的MAC地址,并可以正确地向A发送Echo Request报文。但由于A不能向B正确地发回Echo Reply报文,故B上显示ping的结果为"请求超时"。 
在该实验操作中,通过观察A与B的ARP表的变化,可以验证:在一次ARP的请求与响应过程中,通信双方就可以获知对方的MAC地址与IP地址的对应关系,并保存在各自的ARP表中。 
实验报告 
1.分别叙述各实验的记录结果并分析其原因。 
2.请参考(p190表7-5)画出C类地址的子网划分选择表。 
3.在B类网络中,能使用掩码255.255.255.139吗?为什么? 
4.说出地址和子网掩码的不同? 
举例说明该算法。 
例:给定一 class c address : 192.168.5.0 ,要求划分20个子网,每个子网5 
个主机。 
解:因为4 <5 < 8 ,用256-8=248 ――>即是所求的子网掩码,对应的子网数 
也就出来了。这是针对C类地址。老师也只讲了针对C类地址的做法。下面是我自 
己推出来的针对B类地址的做法。 
对于B类地址,假如主机数小于或等于254,与C类地址算法相同。 
对于主机数大于254的,如需主机 700台,50个子网(相当大了), 
 512 < 700< 1024  
256-(1024/256)=256-4=252 ――>即是所求的子网掩码,对应的子网数也就 
出来了。 
上面256-4中的4(2的2次幂)是指主机数用2进制表示时超过8位的位数,即超过 
2位,掩码为剩余的前6位,即子网数为2(6)-2=62个。

 

原创粉丝点击