首页 理论教育 计算机网络中的子网划分

计算机网络中的子网划分

时间:2023-11-09 理论教育 版权反馈
【摘要】:划分子网已成为互联网的正式标准协议。划分子网纯属一个单位内部的事情。图4-20一个B类网络145.13.0.0图4-21把图4-20所示的网络145.13.0.0划分为3个子网,但对外仍是一个网络总之,当没有划分子网时,IP地址是两级结构。请注意,现在子网号为3的网络地址是145.13.3.0。从网络145.13.0.0外面看,这就是一个普通的B类网络,其子网掩码为16个连

计算机网络中的子网划分

1.从两级IP地址到三级IP地址

在今天看来,在ARPANET的早期,IP地址的设计确实不够合理。

第一,IP地址空间的利用率有时很低。

每个A类地址网络可连接的主机数超过1 000万,而每一个B类地址网络可连接的主机数也超过6万。有的单位申请到了一个B类地址网络,但所连接的主机数并不多,可是又不愿意申请一个足够使用的C类地址,理由是考虑到今后可能的发展。浪费IP地址还会造成IP地址空间的资源过早地被用完。

第二,给每个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。

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

第三,两级IP地址不够灵活。

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

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

划分子网的基本思路如下:

(1)一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(Subnet)。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。

(2)划分子网的方法是从网络的主机号借用若干位作为子网号(Subnet-Id),当然,主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机号。另外,也可以用以下记法来表示:

(3)凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器,但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机。

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

现把图4-20的网络划分为3个子网(图4-21)。这里假定子网号占用8 bit,因此在增加了子网号后,主机号就只有8 bit。其所划分的3个子网分别是:145.13.3.0、145.13.7.0和145.13.21.0。在划分子网后,整个网络对外部仍表现为一个网络,其网络地址仍为145.13.0.0,但网络145.130.0.0上的路由器R1在收到外来的数据报后,再根据数据报的目的地址把它转发到相应的子网中。

图4-20 一个B类网络145.13.0.0

图4-21 把图4-20所示的网络145.13.0.0划分为3个子网,但对外仍是一个网络

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

2.子网掩码

现在剩下的问题就是:假定有一个数据报(其目的地址是145.13.3.10)已经到达了路由器R1,那么这个路由器如何把它转发到子网145.13.3.0呢?

我们知道,从IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行了子网的划分。这是因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须另外想办法,这就是使用子网掩码(Subnet Mask)(图4-22)。

图4-22(a)所示的是IP地址为145.13.3.0的主机本来的两级IP地址结构。图4-22(b)所示的是这个两级IP地址的子网掩码。图4-22(c)所示的是同一地址的三级IP地址结构。也就是说,现在从原来16 bit的主机号中拿出8 bit作为子网号,而主机号由16 bit减少到8 bit。请注意,现在子网号为3的网络地址是145.13.3.0(既不是原来两级IP地址的网络地址145.13.0.0,也不是简单的子网号3)。为了使路由器R1能够很方便地从数据报中的目的IP地址中提取出所要找的子网的网络地址,路由器R1就要使用三级IP地址的子网掩码。图4-22(d)所示的是三级IP地址的子网掩码,它也是32 bit,由一串24个1和跟随的一串8个0组成。子网掩码中的1对应于IP地址中原来二级地址中的16 bit网络号加上新增加的8 bit子网号,而子网掩码中的0对应于现在的8 bit主机号。虽然RFC文档中没有规定子网掩码中的一串1必须是连续的,但却极力推荐在子网掩码中选用连续的1,以免出现可能发生的差错。图4-22(e)表示R1把三级IP地址的子网掩码和收到的数据报的目的IP地址145.13.3.0逐位相“与”(AND)(计算机进行这种逻辑AND运算是很容易的),得出了所要找的子网的网络地址为145.13.3.0。

图4-22 IP地址的各字段和子网掩码(以145.13.3.0为例)

(a)两级IP地址;(b)两级IP地址的子网掩码;(c)三级IP地址;(d)三级IP地址的子网掩码;(e)子网的网络地址

使用子网掩码的好处就是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算就能立即得到网络地址。这样在路由器处理到来的分组时就可采用同样的算法

