4.3划分子网和构造超网

4.3.1划分子网

1、从两级IP到3级IP

早期IP地址的设计不合理:

  • 1、IP地址的利用率很低:A、B、C三类IP地址所包含的主机数量不够灵活
  • 2、给每一个物理网络分配一个网络号,会使路由表变得太大,网络性能变坏:每一个路由器应该能够从路由表查出怎么样到达其他网络的下一跳路由器。这会使得,路由表中的项目很多,路由器之间定期交换的路由信息也急剧增加
  • 3、两级IP不够灵活:想办法使得本单位可以灵活地增加本单位的网络。

   划分子网(子网寻址 或者叫 子网路由选择):

  • 一个拥有许多物理网络的单位,可以将所属的物理网络划分为若干个子网。但是这个单位对外仍然表现为一个网络。
  • 划分子网的方法是从网络的主机号中借用若干位作为子网号,这样两级IP地址在本单位内部变为三级IP地址

                                                            IP地址::={<网络号>,<子网号>,<主机号>}

  • 外部网络发送给本网的数据报,是根据网络号寻找路由,但本网路由器收到数据报之后,按照目的网络号和子网号寻找主机。

2、子网掩码

现在互联网规定无论做没做子网划分,路由表中都必须保存有子网掩码。为什么?

因为从IP地址无法看出源主机、目标主机所在的网络是否划分了子网掩码。所以使用子网掩码的好处是:只要把子网掩码和IP地址进行逐位的AND运算,就可以得出网络地址

默认子网掩码 :默认子网掩码的1的位置和IP地址中的网络号字段net-id正好相对应。如A类地址的默认子网掩码是255.0.0.0

B类地址的子网划分方法

subnet-id 有 n 位,则共有2^n中可能的排位,除去全为0或者全为1这两种情况,可划分的子网号有2^n-2中(B类网络中 n!=0\1\15\16),主机个数也是类似的。

ps:

1、 为什么n不等于0、1、15、16?在B类网络中subnet-id的位数占0或者16位显然没有意义,如果占1位或者15位呢?2^1-2 = 0,可划分的子网数或者主机数为0;

2、CIDR广泛的使用,全0和全1的子网号也可以使用了。

3、十进制数转二进制数的计算方法 参考   十进制转二进制

4.3.2 使用子网时的分组转发

现在路由表中中包含有三样(目的网络地址 子网掩码 下一跳地址

分组转发算法

  • 1、提取目的IP地址为D
  • 2、判断是否是直接交付,对其直接连接的网络逐个检查,用各网络的子网掩码和 D 相 AND,确定能否交付。没有匹配项,则
  • 3、目标地址是不是特定主机路由?否则
  • 4、对路由表中的每一行,进行匹配检查,是否成功?否则
  • 5、是否有默认路由?否则
  • 6、报告转发分组错误。

4.3.3 无分类编址 CIDR

1、网络前缀

仍然面对的三个问题

  • B类地址在1992年已经分配近一半,眼看着就将分配完!
  • 互联网主干网上的路由表的项目数急剧增长
  • IPv4地址在2011年已经耗尽

无分类域间路由选择CIDR 的特点

1、CIDR消除了传统的A类、B类、C类地址以及划分子网的概念,使IP地址又回到了两级编址

                                                 IP地址 ::={<网络前缀>,<主机号>};

CIDR记法(又称 斜线记法)即在IP地址的后面加上斜线‘/’,然后写上网络前缀的位数。CIDR还有很多记法,比如,忽略低位的连续0,10.0.0.0/10 记作10/10。又比如,在网络前缀后面加上*:00001010 00*,*表示IP主机号,可以是任意值。

2、CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”,所以我们只需要知道CIDR中的任意一个IP地址就可以知道地址块中的最小和最大地址,以及地址块中的地址数。

地址掩码:为了方便路由选择,CIDR使用32位的地址掩码,虽然CIDR不使用子网,但是分配到一个CIDR地址块的单位,仍然可以在本单位内根据需要划分出一些子网,只是网络前缀要长一些。

路由聚合:一个CIDR地址块中有许多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址聚合称为路由聚合。它使得路由表中的一个项目可以表示传统分类地址的很多个路由,路由聚合也称为构成超网

2、最长前缀匹配

现在路由表中的每个项目中由“网络前缀”和“下一跳地址”组成。但是查找的时候,可能会出现多个匹配项,此时,应当从匹配结果中选择具有最长网络前缀的路由。因为网络地址越长,匹配到的网络地址更具体。

3、使用二叉线索查找路由表

使用二叉线索查找,就是将路由表中的每一个项目组织成二叉树中的一个路径(从根节点到叶节点是一个网络前缀(的唯一前缀),这里使用唯一前缀来表示每一个网络前缀,有利于减小二叉树的深度),可见这棵树的深度最多为32层(多数情况不到32层),每一层对应于IP地址的一位。另外每一颗二叉线索树的叶节点中都保存有对应的网络前缀和子网掩码

猜你喜欢

转载自blog.csdn.net/qq_24888697/article/details/81976466