当路由器收到一个待转发的数据报,(1.查找路由表)在从路由表中得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交数据链路层的网络接口软件。(2.用ARP得到硬件地址)网络接口软件负责把下一跳路由器的IP地址转换成硬件地址(必须使用ARP),3.并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。
分组转发算法:
(1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址位N.
(2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装成MAC帧,再发送此帧。),否则,就是间接交付,执行(3)
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则,执行(4)。
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则,执行(5)。
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行(6).
(6)报告转发分组出错。
特定主机路由:对特定的目的主机指明一个路由,这个路由就是特定主机路由。
路由器还可采用默认路由以减小路由表所占用的空间和搜索路由表所用的时间。