归纳一下上述要点。从网络145.13.0.0外面看,这就是一个普通的B类网络,其子网掩码为16个连续的1后面跟上16个连续的0。但进入这个网络后(即到了路由器R1),就看到了还有许多网络(即划分了子网后的许多网络),其网络地址是145.13.×.0(这里×可以表示不同的数值),而这些网络的子网掩码都是24个连续的1后面跟上8个连续的0。总之,在这个B类网络的外面和里面,看到的网络是不一样的。这里还要弄清一个问题,即在不划分子网时,既然没有子网,为什么还要使用子网掩码?这就是为了更便于查找路由表。现在互联网的标准规定:所有的网络都必须使用子网掩码,同时,在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。默认子网掩码中1的位置和IP地址中的网络号字段net-id正好相对应。因此,若用默认子网掩码和某个不划分子网的IP地址逐位相“与”,就应当能够得出该IP地址的网络地址来。这样做可以不用查找该地址的类别位就能知道这是哪一类的IP地址。显然,有:(www.xing528.com)

(1)A类地址的默认子网掩码是255.0.0.0或0xFF000000。

(2)B类地址的默认子网掩码是255.255.0.0或0xFFFF0000。

(3)C类地址的默认子网掩码是255.255.255.0或0xFFFFFF00。

图4-23所示是这三类IP地址的网络地址及其相应的默认子网掩码。

图4-23 A类、B类和C类IP地址的默认子网掩码

子网掩码是一个网络或一个子网的重要属性。在RFC 950成为互联网的正式标准后,路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。

现以一个B类地址为例来说明可以有多少种子网划分的方法。采用固定长度子网时所划分的所有子网的子网掩码都是相同的(表4-7)。

表4-7 B类地址的子网划分选择(使用固定长度子网)

续表

在表4-6中,子网数是根据子网号(subnet-id)计算出来的。若子网号有n位,则共有2n种可能的排列,再除去全0和全1这两种情况,就得出表中的子网数。表4-6中的“子网号的位数”中没有0、1、15和16这4种情况,因为这没有意义。

虽然根据已成为互联网标准协议的RFC 950文档,子网号不能为全1或全0,但随着无分类域间路由选择CIDR的广泛使用,现在全1和全0的子网号也可以使用了,但一定要谨慎使用,要弄清楚路由器所用的路由选择软件是否支持全0或全1的子网号这种较新的用法。

可以看出,若使用较少位数的子网号,则每个子网上可连接的主机数就较多。反之,若使用较多位数的子网号,则子网的数目较多但每个子网上可连接的主机数就较少。因此可根据网络的具体情况(一共需要划分多少个子网,每个子网中最多有多少台主机)来选择合适的子网掩码。

通过简单的计算,不难得到这样的结论:划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数。例如,本来一个B类地址最多可连接65 534台主机,但表4-6中任意一行的最后两项的乘积一定小于65 534。

对A类和C类IP地址的子网划分也可得出类似的表格,读者可自行算出。

【例4-2】已知IP地址是141.14.72.24,子网掩码是255.255.192.0。试求网络地址。

【解】子网掩码是11111111 11111111 00000000 00000000。请注意,掩码的前两个字节都是全1,因此网络地址的前两个字节可写为141.14。子网掩码的第四字节是全0,因此网络地址的第四字节是0。可见本题仅需对地址中的第三字节进行计算。只要把IP地址和子网掩码的第三字节用二进制表示,就可以很容易地得出网络地址,如图4-24所示。

图4-24 网络地址的计算

(a)点分十进制表示的IP地址;(b)IP地址的第三字节是二进制;(c)子网掩码是255.255.224.0;(d)IP地址与子网掩码逐位相“与”;(e)网络地址(点分十进制表示)

请注意,在一个IP地址中不允许把十进制和二进制混合使用。图4-24(b)和(d)的写法仅为了说明解题的步骤,而并非表示平时可以这样书写IP地址。

【例4-3】在例4-2中,若子网掩码改为255.255.224.0,试求网络地址,并讨论所得结果。

【解】用同样方法可得出网络地址是141.14.64.0,和上例的结果相同(图4-25)。

图4-25 不同的子网掩码得出相同的网络地址

(a)点分十进制表示的IP地址;(b)IP地址的第三字节是二进制;(c)子网掩码是255.255.224.0;(d)IP地址与子网掩码逐位相“与”;(e)网络地址(点分十进制表示)

这个例子说明,同样的IP地址和不同的子网掩码可以得出相同的网络地址。但是,不同的掩码的效果是不同的。在例4-2中,子网号是2位,主机号是14位。在例4-3中,子网号是3位,主机号是13位。因此这两个例子中可划分的子网数和每个子网中的最大主机数都是不一样的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