IP层转发分组流程
1、在路由表中,对每一条路由最主要的是两个信息:(目的网络地址,下一跳地址)。并且这个思路是这样的:
(1)IP数据报最终一定能找到目的主机所在目的网络上的路由器(可能需要通过多次的间接交付)。
(2)只有到达最后一个路由器时,才试图向目的主机直接交付。
2、当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交数据链路层的网络接口软件。网络接口软件负责把下一跳路由器的IP地址转换成硬件地址(使用ARP),并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。
3、综上,分组算法如下:
(1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
(2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址、把数据报封装为MAC帧、再发送此帧);否则就是间接交付,执行(3)。
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明下一跳路由器;否则,执行(4);
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(5);
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6);
(6)报告转发分组出错。
Ps:未完待续~~~