分类编址IP的分组转发算法:(目的网络由目的地址即可确定) 1) 提取目的网络地址。从IP数据报的首部提取目的IP地址D,根据目的IP的网络类别位提取出目的网络地址N; 2) 直接交付。若N是与此路由器直接相连的某个网络地址,则进行直接交付,即直接把数据报交付给目的主机(包括把目的主机的IP地址D转换为具体的MAC地址,把数据报封装为MAC帧,再发送此帧);否则执行3); 3) 特定主机路由。若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行4); 4) 指定网络路由。若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行5); 5) 默认路由。若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行6); 6) 出错。报告转发分组出错。 划分子网IP的分组转发算法:(目的网络由目的地址和各个网络的子网掩码与其网络地址共同确定) 1) 提取目的IP地址。从IP数据报的首部提取目的IP地址D; 2) 直接交付。对与此路由器直接相连的网络逐个进行检查:用各网络的子网掩码和目的IP地址D逐位相与,若结果和相应的网络地址匹配,则进行直接交付,即直接把数据报交付给目的主机(包括把目的主机的IP地址D转换为具体的MAC地址,把数据报封装为MAC帧,再发送此帧);否则执行3); 3) 特地主机路由。若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行4); 4) 指定网络路由。对路由表中的每一项(行),用其中的子网掩码和IP地址D相与,若结果和该行的目的网络地址相匹配,则把数据报传送给路由表中该行所指明的下一跳路由器;否则执行5); 5) 默认路由。若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行6); 6) 出错。报告转发分组出错。 CIDR IP的分组转发算法:(目的网络由目的地址和各个网络的网络前缀共同确定) 1) 提取目的IP地址。从IP数据报的首部提取目的IP地址D; 2) 直接交付。对与此路由器直接相连的网络逐个进行检查:用各网络的地址掩码和目的IP地址D逐位相与,若结果和相应的网络地址匹配,则进行直接交付,即直接把数据报交付给目的主机(包括把目的主机的IP地址D转换为具体的MAC地址,把数据报封装为MAC帧,再发送此帧);否则执行3); 3) 特地主机路由。若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则执行4); 4) 指定网络路由。使用最长前缀匹配方法判断目的网络是否在路由表中(使用二叉线索(类似霍夫曼编码)查找路由表:与唯一前缀匹配找到可能的目的网络前缀,与网络前缀匹配确定最终的目的网络),若目的网络在路由表中,则把数据报传送给路由表中目的网络所在项目所指明的下一跳路由器;否则执行5); 5) 默认路由。若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行6); 6) 出错。报告转发分组出错。 说明: 1) 由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络,这种地址聚合称为路由聚合,路由聚合使得路由表中的一个项目可以表示原来传统分类地址的很多个路由(即把目的网络的网络前缀具有公共前缀,且下一跳IP地址相同的多个路由聚合为一个下一跳IP地址保持不变,但目的网络的网络前缀变为参与聚合的目的网络的网络前缀的公共前缀的路由),路由聚合也称为构成超网 2) 三类分组转发算法的流程框架相同,唯一的区别是确定目的网络的方法不同; |