zoukankan      html  css  js  c++  java
  • ISIS SPF算法简单过程

    一、Bellman-Ford算法:每个节点基于直连邻居的开销再加上邻居通告的其他路由器的开销来计算路由。
    算法本身会有环路产生的可能
    收敛慢
    占用资源少

    二、什么是SPF  
    也叫做Dijkstra算法(Shortest Path First)
    目的在于计算到达网络拓扑中其它路由器的最短路径
    通过计算得到的最短路径树SPT (Shortest Path Tree),我们可以建立路由表 (路由信息表 Routing Information Base )

    三、SPF创建并维护的三张表

    四、算法执行,重复执行以下三步N次
    从tentative list 的所有路由器中找出离自己(根)最近的节点,并把它从tentative list 移到 paths list
    发现此节点通告的所有前缀并安装到RIB中
    发现此节点的所有邻居并把这些邻居移动到 tentative list 中

    在IS-IS中,IP前缀是最短路径树上的叶子
    不使用IP 前缀来计算和建立SPT
    使用CLNS System-ID 来标记路由器


    i--SPF(Incremental SPF)
           >算法
                  >树中不改变的部分保持原样
                  >重新计算树中受影响的部分
                  >把受影响的部分和保持原样的部分整合到一起
           >为了实现 i-SPF,我们必须
                  >维护父列表 parent list
                  >维护邻居列表 neighbour list
                  >使用更多的内存
            >i-SPF的计算时间是不可预测的,但是 i-SPF 比完全 SPF要快
            >发生改变的地方离根越远,执行i-SPF来更新SPF所需的时间越短
            >如果发生变化的地方离执行SPF计算的节点很近,那么i-SPF算法不会带来太多的好处


    *SPF实例

    z 刚开始时

    z 因为A是根,所以把它移动到Path list

    z 把A的邻居移动到 Tentative list

    z 把 C,3,S1 移动到 Paths list
    z 把C的邻居移动到 Tentative list

    z 把 E,3,S3 移动到 Paths list
    z 把 E的邻居移动到Tentative list

    z 把 B,5,S0 移动到Paths list
    z 把 B的邻居移动到 Tentative list

    z 把 D,5,S3 移动到 Paths list
    z 把D的邻居移动到 Tentative list

    z 把 F,11,S0 和 F,11,S3 移动到 Paths list

    z 因为Tentative list 已经空了,所以SPF计算结束

  • 相关阅读:
    A1023 Have Fun with Numbers (20分)(大整数四则运算)
    A1096 Consecutive Factors (20分)(质数分解)
    A1078 Hashing (25分)(哈希表、平方探测法)
    A1015 Reversible Primes (20分)(素数判断,进制转换)
    A1081 Rational Sum (20分)
    A1088 Rational Arithmetic (20分)
    A1049 Counting Ones (30分)
    A1008 Elevator (20分)
    A1059 Prime Factors (25分)
    A1155 Heap Paths (30分)
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824185.html
Copyright © 2011-2022 走看看