zoukankan      html  css  js  c++  java
  • 【计算机网络】第四章 网络层(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的转发表设置

     

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

  • 相关阅读:
    数据库操作
    用php输出心形曲线
    Hibernate入门(一)
    JavaScript中的三种弹窗
    java过滤器(过滤器排序)
    java过滤器(简化认证)
    Mysql中的外键分析(什么是外键,为什么要用外键,添加外键,主外键关联删除)
    java回调函数学习
    继承
    多态(一)
  • 原文地址:https://www.cnblogs.com/zhangyushuqing/p/9914548.html
Copyright © 2011-2022 走看看