使用子网时的分组转发流程
当使用子网划分之后,路由表中每一项都包含三个内容:目的网络地址、子网掩码、下一跳地址
分组转发算法如下:
- 先从要转发的数据报中,提取出目的IP地址D,注意D包含了网络号和主机号
- 首先判断,D是否与路由器直接相连,即,将每个与路由器直接相连的网络的子网掩码,与D进行“与”操作,若得出的结果和与路由器直接相连的网络号匹配,就直接交付,将数据报交给数据链路层,并填入新的源MAC地址和目的MAC地址。
- 若D不与路由器直接相连,则查看路由表中是否有目的地址为D的特定主机路由,若有从相应的接口转发出去,若没有执行第四步操作
- 对路由表中的每一行,使用子网掩码和D进行与操作,若结果与相应的网络地址匹配,则从相应的接口转发出去,若不存在这样的路由,执行第五步操作
- 若主机中有默认路由,则转发给默认路由,否则报告分组转发错误
当使用CIDR构成超网时
路由表中每一项只包含两个内容:网络前缀,下一跳地址,这样一来就有可能出现在查找路由表时得到多个匹配的结果,我们应该从匹配结果中选择具有最长前缀匹配的路由。