八.路由算法
1. 路由与转发
(1)路由算法(协议)确定去往目的网络的最佳路径
(2)转发表确定在本路由器如何转发分组
2. 网络抽象:图
(1)应用:如P2P,N是peers集合,E是TCP连接集合
(2)费用
·c(x, x’) = 链路(x, x’)的费用
·每段链路的费用可以总是1,或者是带宽的倒数、拥塞程度等
·路径费用:(x1, x2,..., xp) = c(x1, x2) + c(x2, x3) +...+c(xp-1, xp)
·关键问题:求源到目的的最小费用路径(路由算法)
3. 路由算法分类
(1)静态 vs 动态
·静态路由:手工配置、路由更新慢、优先级高
·动态路由:路由更新快、定期更新、及时响应链路费用或网络拓扑变化
(2)全局 vs 分散
·全局信息:所有路由器掌握完整的网络拓扑和链路费用信息(如链路状态路由算法)
·分散信息:路由器只掌握物理相连的邻居及链路费用,在此基础上进行邻居间信息交换、迭代运算(如距离向量路由算法)
4. 链路状态路由算法(LS):Dijkstra算法
(1)所有结点掌握网络拓扑和链路费用:通过“链路状态广播”,所有结点拥有相同信息
(2)计算从一个结点到所有其他结点的最短路径:获得该结点的转发表
(3)迭代:k次迭代后得到到达k个目的结点的最短路径
(4)符号
·c(x, y)为结点x和y的链路费用,如果xy不相连则为正无穷
·D(v):从源到目的v的当前路径费用值
·p(v):沿从源到目的v的当前路径,v的前序结点
·N’:已经找到最小费用路径的结点集合
(5)算法描述:
(6)举例:
·u的最终最短路径树
·u的最终转发表
(7)讨论
·算法复杂性
- n个结点,每次迭代需要检测所有不在集合N’中的结点w
- n(n+1)/2次比较,复杂度为O(n2)
- 更高效的实现为O(nlogn)
·存在震荡的可能性:假设链路费用是该链路承载的通信量
5. 距离向量路由算法(DV):Bellman-Ford动态规划方程
(1)令dx(y) := 从x到y最短路径的费用(距离),则:
(2)举例
(3)重点:结点获得最短路径的下一跳,该信息用于转发表中
(4)x维护向量(DV):Dx = [Dx(y): y ? N],Dx(y) = 从结点x到结点y的最小费用估计
(5)核心思想
·每个结点不定时地将其自身的DV估计发送给其邻居
·当x接收到邻居的新DV估计时,即依据B-F更新其自身的距离向量估计:Dx(y) <- minv{c(x, v) + Dv(y)} for each node y ? N
·Dx(y)将最终收敛于实际的最小费用dx(y)
(6)特点
·异步迭代:局部链路费用改变和来自邻居的DV更新引发局部迭代
·分布式:每个结点的DV发生变化时才通告给邻居
(7)算法描述:每个结点循环等待 -> 重新计算 -> 通告
(8)举例
(9)链路费用变化
(10)无穷计数问题
·毒性逆转:如果一个结点z到达目的x的最小费用路径通过某个邻居,则通告给该邻居结点到达目的的距离为无穷大
·定义最大度量:若有效费用值为15跳,那么16跳表示正无穷
6. 层次路由
(1)提出理由
·大规模网络抽象成图,路由器计算的信息交换量巨大,会淹没链路
·每个网络的管理期望自治其网内路由
(2)什么是层次路由
·聚合路由器为一个区域:自治系统AS
·同一AS内的路由器运行相同的路由协议(算法):自治系统内部路由协议
·网关路由器:位于AS边缘,通过链路连接其他AS网关路由器
(3)互连的AS:转发表由AS内部路由算法与AS间路由算法共同配置
(4)自治系统间路由任务:假设AS1内某路由收到一个目的地址在AS1外的数据报
·学习到哪些目的网络可以通过AS2到达,哪些可以通过AS3到达
·将这些网络可达性信息传播给AS1内部路由器
·例:1d的转发表设置
·热土豆路由:将分组发送给最近的网关路由器
原文地址:https://www.cnblogs.com/zhangyushuqing/p/9914548.html