路由选择
路由选择
路由选择算法
路由选择算法(routing algorithm):网络层软件的一部分,完成路由功能,为转发提供路线。
路由的原则:
- 正确性(correctness):算法必须是正确的和完整的。
- 简单性(simplicity):算法在计算机上应简单。
- 健壮性(robustness):算法应能适应通信量和网络拓扑的变化。
- 稳定性(stability):产生的路由不应该摇摆。
- 公平性(fairness):对每一个站点都公平。
- 最优性(optimality):某一个指标的最优,时间上,费用上,等指标,或综合指标。
链路状态路由选择(link state routing)
LS路由的基本工作过程:
- 发现相邻节点,获知对方网络地址
- 测量到相邻节点的代价(延迟,开销)
- 组装一个LS分组,描述它到相邻节点的代价情况
- 将分组通过扩散的方法发到所有其它路由器
- 通过Dijkstra算法找出最短路径(这才是路由算法)
距离矢量路由选择(distance vector routing)
距离矢量路由选择的基本思想:
各路由器维护一张路由表
各路由器与相邻路由器交换路由表
根据获得的路由信息,更新路由表
算法对比
- 消息复杂度:DV更好
- LS:局部的路由信息;全局传播。
- DV:只和邻居交换信息,全局的路由信息,局部传播。
- 收敛时间:LS更好
- LS:O(n2) 算法。
- DV:收敛较慢,可能存在路由环路。
- 健壮性:LS更好
- LS:错误信息影响较小,局部,路由较健壮
- DV:DV 节点可能通告对全网所有节点的不正确路径代价。
子网自治系统内部的路由选择
RIP:
基于距离矢量算法的一种路由实现
步骤:
- 每条链路cost=1,计算出邻居的跳数
- DV每隔30秒和邻居交换DV,通告(每个通告包括:最多25个目标子网)
- 最后计算出路由
OSPF:
基于链路状态算法的一种路由实现
步骤:
- LS 分组在网络中(一个AS内部)分发
- 全局网络拓扑、代价在每一个节点中都保持
- 路由计算采用Dijkstra算法
ISP之间的路由选择
BGP:
自治区域间路由协议“事实上的”标准
平面路由的问题:
- 规模巨大的网络中,路由信息的存储、传输和计算代价巨大
- 管理问题:
- 不同的网络所有者希望按照自己的方式管理网络
- 希望对外隐藏自己网络的细节
BGP将互联网分成一个个AS(路由器区域),解决了平面路由的问题。
BGP 提供给每个AS以以下方法:
- eBGP: 从相邻的ASes那里获得子网可达信息
- iBGP: 将获得的子网可达信息传遍到AS内部的所有路由器
- 根据子网可达信息和策略来决定到达子网的“好”路径
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 goMars的学习随记!
评论