尽管划分子网在一定程度上解决了IP地址不足的问题,但是在1992年的时候,B类IP地址已经快要分配完了.
于是有人研究出无分类编址方法,它的正式名是无分类域间路由选择CIDR.
它最最主要的一点是消除了A,B,C类地址和划分子网的概念.它重新将IP地址划分为两个部分即,”网络前缀”和”主机号”.注意这里的网络前缀再也没有位数的限制,即没有A,B,C类之分.
CIDR还使用了”斜线记法”,即在IP地址后面加上斜线”/”然后写上网络前缀所占的位数.
CIDR还有另外一个特点.它把网络前缀都相同的连续的IP地址组成一个”CIDR地址块”(我们只要知道CIDR块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,遗迹地址块中的地址数)
为了方便地进行路由选择,CIDR使用32位的地址掩码,因为一些网络还是用子网划分和子网掩码,所以CIDR的地址掩码也成为子网掩码.斜线记法中,斜线后面的数字就是地址掩码中1的个数.
与此同时,在这个CIDR地址块中,你也可以继续划分子网.
由于一个CIDR地址块可以包含很多地址,所以在路由表中就利用CIDR地址来查找目的网络.这种地址的聚合常称为路由聚合.路由聚合也成为构成超网
由于采用CIDR块的记法,这个时候路由器中的路由表可能会得到不止一个匹配结果.这个时候我们应当从匹配结果中选择具有最长网络前缀的路由.这叫作最长前缀匹配
这里引用书中的一个例子
- 假定某ISP已拥有地址块206.0.64.0/18.现在该ISP给某大学分配一个地址块206.0.68.0/22
- 然后这个大学再对本校的各系分配地址块,例如计算机系206.0.71.128/25
- 假定计算机系希望ISP把转发给计算机系的数据报直接发给计算机系而不要经过大学的路由器,但又不愿意改变自己使用的IP地址块
- 于是ISP路由器有以下两个项目,即206.0.68.0/22(大学)和206.0.71.128/25(计算机系)
- 现在假定ISP收到一个数据报,其目的IP地址为D=206.0.71.130.把D分别和路由表中这两个项目的掩码逐位相”与”(AND操作).
- 不难想,这个这两个项目肯定都是符合的,于是ISP选择具有最长网络前缀的IP地址进行转发.(即选择两个匹配结果中地址更具体的一个)
为了加快路由器对路由表的查找.通常是使用二叉线索树进行查找.
步骤如下:
由于唯一前缀一般都小于32位,于是树的深度一般都小于32层.
事实上在实际应用中.当你搜索到一个叶节点时,还必须将寻找匹配的目的地址和该叶节点的子网掩码进行逐位”与”运算,看结果是否与对应的网络前缀相同.若匹配,就按下一条的接口转发该分组.否则,就对齐该分组.