zoukankan      html  css  js  c++  java
  • 用子网掩码划分子网

    IP地址分为五类

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------


    一、子网掩码的含义和根据子网掩码划分子网

    子网掩码是用来划分子网的。

    例如,一个A类网络可以容纳16777214台主机。但是在实际运用中,不可能把一个A类网络只用于一个子网,因为那样管理起来很不方便,所以需要根据实际需求把它划分为若干个较小的子网。
    一个B类网络可以容纳65534台主机,往往也是需要划分子网的。即便一个小型企业内部,为了部门之间的职能的需要,配置那些电脑可以互相访问,哪些不能互相访问,就需要通过划分子网的方法来实现。


    只要把IP地址的位数、网络位数、主机位数、子网掩码的位数这几个概念搞清楚,就觉得很简单了。

    IP地址位数=网络位数+主机位数=32位。子网掩码的位数就是网络位数。

    A类网络的网络位数是8位,子网掩码就是11111111.00000000.00000000.00000000,换算成二进制表示为255.0.0.0。

    B类网络的网络位数是16位,子网掩码就是11111111.11111111.00000000.00000000,换算成十进制表示为255.255.0.0。

    C类网络的网络位数是24位,子网掩码就是11111111.11111111.11111111.00000000,换算成十进制表示为255.255.255.0。

    A类网络加长子网掩码到16位就把一个A类网络划分为256个B类网络同样大小的网络,再加长到24位就又把每个B类大小的子网划分为256个C类网络大小的子网。就是这个道理。一个大的网络,通过把子网掩码加长,使网络位多了,也就是网络数目多了,子网就多了。

    当然你也可以不划分为256个子网,而划分为128个,64个,32个,16个,8个,4个,2个。

    一个B类网络的默认子网掩码为255.255.0.0,你如果想把它划分为2个子网,网络位数就成立17位,也就是说子网掩码就变成了255.255.128.0;想划分为16个子网,因为16是2的4次方,所以网络位数加4变成了20位,也就是说子网掩码加长,成了20位,就是255.255.240.0。依此类推。

    一个C类网络的默认子网掩码为24位的,那么主机位=32-24=8位,2的8次方等于256,所以一个C类网络的IP地址数量(包括网络地址和广播地址)为256个。

    但是你仍然可以通过加长子网掩码的手段,把一个C类子网划分为更多的子网。划分的子网数必定是2的n次方个,每个子网的IP数量必定是2的(8- n)次方个。

    子网掩码加长1位,划分2个子网;加长2位,划分4个子网,加长6位,划分2的6次方个,也就是64个子网。

    子网掩码的1的个数表示网络位的个数。

    记住下面的公式,遇到再复杂的子网划分问题也难不倒你了。

    IP地址位数=32
    网络位+主机位=32
    子网掩码加长n位,则在当前子网基础上划分为2的n次方个子网。每个子网的IP地址数量=2^(32-划分前子网掩码位数-n)

    二、如何根据子网划分的目标计算子网掩码

    简单来说,子网掩码就是网络地址的位数。

    一个IP地址一共有32位,其中靠前的某些位表示网络地址,后面的某些位表示主机位。

    网络位数+主机位数=IP地址位数=32

    知道了这个道理,计算子网掩码的方法就是:已知子网内IP数的多少,求出主机位的位数,用32减去主机位数就等于网络位数,也就是子网掩码。

    举最简单的例子。一个C类网络,包括256个主机位置,256是2 的8次方,所以主机位是8,那么网络位就是32-8=24,也就是说子网掩码是24位,用二进制表示就是11111111.11111111.11111111.00000000,换算成十进制就是255.255.255.0

    再比如一个C类网络划分的子网,每个网络主机IP数是32, 而32是2的5次方,所以主机位是5,那么网络位就是32-5=27,也就是说子网掩码是27位,用二进制表示就是11111111.11111111.11111111.11100000,换算成十进制就是255.255.255.224

    再比如一个B类网络划分的子网,每个网络主机IP数是1024, 而1024是2的10次方,所以主机位是10,那么网络位就是32-10=22,也就是说子网掩码是22位,用二进制表示就是11111111.11111111.11111100.00000000,换算成十进制就是255.255.252.0

    子网划分是通过改变子网掩码的位数来实现的。比如一个C类IP地址,默认子网掩码是24位的,二进制表示是11111111.11111111.11111111.0000000,换算成10进制的就是255.255.255.0。

    如果是这样的子网掩码,后面的8位都可以用来做为主机的位置,2 的8次方等于256,一共有256个IP位置,因为有2个不能用,所以可用的主机位置为254个。

    但是你要把这样一个地址划分成2个子网,就要从主机位里拿出一位来作为网络地址,网络地址就成了25位了。相应地主机位就成了7位了,2 的7次方等于128,一共有126个地址可用。

    这是从正向来说的,就是已知要划分的子网数,求每个子网的主机数。但是在实际工作中往往是先知道每个子网的主机数,让你划分子网。其实也很简单。

    首先算一下主机数更接近于2 的几次方,那么主机位数就是几位。32减去主机位就是网络位。

    举例说明。假如给你一个C类IP地址192.168.0.0。假如你想划分2个子网,一个里面有100台电脑,另一个有50台电脑。

    100大于2的6次方,小于2的7次方,所以主机位数取7位。那么网络位数就是32-7=25位。25位的子网掩码11111111.11111111.11111111.10000000 换算成10进制的就是
    255. 255. 255. 128,这就是第一个子网的子网掩码,网络号为192.168.0.0/25,网络地址192.168.0.0,主机地址192.168.0.1~192.168.0.126,广播地址192.168.0.127

    50大于2的5次方,小于2的6次方,所以主机位数取6位。那么网络位数就是32-6=26位。26位的子网掩码11111111.11111111.11111111.11000000 换算成10进制的就是
    255. 255. 255. 192,这就是第二个子网的子网掩码,网络号为192.168.0.128/26,网络地址192.168.0.128,主机地址192.168.0.129~192.168.0.190,广播地址192.168.0.191

  • 相关阅读:
    std::function与std::bind 函数指针
    cocos2dx 3.0 +VS2013 环境搭建
    matrix(dp)
    sequence1(暴力)
    uva
    hpu第五届acm比赛
    找球号(一)(hask表)
    Elven Postman(二叉树)
    链表的基本操作
    Sightseeing Cows(最优比率环)
  • 原文地址:https://www.cnblogs.com/dll-ft/p/5878951.html
Copyright © 2011-2022 走看看