子网掩码快速计算方法 2009-04-25 20:18
在平常计算子网掩码的时候比较麻烦,因为要牵扯到二进制的变换,对于如何计算子网掩码和从子网掩码快速的看出相关信息。我个人得出一个小经验。 比如一个C网要分成两个网段,那么256/2=128.每个子网128个地址。用256减去每个子网的地址数,256-128=128,子网掩码就是255.255.255.128; 分成4个网段,256/4=64每个子网64个地址。用256减去每个子网的地址数,256-64=192,子网掩码就是255.255.255.192;
分成8个网段,256/8=32每个子网32个地址。用256减去每个子网的地址数,256-32=224,子网掩码就是255.255.255.224.
所以我们要求的那位数就是256减去每个子网的地址数。
当然,我们也可以从子网地址中看出,使用此掩码每个子网中的地址数目,划分了多少个子网。
在进行IP规划时,总是头疼子网和掩码的计算,其主要原因是对十进制和二进制的转换不熟练。现在给一窍门,可以解决这个问题。首先,我们看一个例子:
一个主机的IP地址是202.112.14.37,掩码是255.255.255.240,要求计算这个主机所在网络的网络地址和广播地址。
常规办法是把这两个都换算成二进制,然后相与,就可得到网络地址。其实大家只要仔细想想,可以得到一个方法:掩码为255.255.255.240那么可以知道这个掩码所容纳的IP地址有256-240=16个(包括网络地址和广播地址),那么具有这种掩码的网络地址一定是16的倍数。而网络地址是子网IP地址的开始,广播地址是结束,可使用的IP地址在这个范围内,因此比37刚刚小的,又是16的倍数的数只有32,所以得出网络地址为202.112.14.32。而广播地址就是下一个网络的网络地址减一。而下一个16的倍数是48,因此可以得到广播地址为202.112.14.47。
那么,如果给定一IP地址范围,根据每个网络的主机数量,要进行IP地址规划,可以按照同样原则进行计算。比如一个子网有10台主机,那么对于这个子网就需要10+1+1+1=13个IP地址。(注意加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。)13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255.255.255.240。如果一个子网有14台主机,不少同学常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14+1+1+1=17,大于16,所以我们只能分配具有32个地址(32等于2的5次方)空间的子网。这时子网掩码为:255.255.255.224。
最近在重看一些网络知识,看到了子网掩码部分,子网掩码在实际使用和考试中都是要遇到的,但是子网掩码的计算牵扯到二进制的转换,比较麻烦。这次在网络和论坛上看到了子网掩码的简易计算方法,就整理一下。子网掩码和VLSM(可变长掩码)的计算方法参见:子网掩码入门之简述
以C类网为例。
如果要划分出2个子网段,用256/2=128,得出每个子网中有128个IP地址,用256减去每个子网的地址数(256-128=128),子网掩码就是255.255.255.128。
划分成4个网段,256/4=64,每个子网64个地址,256-64=192,子网掩码就是255.255.255.192。
划分成8个网段,256/8=32,每个子网32个地址,256-32=224,子网掩码就是255.255.255.224。
即,子网掩码的最后一位数 就是用256减去每个子网的地址数而得出。
========================
实际应用中,如共有13台主机,在设置子网掩码时用255.255.255.0就浪费了,我们来设定VLSM。
13<2的4次方(16),即用16为计算基数,256-16=240(注意:不是用256-13),得子网掩码255.255.255.240
用256去减的那个子网的地址数,一定是2的N次方(N从0到10)。
如果主机数是13,加上两头的不可用的网络和广播IP地址数,一共是15,选取比15大,且最接近15的一个2的N次方值,即16。
如果主机是50,则52<2的6次方(64),256-64=192,子网掩码255.255.255.192
IP地址(IP Address)的概念及其子网掩码(Subnet Mask)的计算对于首次学习网络知识的初学者来说是一件比较困难的事情。下文所述的是我个人的一些心得,望大家指正。 按照目前使用的IPv4的规定,对IP地址强行定义了一些保留地址,即:“网络地址”和“广播地址”。所谓“网络地址”就是指“主机号”全为“0”的IP地址,如:125.0.0.0(A类地址);而“广播地址”就是指“主机号”全为“255”时的IP地址,如:125.255.255.255(A类地址)。 而子网掩码,则是用来标识两个IP地址是否同属于一个子网。它也是一组32位长的二进制数值,其每一位上的数值代表不同含义:为“1”则代表该位是网络位;若为“0”则代表该位是主机位。和IP地址一样,人们同样使用“点式十进制”来表示子网掩码,如:255.255.0.0。 如果两个IP地址分别与同一个子网掩码进行按位“与”计算后得到相同的结果,即表明这两个IP地址处于同一个子网中。也就是说,使用这两个IP地址的两台计算机就像同一单位中的不同部门,虽然它们的作用、功能、乃至地理位置都可能不尽相同,但是它们都处于同一个网络中。
子网掩码计算方法
自从各种类型的网络投入各种应用以来,网络就以不可思议的速度进行大规模的扩张,目前正在使用的IPv4也逐渐暴露出了它的弊端,即:网络号占位太多,而主机号位太少。目前最常用的一种解决办法是对一个较高类别的IP地址进行细划,划分成多个子网,然后再将不同的子网提供给不同规模大小的用户群使用。使用这种方法时,为了能有效地提高IP地址的利用率,主要是通过对IP地址中的“主机号”的高位部分取出作为子网号,从通常的“网络号”界限中扩展或压缩子网掩码,用来创建一定数目的某类IP地址的子网。当然,创建的子网数越多,在每个子网上的可用主机地址的数目也就会相应减少。 要计算某一个IP地址的子网掩码,可以分以下两种情况来分别考虑。 第一种情况:
无须划分成子网的IP地址。
一般来说,此时计算该IP地址的子网掩码非常地简单,可按照其定义就可写出。例如:某个IP地址为12.26.43.0,无须再分割子网,按照定义我们可以知道它是一个A类地址,其子网掩码应该是255.0.0.0;若此IP地址是一个B类地址,则其子网掩码应该为255.255.0.0;如果它是C类地址,则其子网掩码为255.255.255.0。其它类推。 第二种情况:
要划分成子网的IP地址。
在这种情况下,如何方便快捷地对于一个IP地址进行划分,准确地计算每个子网的掩码,方法的选择很重要。下面我介绍两种比较便捷的方法:
当然,在求子网掩码之前必须先清楚要划分的子网数目,以及每个子网内的所需主机数目。
方法一:利用子网数来计算。
1.首先,将子网数目从十进制数转化为二进制数; 2.接着,统计由“1”得到的二进制数的位数,设为N;
3.最后,先求出此IP地址对应的地址类别的子网掩码。再将求出的子网掩码的主机地址部分(也就是“主机号”)的前N位全部置1,这样即可得出该IP地址划分子网的子网掩码。 例如:需将B类IP地址167.194.0.0划分成28个子网: 1)(28)10=(11100)2;
2)此二进制的位数是5,则N=5;
3)此IP地址为B类地址,而B类地址的子网掩码是255.255.0.0,且B类地址的主机地址是后2位(即0-255.1-254)。于是将子网掩码255.255.0.0中的主机地址前5位全部置1,就可得到255.255.248.0,而这组数值就是划分成 28个子网的B类IP地址 167.194.0.0的子网掩码。
方法二:利用主机数来计算。
1.首先,将主机数目从十进制数转化为二进制数;
2.接着,如果主机数小于或等于254(注意:应去掉保留的两个IP地址),则统计由“1”中得到的二进制数的位数,设为N;如果主机数大于254,则 N>8,也就是说主机地址将超过8位;
3.最后,使用255.255.255.255将此类IP地址的主机地址位数全部置为1,然后按照“从后向前”的顺序将N位全部置为0,所得到的数值即为所求的子网掩码值。
例如:需将B类IP地址167.194.0.0划分成若干个子网,每个子网内有主机500台: 1)(500)10=(111110100)2; 2)此二进制的位数是9,则N=9;
3)将该B类地址的子网掩码255. 255.0.0的主机地址全部置 1,得到255.255.255.255。然后再从后向前将后9位置0,可得:11111111. 11111111.11111110.00000000即
255.255.254.0。这组数值就是划分成主机为500台的B类IP地址167.194.0.0的子网掩码。
相关推荐: