【计算机网络】第四章 网络层(5)

八.路由算法

1. 路由与转发

1)路由算法(协议)确定去往目的网络的最佳路径

2)转发表确定在本路由器如何转发分组

2. 网络抽象:图

 

1)应用:如P2PNpeers集合,ETCP连接集合

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)为结点xy的链路费用,如果xy不相连则为正无穷

  ·D(v):从源到目的v的当前路径费用值

  ·p(v):沿从源到目的v的当前路径,v的前序结点

  ·N’:已经找到最小费用路径的结点集合

5)算法描述:

 

6)举例:

 

·u的最终最短路径树

 

·u的最终转发表

 

7)讨论

  ·算法复杂性

    - n个结点,每次迭代需要检测所有不在集合N中的结点w

    - n(n+1)/2次比较,复杂度为O(n²)

    - 更高效的实现为O(nlogn)

  ·存在震荡的可能性:假设链路费用是该链路承载的通信量

 

 

5. 距离向量路由算法(DV):Bellman-Ford动态规划方程

(1)dx(y) := xy最短路径的费用(距离),则:

 

(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的转发表设置

 

  ·热土豆路由:将分组发送给最近的网关路由器

posted @ 2018-11-06 12:09  长安蒹葭  阅读(370)  评论(0编辑  收藏  举报