路由选择算法
基本概念
路由 确定发送方到接收方通过路由器网络的好路径;
源路由器 源主机的第一跳路由器
目的路由器 目的主机的第一跳路由器
路由选择算法
- 给定一组路由器及连接路由器的链路组成的图,寻找从源路由器到目的路由器的最优路径;
- 最优路径通常指具有最低费用的路径;
- 路径费用反映路径的物理长度,链路速度,金融费用等因素;
- 实际路由选择算法还考虑策略问题,即存在组织A的路由器可能拒绝转发组织B的路由器等情况;
- 抽象的路由选择算法在一个带权有向图中,寻找给定节点对间的带权最短路径;
路由选择算法分类
分类一 集中式&分布式
-
全局式路由选择算法
路由器用完整的全局性网络信息计算源到目的地的带权最短路径;
全局式算法要求在真正开始计算前,每个路由器都获取全局的网络信息;
实践中,全局式算法常被称作链路状态算法 -
分布式路由选择算法
路由器以分布式算法迭代地计算出源到目的地的带权最短路径;
没有节点拥有全局的完整网络信息;
每个节点仅有其邻接节点发来的信息和到邻接节点的链路信息即可工作;
每个节点迭代计算并与其邻接节点交换信息,逐渐计算出到达某目的节点或一组目的节点的带权最短路径;
分布式路由选择算法的实例是距离向量算法;
分类二 静态&动态
-
静态路由选择算法
路由随时间缓慢变化,通常是通过人工干预更新的;
人工配置的路由出于对某些因素的考量,往往优先级较高; -
动态路由选择算法
能够在网络流量负载或拓扑结构变化时自动地改变路径;
通常定期更新,路由更新快,及时响应链路费用或网络拓扑变化;
分类三 负载敏感&负载不敏感
-
负载敏感算法
链路权重动态变化——反映出底层链路的当前拥塞水平;
早期路由选择算法是负载敏感的,故而遇到了很多难题; -
负载迟钝算法
链路费用不明显反映其当前或近期的拥塞水平;
当今因特网路由选择算法是负载迟钝的;
路径震荡问题
- 路径震荡问题存在于所有根据拥塞测度链路权重的路由选择算法中;
- 即状态t0下算法选择了路径1,使得该路径拥塞;这导致状态t1下算法选择路径2,使得路径2拥塞;这又使得算法在t2下选择路径1,最终导致反复震荡;
- 解决方案是确保路由器运行路由选择算法的时机不同步;