zoukankan      html  css  js  c++  java
  • 子网掩码与子网个数、主机地址个数的关系

    IP地址:

      IP地址由网络号(Network ID)和主机号(Host ID)两部分组成。网络号标识的是Internet上的一个子网,而主机号标识的是子网中的某台主机。IP地址根据网络号和主机号的数量而分为A、B、C三类。

      A类IP地址:用可变的7位(bit)来标识网络号,可变的24位标识主机号,最前面一位为“0”,即A类地址的第一段取值介于1~126之间。A类地址通常为大型网络而提供,全世界总共只有126个A类网络,每个A类网络最多可以连接16777214台主机。

      B类IP地址:用可变的14位来标识网络号,可变的16位标识主机号,前面两位是“10”。B类地址的第一段取值介于128~191之间(网络号不能以数字127开头,数字127是专门保留给诊断用的,如127.0.0.1是会送地址,用于回路测试),第一段和第二段合在一起表示网络号。B类地址适用于中等规模的网络,全世界大约有16000个B类网络,每个B类网络最多可以连接65534台主机。

      C类IP地址:用可变的21位来标识网络号,可变的8位标识主机号,前面三位是“110”。C类地址的第一段取值介于192~223之间,第一段、第二段、第三段合在一起表示网络号。最后一段标识网络上的主机号。C类地址适用于校园网等小型网络,每个C类网络最多可以有254台主机。

    子网掩码:

      子网掩码是屏蔽一个IP地址的网络部分的“全1”比特模式。它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

      对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。利用子网掩码可以把大的网络划分成子网即VLSM(可变长子网掩码),也可以把小得网络归并成大的网络即超网。

      通过IP地址的二进制与子网掩码的二进制进行与运算,可以确定某个设备的网络地址和主机号,也就是说可以通过子网掩码分辨一个网络的网络部分和主机部分。子网一个最显著的特征就是具有子网掩码。划分子网时需要注意:主机ID为全0时表示网络ID,全1时表示广播地址。

    通过子网个数或主机地址个数计算子网掩码:

      用一个简单的例子说明如下:

      假设有一个网络:192.168.0.0/24(即子网掩码的前24位为1,255.255.255.0),现在需要两个子网,那么需要将子网掩码中的主机部分的前2位置为1(虽然只将第1位置1即可获得2个子网,但是还要考虑去掉全0和全1的子网),即192.168.0.0/26,可得到两个可以使用的子网192.168.0.64(二进制表示后8位为01000000)和192.168.0.128(二进制的后8位表示为10000000)。

      对于192.168.0.0/24,网络地址是192.168.0.0,广播地址是192.168.0.255(后8位为11111111)。
      对于192.168.0.0/26,网络地址是192.168.0.0,广播地址是192.168.0.63(后8位为00111111)。
      对于192.168.0.64/26,网络地址是192.168.0.64,广播地址是192.168.0.127(后8位为01111111)。
      对于192.168.0.128/26,网络地址是192.168.0.128,广播地址是192.168.0.191(后8位为10111111)。 
      对于192.168.0.192/26,网络地址是192.168.0.192,广播地址是192.168.0.255(后8为为11111111)。

      1、根据子网数计算子网掩码的位数:

      (1)将子网数目-1(因为计算机从0开始,到26才是27个)转化为二进制来表示。

      (2)取得该二进制的位数,为N。

      (3)取得该IP地址的类子网掩码,将其主机地址部分的前N位置1即得出该IP地址划分子网的子网掩码。

      例如:欲将B类IP地址168.195.0.0划分为27个子网,计算其子网掩码:

      (1)27-1=26,转化为二进制为11010。

      (2)N=5。

      (3)B类地址的子网掩码255.255.0.0,将其主机地址前5位置1,即11111111.11111111.11111000.00000000=255.255.248.0。  

      实际上将主机地址前5位置1,可划分出25-2=30个子网,这里去掉了全0和全1的子网。

      2、根据主机数计算子网掩码的位数:

      (1)将主机数目转化为二进制来表示。

      (2)如果主机数小于或等于254(注意去掉保留的两个IP地址:主机号全为0表示该网络的网络号,主机号全为1表示该网络的广播地址),则取得该主机的二进制位数,为N,这里肯定N<8。如果大于254,则N>8,这就是说主机地址将占据不止8位。

      (3)使用255.255.255.255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置0,即为子网掩码值。

      例如:欲将B类地址168.195.0.0划分成若干个子网,每个子网内有主机700台,计算其子网掩码:

      (1)700转化为二进制为1010111100。

      (2)N=10。

      (3)子网掩码为11111111.11111111.11111100.00000000,即255.255.252.0。

    通过子网掩码计算子网个数及每个子网中可使用的主机地址个数:

      若要把***.***.***.0/m划分为***.***.***.0/n(m<n<32),得到的子网个数为2(n-m),去掉全0和全1,可用子网个数为2(n-m)-2,每个子网中可使用的主机地址是2(32-n)-2。

      例如:把网络117.15.32.0/23划分为117.15.32.0/27,得到的子网是 16 个,可用子网个数为14个,每个子网中可使用的主机地址是 30 个。

  • 相关阅读:
    【Lintcode】112.Remove Duplicates from Sorted List
    【Lintcode】087.Remove Node in Binary Search Tree
    【Lintcode】011.Search Range in Binary Search Tree
    【Lintcode】095.Validate Binary Search Tree
    【Lintcode】069.Binary Tree Level Order Traversal
    【Lintcode】088.Lowest Common Ancestor
    【Lintcode】094.Binary Tree Maximum Path Sum
    【算法总结】二叉树
    库(静态库和动态库)
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/hibernation/p/3275279.html
Copyright © 2011-2022 走看看