网络层笔记四、划分子网

网络层笔记四、划分子网

引言:上一篇笔记中,有写到最基本的IP地址编址方式——分类IP。第四篇笔记将介绍其存在的弊端,改进思路(划分子网),最后介绍子网掩码如何实现子网划分。


一、分类IP地址编址方式的弊端

  今天看来,在ARPANET的早期,IP地址的设计确实不够合理,有以下三点原因:

1、IP地址空间利用率低:
  每一个A类地址网络可连接的主机数超过1000万台、而每一个B类网络可连接的主机数也超过6万台。然而有些网络对连接在网络上计算机数目有限制,根本达不到这样的数值。例如以太网10BASE-T规定其最大节点数只有1024个。另外有些单位考虑今后发展,会尽量申请B类地址,而非一个足够用的C类地址。IP地址的浪费,还会使IP地址空间的资源过早地被用完。

2、路由表太大降低网络性能:
  每一个路由器都应当能够从路由表查处应怎样到达其他网络的下一跳路由器。因此,互联网中的网络数越多,路由器的路由表项目数越多,这样,即便我们拥有足够多的IP地址资源可以给每一个物理网络分配一个网络号,也会导致路由器中路由表中的项目数过多。这样不仅增加了路由器的成本(要求更多存储空间),而且使查找路由表耗时更多,同时使路由器之间定期交换路由信息量急剧增加,使路由器和整个因特网性能下降。

3、两级IP地址不够灵活:
  有时情况紧急,一个单位需要在新的地点马上开通一个新的网络。但是在申请到一个新的IP地址之前,新增加的网络是不可能连接到因特网工作的。我们希望有一种方法,使一个单位能够随时灵活地增加本单位的网络,而不必事先到因特网的管理机构去申请新的网络号。原来的两级IP地址无法做得到这一点。

二、划分子网的基本思路

  为解决上述问题,从1985年起在IP地址中又增加了一个“子网号字段”,使两级IP地址变成为三级IP地址,它能够较好的解决上述问题,并且使用起来很灵活,这种做法叫作划分子网(subnetting),或子网寻址子网路由选择。划分子网已成为因特网正式标准协议。

2.1、思路

  • 1、一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet)划分子网纯属一个单位内部的事情,本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
  • 2、划分子网的办法是从网络的主机号借用若干位作为子网号subnet,当然主机号也就减少了相应的位数。于是两级的IP地址在本单位内部就变成了三级IP地址:网络号、子网号、主机号。也可以由以下记法来表示:
    IP地址 ::= {<网络号>, <子网号>, <主机号>}
  • 3、凡是从其他网络发送到本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机。

2.2、例子
  下面用例子说明划分子网的概念,图1表示某单位拥有一个B类IP地址,网络地址是145.13.0.0(网络号是145.13)。凡目的地址为145.13.x.x的数据报都被送到这个网络上的路由器R1。

这里写图片描述

                    图1、一个B类网络145.13.0.0

  现在把图1的网络划分为三个子网(图2)。这里假定子网号占用8位,因此在增加了子网号后,主机号只有8位。所划分的三个子网分别是:145.13.3.0、145.13.7.0和145.13.21.0。在划分完子网后,整个网络对外部仍然表现为一个网络,其网络地址仍为145.13.0.0。网络145.13.0.0上的路由器R1在收到外来的数据报后,再根据数据报的目的地址把它转发到相应的子网。
这里写图片描述
      图2、把图1网络145.13.0.0划分为三个子网,但对外仍是一个网络

  概括讲,当没有划分子网时,IP地址是两级结构,划分子网后IP地址变成了三级结构。划分子网只是把IP地址的主机号这部分进行再划分,而不改变IP地址原来的网络号

三、子网划分的实现—子网掩码

3.1、子网掩码引入
  现在剩下的一个问题就是:假定有一个数据报(其目的地址是145.13.3.10)已经达到了路由器R1。那么这个路由器如何把它转发到子网145.13.3.0呢?我们知道,32位的IP地址本身及数据报首部都没有包含任何关于子网划分的信息,因此从IP数据报的首部是无法看出源主机或目的主机所连接的网络是否进行了子网的划分。必须,另想办法,这就是使用子网掩码(subnet mask).
