路由算法
路由算法:寻找最小路径的算法
静态路由:
- 手工配置
- 路由更新慢
- 优先级高
动态路由:
- 路由更新快(定期更新,及时响应链路费用或网络拓扑变化)
全局信息:
- 所有路由器掌握完整的网络拓扑和链路费用信息
- E.g.链路状态(LS)路由算法
分散信息:
- 路由器只掌握物理相连的邻居以及链路费用
- 邻居间信息交换、运算的迭代过程
链路状态路由算法
Dijkstra算法
所有结点(路由器)掌握网络拓扑和链路费用
- 通过“链路状态广播”
- 所有结点拥有相同信息
计算从一个结点(“源”)到达所有其他结点的最短路径(获得该结点的转发表)
迭代:K次迭代后,得到到达k个目的结点的最短路径
符号:c(x,y)结点x到结点y链路费用;如果x和y不直接相连则为∞,D(v)从源到目的v的当前路径费用值,p(v)沿源到v的当前路径,v的前序结点,N':已经找到最小费用路径的结点结合
存在震荡可能
距离向量路由算法
令dx(y)为从x到y最短路径的费用(距离)
则dx(y) = min{c(x,v)(x到邻居v的费用)+dv(y)(从邻居v到达目的y的费用)}
Dx(y)=从结点x到结点y的最小费用估计
核心思想
每个结点不定时地将其自身的DV估计发送给其邻居
当x接收到邻居的新的DV估计时,即依据B-F更新其自身的距离向量估计
层次化路由
无法将任意规模网络抽象为一个图计算路由的原因
- 网络规模过大时路由表几乎无法存储,路由计算过程的信息交换量巨大,会淹没链路
- 难以管理自治,每个网络的管理可能都期望自主控制其网内的路由
层次路由
聚合路由器为一个区域:自治系统AS
同一AS内的路由器运行相同的路由器协议(算法)
- 自治系统内部路由协议
- 不同自制系统内的路由器可以运行不同的AS内部路由协议
网关路由器:位于AS“边缘’’,通过链路连接其他AS的网关路由器
AS互连
学习自中国大学生MOOC网