动态路由选择是指节点的路由选择要依靠网络当前的状态信息来决定,这种策略能较好的适应网络流量,拓扑结构的变化,有利于改善网络的性能。但是由于算法复杂,会增加网络的负担。动态路由选择包括独立路由选择、集中式路由选择和分布式路由选择三中方法。
(1)独立路由选择
独立路由选择算法也称局部延时路径选择,它的特点是:各节点根据本节点所搜集到的有关信息作出路由选择的决定,但是与其他节点不交换路由选择信息。
一种简单的独立路由选择算法是Baran在1964年提出的热土豆(hot potato)算法:当一个分组到来时,节点必须尽快脱手,将其放入输出队列长度最短的方向上排队,而不管该方向通向何方。
(2)集中式路由选择
像静态路由选择算法中的固定路由选择一样,集中式路由选择在每个节点上存储一张路由表。但与固定路由选择不同的是,固定路由选择算法中节点路由表由人工设置。而在集中式路由选择算法中节点路由表由路由控制中心(Router Control Center,RCC)定时根据网络状态计算,生成并分发到各相应节点。由于RCC利用了整个网络的信息,所以得到的路由选择是较为完整的,同时也减轻了各节点计算路由选择的负担。
(3)分布式路由选择
分布式路由选择算法是指所有节点定期地与其每个相邻节点交换路由选择信息。每个节点都存储一张路由表,而且此路由表都保持了与其他节点路由信息的同步。网络中每个节点拥有表中一项。每一项又分为两个部分:一部分是所希望使用的到达目的节点的输出链路;另一部分是估计到达目的节点所需要的延时或者距离。