这里写图片描述
              图3、IP地址各字段和子网掩码
  图3中第一行,IP地址为145.13.3.10的主机本来是两级IP地址结构,第三行是同一地址的三级IP地址结构,也就是说现在从原来的16位主机号中拿出8位作为子网号,而主机号由16位减小到8位。现在子网号为3的网络地址为145.13.3.0,不同于原来两级IP地址的网络地址145.13.0.0

3.2、子网掩码构成

  为了使R1路由器能够很方便地从数据报中的目的IP地址中提取出所要找的子网的网络地址,路由器R1就要使用三级IP地址的子网掩码。图3中第三行为三级IP地址的子网掩码,它也是32位,由一串1和跟随的一串0组成。子网掩码中的1对应IP地址中原来二级地址中的16位网络号加上新增加的8位子网号,而子网掩码中的零对应于现在的8位主机号。
  图3中第四行,表示R1把三级IP地址的子网掩码和收到的数据报的目的IP地址145.13.3.10**逐位相与**,得出了所要找的子网的网络地址145.13.3.0.
  使用子网掩码的好处就是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位于运算,就立即得出网络地址来,这样在路由器处理到来的分组时就可以采用同样的算法。

从网络145.13.0.0外面看,这就是一个普通的B类网络,其子网掩码为16个连1后面跟上16个连0。但进入这个网络内部后(即到了路由器R1),就看到了还有许多网络(即划分了子网后的许多网络),其网络地址是145.13.x.0(这里x表示不同的数值),而这些网络的子网掩码都是24个连1和8个连0。总之,这个B类网络的外部和里面,看到的网络是不一样的。其实就好像路标,到具体十字路口,再具体标明该去哪个乡镇。这里只有到R1,存储三级子网掩码才有意义。

这里写图片描述
              图4、一张很丑的路标图

3.3、子网掩码划分方式
3.3.1、默认的子网掩码:
   在不划分网络时,既然没有子网,为什么还有使用子网掩码?这就是为了便于查找路由表。现在因特网标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。默认子网掩码中1的位置和IP地址中的网络号字段net-id正好相对应。因此,若使用默认子网掩码和某个不划分子网的IP地址逐位相“与”(AND),就应当能够得出该IP地址的网络地址来。

这里写图片描述
              图5、A类、B类、C类IP地址的默认子网掩码

3.3.2、其他划分方式:
  子网掩码是一个网络或者子网的重要属性,在RFC 950成为因特网的正式标准后,路由器在和相邻路由器交换路由信息时,必须把自己的所在的网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须给出该网络的子网掩码。
  由于是由主机号中拿出一部分,构成子网号,故若使用较少位数的子网号,则每一台子网上可连接的主机数就多。若使用位数较多的子网号,则子网数目较多,但是每个子网上可连接的主机数就少。因此,我们可以根据网络的具体情况,选择合适的子网掩码。
  我们以一个B类网络为例,说明有多少种子网划分的方法。在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。
这里写图片描述
              图6、B类地址的子网划分选择
   在图6中,子网数是根据子网号subnet-id计算出来的,若subnet-id有n位,则共有2n种可能的排列,除去全零和全1这两种情况,就得出表中的子网数。另外计算每个子网中主机数为216 - n - 2.

四、划分子网情况下路由器转发分组的算法

   关于分组转发的内容,可以参考笔记x(待补充)。当划分子网后,路由表必须包含以下三项内容:目的网络地址、子网掩码和下一跳地址。在划分分组情况下,路由器转发分组的算法如下

(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。
(3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。
(4) 对路由表中的每一行的子网掩码和 D 逐位相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。
(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(6)。
(6) 报告转发分组出错。

——————————————————————————————————————
参考资料:
《计算机网络第六版》 谢希仁著

纠错与建议
邮箱:db_hebut@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值