zoukankan      html  css  js  c++  java
  • 【网络】IP子网划分详解

    1、IP地址组成

     

                                 IP地址组成示意图

    IP地址由32位二进制组成,32位二进制分成了4字节,每字节8位,字节之间用符.(点)分隔,为了方便人们记忆,经常需要转换成十进制数字显示,每字节最大为255(十进制)即二进制表示为11111111(8个1)。

    如255.255.255.128转换成二进制结果如下(具体转换方法后面介绍,也可以用在线转换工具转换http://www.023wg.com/jinzhi/),

    11111111.11111111.11111111.10000000

    那么255对应11111111是怎么来的呢,方法就是255除以2取余数(余数只有1或0两种,小学我们就学过除法哦)直到除尽为止,取余数时最后一个剩余数放左边,余数从后往前依次排列。

    如255/2=127余1

    127/2=63余1

    63/2=31余1

    31/2=15余1

    15/2=7余1

    7/2=3余1

    3/2=1余1

    还剩1

    依次最后一个剩余数放左边到→排列为11111111。

    再举例128的二进制10000000如何得来的,按照前面的算法规则,

    128/2=64余0

    64/2=32余0

    32/2=16余0

    16/2=8余0

    8/2=4余0

    4/2=2余0

    2/2=1余0

    还剩1

    依次最后一个余数放左边得出10000000,这里有个注意点不知大家发现没有,十进制转二进制时最后都是剩余数1哦。

    提问,请大家算出64的二进制是多少?看到这里大家知道为什么每字节最大为255了吗?答案可进认证网络工程师QQ群474079428获取。

    那么二进制转成十进制如何计算呢?我们后面再介绍。

    2、默认子网掩码

    A类网络的默认子网掩码为255.0.0.0,B类网络的默认子网掩码为255.255.0.0,C类网络的默认子网掩码为255.255.255.0,至于为什么是这样,答案可以说是RFC规定的,也可以是…..哦,解释起来好像有点长,大家可以进群聊聊或搞懂本文的主题后再去了解也行,暂时记住这三类就行了。

    3、理解2的幂

    2的幂也称为2的指数,还称为2的次方,如2的2次方、2的3次方等等,大家记住下面的2的幂的结果,不需要死记硬背,有记忆技巧,后面介绍。

    1=2

    22=4

    23=8

    24=16

    25=32

    26=64

    27=128

    28=256

    记忆技巧,不知大家发现没,由于是2的幂,所有相邻的幂的前后都是相差2倍,所以只要知道其中一个幂值,就知道相邻的幂的值。

    理解了2的幂,那么我们来回答前面的问题,二进制如何计算转换成十进制数。同样举例,11111111转成十进制如何计算呢?

    从右往左开始依次以每位二进制数值×2的0次幂、2的1此幂、2的2此幂依次类推,算出结果相加得到的和就是十进制数。

    1×20+1×21+1×22+1×23+1×24+1×25+1×26+1×27=1+2+4+8+16+32+64+128=255,这里0次方到7次方刚好8位,注意任何的0次方都是1哦。

    再举例,11100000

    0×20+0×21+0×22+0×23+0×24+1×25+1×26+1×27=0+0+0++0+0+32+64+128=224

    4、CIDR

    CIDR(无类别域间路由,Classless Inter-Domain Routing)。CIDR最大的特点是用斜杠(/)来表示子网掩码,指出了子网掩码中有多少位1。这种表示方法我们经常在运营商给我的IP地址中看到,我们经常需要根据这种表示方法算出我们的可用IP地址是哪些。

    假如电信给了我们这段地址61.168.1.32/28,我们可用的IP地址是多少呢?这个问题我们先不回答,等后面详细讲解子网划分自后再回头来看。

    A类网络默认子网掩码是255.0.0.0,用CIDR表示为/8

    B类网络默认子网掩码为255.255.0.0.0,用CIDR表示为/16

    C类网络默认子网掩码为255.255.255.0,用CIDR表示为/24

    看到这里,大家知道了吧,/8表示占用8位1,即占用一个字节,/16表示占用16位1,即2字节,/24占用24位1,即占用3字节,大家记住这个默认规则,是后面学习子网划分以及以后心算子网划分的重要技巧。

    举例,子网掩码255.255.255.128,用CIDR表示是多少呢?首先这是个C类网络地址,前面三个字节都是255,转换成二进制都为1,即11111111.11111111.11111111,即24位1。128转换成二进制位10000000,即1占用了一位。整个子网掩码占用了25位1,所以用CIDR表示为/25,即255.255.255.128(/25),假如IP段为192.168.1.0,用CIDR表示则为192.168.1.0/25。

    再举例,192.168.1.0,255.255.255.192,用CIDR表示?首先判断出是C类网络,前面占用了3字节(24位)1,192换算成二进制位11000000,占用了2位1,总共是26位1.所以CIDR表示为192.168.1.0/26。

    提问,192.168.1.0/28,大家能算出子网掩码是多少吗?提示,这里就是根据前面的计算方法一样反推回来算

    下面开始学习子网划分,在实际项目中划分之网之前,首先得搞懂以下几个需求:

    1、需要划分成多少个网络(子网)?

    假如要划分4个网络,则2X=4,X=2、要划分8个网络,则2X=8,X=3,现在知道为什么要先搞懂2的幂了吧,这里X就是=2的幂值。

    那么X代表什么意思呢?X就是取值多少位1,如11000000,就是借2位,即X=2,反推知道一个字节(8位)如果为11000000,则表示可以划分4个网络(22=4);如果为11110000,则表示借4位,可以划分16个网络(24=16)。

    2、每个网络需要多少个IP

    计算公式:2y-2,y代表取值多少位0,如11111000,代表取值3位0,即y=3,得出23=8-2=6,即每个网络可用的IP数量是6个。

    假如每个网络需要60台主机的IP,那么如何计算呢?即2y≥60,根据2的幂算法得出,26=64-2=62,所有y的值为6。

    这里公式里为什么要减2呢?请大家先思考下,后面重庆网管博客将详细介绍。

    3、有哪些子网网络(块大小)?

    计算公式:256-子网掩码。假如子网掩码为255.255.255.192,则块大小为256-192=64,即块大小为64。从0开始以64为基数不断递增,直到达到子网掩码值,中间的结果即为子网,本例中子网即0、64、128、192。

    再举例,加入子网掩码为255.255.255.128,则块大小为256-128=128,即块大小为128,子网0、128。

    4、每个子网的子网号和广播地址是多少?

    子网号很简单,即子网块值,如掩码为192,则子网块为256-192=64,得出子网为0、64、128、192,即子网号为0、64、128、192。再如掩码为128,则子网为128,则子网好0、128。

    广播地址也很简单,总是下一个子网前面的数。如子网号为0、64、128、192、则广播地址为63、127、191。再如子网号为0、128,则广播地址为127.

    看到这里大家知道为啥在计算每个网络可用的IP数时,公式里要-2吗?这是因为每个子网号(子网号也是一个IP地址)和广播地址是不能配给主机用的。至于为啥不能配给主机用?这个不在本主题讨论范围内,想了解的朋友可用进入认证网络工程师QQ群474079428讨论。

    5、每个子网的可用(合法)的主机地址是哪些?

    规则就是除去每个每个子网的子网号、广播地址,剩下的就是可用的主机地址,如子网号为0、64、128、192,则可用的主机地址为1-62、65-126、129-190,因为0是子网地址,63是广播地址,同样128、192是子网地址,127、191是广播地址。

    6、C类网络子网划分

    举例,192.168.10.0,255.255.255.224

    1、可划分成多少个子网?

    根据前面的知识,首先把224转换成二进制,得出为11100000,1占了3位,因此23=8,可用划分8个子网。

    2、每个子网有多少个可用的IP?

    这里看0占了5位,因此25-2=30,可用IP数为30.

    3、有哪些子网网络?

    256-224=32,即以32为基数不断递增,直到224,即0、32、64、96、128、160、192、224。即192.168.10.0、192.168.10.32、192.168.10.64、192.168.10.96、192.168.10.128、192.168.10.160、192.168.10.192、192.168.10.224。

    4、每个子网网络的广播地址是多少?

    每个子网网络的广播地址总是下一个子网前面的数,即31、63、95、127、159、191、223,即192.168.10.31、192.168.10.63、192.168.10.95、192.168.10.127、192.168.10.159、192.168.10.191、192.168.10.223。

    5、每个子网的可用地址是哪些?

    即减去每个子网的子网地址和广播地址,剩下的就是可用地址。本例中的可用地址为1-30、33-62、65-94、129-158、161-190、193-222。

    再举例,192.168.10.0/30

    1、可划分成多少个子网?

    因为CIDR表示的子网掩码,首先得算出占用了多少位1,即30-24(因为是C类网络,前面三个字节都是255,即8位1,共24位1)=6,即6位1。所以26=64,即64个子网。

    2、每个子网有多少个可用的IP?

    因为1位占了6个,0位只有2个了,得出22-2=2,所以是2个可用IP地址。

    3、有哪些子网网络?

    因为1位占了6个,所以得出21+22+23+24+25+26=252,即256=252=4,得出块大小为4,子网网络为0、4、8、12、16、……、240、244、248、252,即192.168.10.0、192.168.10.4、192.168.10.8、……192.168.10.248、192.168.10.252.

    4、每个子网网络的广播地址是多少?

    下一个子网之前的数字,即192.168.10.3、192.168.10.7、192.168.10.11、……、192.168.10.247、192.168.10 .251,你算对了吗。

    5、每个子网的可用地址是哪些?

    除去子网地址和广播地址就是可用地址,本例中的可用地址为1,2、5,6、……、249,250。

    无论是A类、B类、C类网络,在使用子网掩码/30时,每个子网只包含2个主机地址,这种子网掩码只适合用于点到点链路。

    7、B类网络子网划分

    通过前面的知识我们知道B类地址中,有16位可用的主机地址,这意味着我们可将其中的14位用于子网划分,因为至少要保留2位用于主机编址。

    举例,172.17.0.0  255.255.128.0

    1、可划分成多少个子网?

    首先128转换成二进制位10000000,因为此例是属于B类网络,至少需要保留16位掩码位(16位1)所以此处x=1,得出21=2。答案是可以划分2个子网。

    2、每个子网有多少个可用的IP?

    这里0位总共占了15位,215-2=32766.

    3、有哪些子网网络?

    256-128=128,即0.0、128.0,得出172.17.0.0、172.17.128.0

    4、每个子网网络的广播地址是多少?

    下一个子网之前的数字,172.17.127.255、172.17.255.255.

    5、每个子网的可用地址是哪些?

    子网0.0第一个可用地址为172.17.0.1,最后一个可用地址为172.17.127.254;子网128.0第一个可用地址为172.17.128.1,最后一个可用地址为172.17.255.254.

    再举例,172.17.0.0/20

    1、可划分成多少个子网?

    因为此例是属于B类网络,至少需要保留16位掩码位(16位1)所以此处x=4,得出24=16。答案是可以划分16个子网。

    2、每个子网有多少个可用的IP?

    这里1位占了4位,所以这里0位总共占了12位,212-2=4094.

    3、有哪些子网网络?

    因为1位占了4位,得出24+25+26+27=240。

    256-240=16,即0.0、16.0、……、240.0,得出172.17.0.0、172.17.16.0、……、172.17.240.0。

    4、每个子网网络的广播地址是多少?

    下一个子网之前的数字,172.17.15.255、……、172.17.223.255.

    5、每个子网的可用地址是哪些?

    子网0.0第一个可用地址为172.17.0.1,最后一个可用地址为172.17.15.254;……。

    转载文章,原文地址http://www.023wg.com/jcpz/294.html

  • 相关阅读:
    Appium 服务命令行参数
    DC 输入 输出 时钟 PVT设置
    .synopsys_dc.setup编写
    Excel VBA编程常用语句300句
    C# 泛型单例工厂
    C# Winform与JS交互
    SQL分析“聚集索引、非聚集索引”区别
    C# ClassHelper动态创建程序集和类, 添加/删除类属性
    从30个角度对比 PostgreSQL 和 MySQL
    C# 常用类和命名空间
  • 原文地址:https://www.cnblogs.com/paulwinflo/p/8436465.html
Copyright © 2011-2022 走看看