在确定最佳路径的过程中,路由选择算法需要初始化和维护路由选择表( routing table )。路由选择表中包含的路由选择信息根据路由选择算法的不同而不同。一般在路由表中包括这样一些信息:目的网络地址,相关网络节点,对某条路径满意程度,预期路径信息等。
为了成功地转发一个数据包,IP路由算法根据路由表选择 下一跳的目的地址。
IP路由算法如下:
假设一个 待转发的IP报文的目的地址是D, 网络前缀是N:
If (N属于某直连网络)
把IP报文直接转发
else if(路由表包含目的为D的路由)
根据路由表中的下一跳转发IP报文(如果存在多条匹配的路由,则选择子网掩码长度最长的路由转发)
Else if(路由表中存在缺省路由)
根据缺省路由转发IP报文
Else
向源主机 发送ICMP 出错消息,通知IP报文不能被转发。
路由器之间传输多种信息来维护路由选择表,修正路由消息就是最常见的一种。修正路由消息通常是由全部或部分路由选择表组成,路由器通过分析来自所有其他路由器的最新消息构造一个完整的网络拓扑结构详图。链路状态广播便是一种路由修正信息。