5.2.8 子网编址

5.2.8 子网编址

我们前面已经说过最初的IP编址方案,是把IP地址分为两部分,前缀作为网络号部分,后缀作为主机号部分,并且规定每个物理网络都要被分配一个唯一的网络地址,在一个物理网络上每台主机的IP地址都有共同的网络号部分,但是在因特网设计之初,PC(个人电脑)还不曾出现,设计人员并没有预见到因特网的发展速度,到上个世纪80年代中期就发现了分类的IP地址即分类的网络地址将不够用并且已分配的网络地址有没有得到充分的利用,比如说对于一个B类地址他可用的IP地址个数有65534个,但实际上为了网络性能较好,避免网络拥塞,一个局域网并不能够连接如此多的主机因而给一个局域网使用一个B类网络地址会导致地址空间的利用率极低,问题来了,在不放弃分类编址的情况下,如何适应网络增长的需要呢?这时设计人员就想到了“能不能把一个大的网络拆成若干个规模较小的网络呢”这就是我们要学习的子网编址技术。

对于一个中等大小的组织比如说有若干大楼的大学或者是公司鉴于局域网技术的限制一般需要构建若干局域网来覆盖本地区域,对于这种需求TCP/IP设计人员想到给这样的网点只分配一个网络地址,然后再从主机号部分借用若干个比特来标识各个子网,我们就把这种允许一个分类的网络地址供多个物理网络使用的技术成为子网编址或者是子网划分

自1985年开始子网编址已经成为因特网的正式编址的协议,通过这种方式就能够使一个单位随时可以根据自己本单位的需要,灵活的增加本单位的网络而不必事先到因特网管理机构申请新的网络号,采用子网划分后我们可以看到对于一个IP地址来说由于从主机号部分借用了若干个比特来表示子网号,所以一个IP地址就分成了三个部分也就是说,从主机域中借用若干个比特作为子网subnet-id,而主机号host-id也就相应减少了若干个比特。也就是IP地址 = [网络号,子网号,主机号],这里我们还应该注意的是

  • 子网位从主机域的最左边开始连续借用,也就是说子网划分的时候是从原来的主机号部分最左边开始连续借用若干位。由于我们从主机的IP地址本身并不能看出来该主机所在的网络是否进行了子网划分,只能够根据点分十进制的第一个数字来判断它是属于那种类型的IP地址。

  • 子网找我网外是不可见的,仅在子网内使用。

  • 怎样才知道是否在一个网络内部进行子网划分了呢?

    这就用到了非常重要的概念,也就是我们人平时容易犯糊涂的概念,也就是子网掩码,子网号的位数是可变的,为了反映有多少位用于表示子网号,采用子网掩码(mask),这里我们对子网掩码进行深入的理解,子网掩码也是一个32比特,由一串连续的1和一串连续的0组成的,那具体那些位是1,那些位是零呢?网络号部分和子网号部分为1,主机号部分用零来表示

    IP地址网络号子网号主机号
    子网掩码111······11111··1100··00

    例:在一个B类网络128.10.0.0中,我们准备从16位主机号部分里借用3位进行子网划分,求对应的子网掩码。

    问题的关键就在于求该子网掩码里到底有多少位1,有多少位0。

    分析:因为是B类网络所以网络号部分是16个比特位,又因为子网号部分是3位,所以子网掩码中就有16+3=19位1,剩下的32-19=13位主机号部分全0。也就是11111111.11111111.11100000.00000000即255.255.224.0

    IP地址:128.10.0.0网络号128.10子网号主机号
    子网掩码:255.255.224.011111111.111111111110000000000000
  • 默认子网掩码

    对于一个传统的A类、B类、或者C类网络来说,还有一个默认子网掩码的概念,也就是在没有划分子网的情况下,所对应的子网掩码,因为没有划分子网,所以子网号的位数就为零,子网掩码中1的个数就是网络号部分的长度,比如

    A类网络的默认子网掩码就是255.0.0.0

    B类网络的默认子网掩码就是255.255.0.0

    C类网络的默认子网掩码就是255.255.255.0

    例:一台主机的IP地址是128.10.32.6,子网掩码是255.255.224.0,那么该主机所在子网的子网地址是什么?

    分析:子网地址也是一个特殊的IP地址,就是网络号部分和子网号部分不变,主机号部分全零的地址。和逻辑“与”操作相结合。我们知道0和1相与结果为0,1和1相与结果为1,也就是任何一个数和1相与的结果都是它本身。0和0相与为0,1和0相与结果为0,也就是说任何一个数和0相与的结果都是0。再根据子网掩码中网络号部分和子网号部分用1来表示,主机号部分用0来表示,我们就得到如下结论

    结论:子网地址 = 主机IP地址 AND 子网掩码 ,做逻辑“与”运算结果就可以计算出该主机所在子网的子网地址。也就是128.10.32.0

广播地址

前面我们还提到了广播地址,广播地址也是一种比较特殊的IP地址,它的主要用途是要用广播的方式(一对所有进行通信)发送一个分组时,目的IP地址是一个广播地址,即在一个网络内部希望给所有的主机发送一个分组时,在该分组的首部中目的IP地址字段写的就是网络内的广播地址。

  • 特点:主机号部分全1。

    例:在子网128.10.32.0中,广播地址是多少呢?

    分析:把主机号部分全部变成1在和前面的网络号部分和子网号部分合在一起即可

    即128.10.00111111.11111111也就是128.10.63.255

    这里需要注意的是,广播地址中第三个数字表示的8比特中有子网号部分也有主机号部分,所以在计算的时候要特别的小心,因为需要进行二进制和十进制的多次的转换。

