zoukankan      html  css  js  c++  java
  • MPLS TE SPF Example 2

    在MPLS TE的流量工程中,分为下面几个方面:
    1,信息的发布
    2,路径的计算和建立
    3, 隧道中的流量转发。
        那么这里要了解路径的计算和建立,首先要了解SPF是如何工作的,然后再看什么是CSPF(constrained SPF).才能对路径的建立计算有一个很好的认识。再说详细一点,为什么要学SPF计算路径的原理?
    因为对于MPLS TE流量工程来说,路径的选择和计算,是很重要的。
    那么协议依据什么来进行路径的计算呢?是根据CSPF--constrained SPF来进行路径的自动计算的。
    但是如果要学习CSPF,SPF计算原理是基础。
    所以该文档主要阐述了SPF计算的工作原理,为后续CSPF奠定一定的基础。
    在OSPF中,SPF最短路径算法是核心算法。以链路的耗费cost为优先准则.就以TE支持的IGP协议来说,只有OSPF和ISIS两种IGP协议,而OSPF应该范围又比ISIS广太多了,懂OSPF的同学们和会用OSPF的人数远远大于ISIS,所以这里更有必要好好复习一下 SPF--shorest path tree的选路原理了。
    这里再复习一下SPF的算法,理解了SPF以后,CSPF就是在SPF的基础上进化而来的。那么对于理解MPLS的CSPF是又很大帮助的。

    上面的表格就是根据SPF算法得出的最短路径。
    实际上这就是一个拓扑对于路由器A来说
    对于每个路由器来说,都是由三元组表形成的拓扑。
    {路由器,距离,下一跳}
    {router,distance,nexthop}
    什么是PATH列表和TENT列表:
    PATH list:
    一个在通往目的的最短路径上得节点列表。对于路径列表很重要的一点就是列表记录了到目的最短路径。
    TENT list:
    可能在也可能不在目的地址的最短路径上得下一跳列表。这个列表称为TENT list.
    每个路由器都运行下面的算法:(SPF)---原理
    对于路由器A来说:
    第一步:
    把自己列入PATH列表,并且距离为0,下一跳也是自己。路由器上面运行SPF时,把自己当做self或者根节点,因为这个节点是最短路径树(shortest-path tree)的跟节点.
    第二步:
    从path列表中取出刚放入的节点。这个节点称为路径节点path node.
    查找路径节点的邻居列表,把列表中的每一个邻居加入TENT列表,下一跳都设置为PATH节点。
    第三步:
    在TENT表项中找到代价最低的邻居,把邻居加入Path列表中,重复第二步,直到TENT表项为空。
    根据上面的步骤,我整理了一下,得出了下面的结论,和资料上的结论一样:

    最后所有的TENT表项全部清空,到此,对于路由器A的所有最短路径已经得出,结果会从PATH list里面进行提取。
    最后得到的结论是:

    注意:
    这里我的个人理解,凡是从tent表中删除的表项,如果以后还有其他的邻居需要用到该下一跳一律作废。
    这就是为什么{D,14,C}这个表项没有出现过的原因,因为前面{A,10,C}已经删除过了。
    最后,完成SPF计算后路由器A眼中的网络为:

    有了SPF的路径计算原理,对于接下来的CSPF原理学习会有很大的帮助.基本上差不多,CSPF实际上是在SPF的基础上开发而成。

  • 相关阅读:
    Ueditor之SAE移植
    SAE flask及其扩展 bug指南
    SAE 安装未包含的第三方依赖包
    Bootstrap 和 LESS
    Device.js——检测设备平台、操作系统的Javascript 库
    Flask 富文本编辑器
    DDoS攻击
    WPF之数据绑定
    参数测试
    总结 一下UML 类图的关系
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824081.html
Copyright © 2011-2022 走看看