zoukankan      html  css  js  c++  java
  • 子网划分与CIDR(斜杠加数字的表示与IP 的关系)(改进)

    子网和CIDR

     
    将常规的子网掩码转换为二进制,将发现子网掩格式为连续的二进制1跟连续0,其中子网掩码中为1的部份表示网络ID,子网掩中为0的表示主机ID。比如255.255.0.0转换为二进制为11111111 11111111 00000000 00000000。
     
    在前面所举的例子中为什么不用连续的1部份表示网络ID,连续的0部份表示主机ID呢?答案是肯定的,采用这种方案的IP寻址技术称之为无类域间路 由(CIDR)。CIDR技术用子网掩码中连续的1部份表示网络ID,连续的0部份表示主机ID。比如,网络中包含2000台计算机,只需要用11位表示 主机ID,用21位表网络ID,则子网掩码表示为11111111.11111111.11100000.00000000,转换为十进制则为 255.255.224.0。此时,该网络将包含2046台计算机,既不会造成IP地址的浪费,也不会利用路由器连接网络,增加额外的管理维护量。
     
    CIDR表示方法:IP地址/网络ID的位数,比如192.168.23.35/21,其中用21位表示网络ID。
     
    例1:192.168.23.35/21
     
            子网掩码:11111111 11111111 11111000 00000000则为255.255.248.0
     
       网络ID:192.168.00010111.0(其中第三个字节红色部分表示网络ID,其他表示主机ID,网络ID是表示网络ID部份保持不变主机ID全部变为0)则网络ID为192.168.16.0
     
    起始IP地址:192.168.16.1(主机ID不能全为0,全为0表示网络ID最后一位为1)
     
    结束IP地址:192.168.00010111.11111110(主机ID不能全为1,全为1表示本地广播)则结束IP地址为:192.168.23.254。
     
    例2:将163.135.0.0划分为16个子网,计算前两个子网的网络ID、子网掩码、起止IP地址。
     
    第1步:用CIDR表示163.135.0.0/20,则子网掩码为255.255.240(11110000).0。
     
    第2步:第一网络ID(子网掩码与IP地址与运算):163.135.0.0
     
        第一个IP地址:163.135.0.1 结束IP地址:163.135.15.254;
     
    第3步:第二网络ID:163.135.16.0
     
                第一个IP地址:163.135.16.1 结束IP地址:163.135.31.254。 
     
    五、子网掩码和网络ID的快速计算方法
     
    CIDR的子网掩码都是连续的1跟连接的0表示,则子网掩码有以下几种表示方法:
     
    0000 0000   0
     
    1000 0000   128
     
    1100 0000   128+64=192
     
    1110 0000   128+64+32=224
     
    1111 0000   255-15=240
     
    1111 1000   255-7=248
     
    1111 1100   255-3=252
     
    1111 1110   255-1=254
     
    1111 1111   255
     
    大家都知道11111111的十进制数为255,那么我们怎么来快速计算子网掩码呢?二进制的1=1,11=3,111=7,1111=15;那么 1111 1110=255-1,1111 1100=255-3,1111 1000=255-8,1111 0000=255-15这样是不是就很快呢?只要我们一旦确定子网掩码中有多少位表示网络ID,那么我们马上就可以写出子网掩码了。那么,对于1000 0000,1100 0000和1110 0000 我们又该怎么计算呢?27=8则1000 0000=128,1100 0000=128+64,1110 0000=128+64+32,所以我们不需要去记住每一个为多少,只需要做做简单的加减法就搞定子网掩码的计算。
     
    网络ID的结果大家都知道网络ID部份不变,主机ID部分全部变为0,那么在计算网络ID时,首先看子网掩码中有多少位用来表示网络,相应在将IP 地址转换为二进制时就只转换前面几位,比如192.168.176.15/19,网络ID一共19位,则网络ID前两个字节为192.168.X.0发生 变化的为第三个字节。那么怎样快速计算出这个变化的X的值呢?我们知道第三字节只有三位表示网络ID,转换时176>128,第1位为 1,176-128=48<64,第2位为0,48>32第3位为1,剩下的计算就没有意义了,全都要转换为0,则网络ID为10100000,则网络 ID为192.168.160.0,这样计算反而出错的可能性很小。
     
    eg.
    200.100.48.0--200.100.55.0
    超网IP为  200.100.48.0/21
    48=0011 0 000
    49=0011 0 001
    ...       ...
     
    55=0011 0 111
     
    除了标红的IP 二进制位  其他作为子网的时候都是1  那么就有21个
     
     
     
    主题转自(http://www.2cto.com/net/201303/192100.html)
     
  • 相关阅读:
    判断是否是移动端
    html上传文件类型限制accept的全部属性值
    前端cropper裁剪图像大小(原创)
    eslint加不加分号
    手机浏览器使用rem 自适应html宽度大小
    DOMContentLoaded与load的区别
    ES6语法find查找匹配数组
    React的JSX语法
    React的基本使用
    React简介
  • 原文地址:https://www.cnblogs.com/yyx001000000001010101100101/p/4607297.html
Copyright © 2011-2022 走看看