举例

示例一:在实际的规划中也可以根据用户的需求来选择合适的子网掩码。

例1:一家公司申请到的网络地址是202.119.230.0,现在由于工作上的需要,要把该网络划分为14个子网,并且又希望每个子网的规模尽可能的大,则应选用的子网掩码是多少?

分析:我们首先思考的是用户的需求是14个子网,那么就需要从主机号部分里借用几位来进行子网划分呢?在这里我们还要考虑全零和全1的子网地址分不分配的问题,如果全零和全一可以分配,则用X位进行子网划分,就可以划分出 2 X 2^X 2X个子网,如果全零和全一不能被划分为子网则可以划分为 2 X − 2 2^X-2 2X2个子网。对于本题中因为其是C类网络地址,且网络号部分并非全零和全一,因此可以划分出 2 X 2^X 2X个子网,而X=4可以满足题目的要求,所以说借用四位来进行子网划分是可以满足用户需求的。最小取值,又因为该网络为C类网络,所以网络号部分就是24个比特位,主机位就剩8位了,子网部分刚才已经计算出来是4位,所以它的子网掩码就有24+4=28比特位的1,剩下的4比特为0。也就是255.255.255.240。

示例二:除了以上情况在子网编址中还会涉及到一系列的计算,比如说每个子网中可用的IP地址有多少个,每个子网的子网地址是多少,能够划分出多少个这样的子网等问题。

例2:一个网络,其网络地址位210.10.30.0,若其选用的子网掩码是255.255.255.192,则

  1. 可以划分多少个子网?(注:全0全1的子网地址不分配)

    要想知道可以划分为多少个子网需要知道子网部分占用了主机部分的几个比特位,首先这是一个C类的IP地址,主机位为最后的8个比特位,子网掩码最后8位的十进制是192也就是11000000B,也就是说占用了2个比特位主机部分用于子网划分,其中全0全1的子网不分配所以可以划分的子网个数为 2 2 − 2 = 2 2^2-2=2 222=2个子网。

  2. 每个子网容纳的主机个数是多少?

    因为主机号部分的位数也就是子网掩码中0的个数,有6位,所以每个子网可容纳的主机也就是可用的IP地址的数量 2 6 − 2 = 62 2^6-2=62 262=62

    这里需要注意的是,即使题目中没有说明,全零和全一的主机地址始终是不分配的。

  3. 每个子网的子网地址分别是多少?

    分析:我们知道子网部分中高24位是网络号部分,肯定是210.10.30,子网地址中主机号部分是全0,只有子网号这两位去除全0和全1外,还有两种选择,一个是01,一个是10,分别分配给两个子网,也就是210.10.30.64和210.10.30.128

  4. 每个子网中可分配的IP地址的范围是多少?广播地址是多少?

    分析:每个子网中第一个可用IP地址就是主机号部分除了最后一位为1,其余位均为0的地址,最后一个可分配的IP地址是刚好反过来,主机号部分最后一位是0,其余位为1。

    子网一的IP地址范围是:210.10.30.65~210.10.30.126 这里有一个计算的技巧,我们计算01111110时可以用255-128-1=126

    子网二的IP地址范围是:210.10.30.129~210.10.30.190

    广播地址就是主机号部分全1

    子网一的广播地址是:210.10.30.127

    子网二的广播地址是:210.10.30.191

通过这个例题我们理解了关于子网划分的相关计算,如果我们把其中的网络地址换成128.10.0.0的就变成了如下例题

例3:有一个网络其网络地址为128.10.0.0,若其选用的子网掩码是255.255.255.192,则

  1. 可以划分多少个子网?(注全0和全1的子网地址不分配)

    因为该网络地址为B类网络,子网掩码255.255.11111111.11000000中借用主机位10位,因此可以划分 2 10 − 2 = 1022 2^{10}-2=1022 2102=1022个子网。

  2. 每个子网容纳的主机个数是多少?

    每个子网容纳的主机个数是子网掩码中0的个数,因此也是 2 6 − 2 = 62 2^6-2=62 262=62个主机。

这里我们也知道,一个未经子网划分的B类网络可容纳的主机数量我们知道是 2 16 − 2 = 65534 2^{16}-2=65534 2162=65534个,而划分了子网以后就像例3中的可用的IP地址是多少呢?

这里我们要注意:目前共有可用的IP地址个数为 1022 × 62 = 63365 < 65534 1022\times62=63365<65534 1022×62=63365<65534虽然地址的数量上是有部分损失,但对于每个子网来说,地址的利用率提高了很多。所以从总体上来看采用子网编址也是更加有利的。

我们已经通过具体的示例来演示在实际应用中如何根据用户的需求进行子网的划分,或者根据给定的子网掩码进行各种计算,在后面我们学习IP分组的转发时还会涉及到与子网相关的计算。后面我们一同学习另外一种节省IP地址或者更加合理使用IP地址的方法被称为CIDR的无分类编址。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值