§2.8 无类型编址

无类型编址也称为超网编址。为什么采用无类型编址呢?

常规的分类编制将网络分为A、B、C三种类型,但是每种类型的网络数量差异很大,B类网络号有1万7千个,而C类网络号有200多万个;

C类网络的申请非常缓慢,只有小部分被分配;

B类网络地址面临在几年内分配完的问题;

一些中小规模的网络浪费了大量的IP地址。比如一个机构需要300个IP地址,然而一个C类网络只有254个IP地址,不能满足需要,于是该机构只能申请了一个B类网络,然而,B类网络拥有65532个IP地址,这样,绝大部分的IP地址没有被有效利用。

 

超网编址的原理是连续分配若干个连续C类网络号的地址块,并作为一个网络来进行管理。

按上述示例的情况,如果需要300个IP地址,可以分配2个连续的C类地址块,而不是分配一个B类网络。

如果机构需要分配一个B类地址,也可以为该机构分配一个有256个连续C类号的块。

 

但是,路由器如何来进行路由呢?TCP/IP中引入了一种无类型域间路由CIDR(Classless Inter-Domain Routing)的技术。

如果采用连续分配多个C类网络的方式,则需要在路由器中存储每个C类网络的路由信息,并且要动态维护这些信息的一致性。如果连续分配了256个C类号,则需要记录256项路由信息。这样,就必然导致路由表规模很大,路由表查询效率降低。为了保持较小的路由表规模,CIDR沿用了子网掩码的表示方式,它要求每个地址块的大小必须是2的幂,并用一个比特掩码标识块的大小。例如,某机构的网络规模为600个IP地址,采用CIDR分配连续的C类网络时,不能分配3个C类网络,而必需分配2的幂大小的C类网络数,即22=4个。其分配后的子网掩码如下图所示:

为了简化标识掩码,CIDR提出了一种简化的表示方法,也称为斜杠表示法,以十进制表示掩码的长度,并使用一个斜杠把它和地址隔开。

如果地址从128.211.168.0开始分配,连续分配4个C类网络的地址块可以表示为128.211.168.0/22,22表示掩码中的22比特为1。

 

另外,CIDR并不限制网络号必须采用C类地址,也可以采用B类地址。