SPF算法简单解析过程
在同步以后,每个路由器的链路状态数据库如下表:
在SPF计算中,每个路由器维护了两个列表:
a.一个在通往目的地的最短路径上的结点列表,这个表也成为路径类表(PATH list)。
b.可能在也可能不在到达目的地的最短路径上的下一跳类表,这个表称为TENTative或TENT列表。
算法如下:
1.把自己列入PATH列表(每台路由器以自己为根结点就是这样由来的),并且距离为0,下一跳也是自己。
2.从PATH列表中取出刚放入的结点,这个结点称为路径结点,查找路径结点的邻居列表,把列表中的每一个邻居加入到TENT列表,下一跳都设置为TENT结点自己,除非该邻居已经在TENT或PATH列表并且代价较小。把加入TENT列表的结点称为TENT结点。把到达TENT结点的代价设为从根结点的代价加上从PATH结点到TENT结点之和。如果加入的结点在TENT列表中已经存在,但是代价较大,就用当前的结点取代代价较高的结点。
3.在TENT列表中找到代价最低的邻居,把邻居加入到PATH列表中,重复第二步。如果TENT列表为空,就停止。
实例:计算上图中路由器A的路由表项。
1.把自己加入PATH列表中,距离为0,下一跳是自己。路由器A的数据库如下表:
2.将邻居B、C和D加入TENT列表中,下一跳为自己。
3.D的代价小于C的3和B的6,将{D,2,D}移到PATH列表中。
4.检查D的邻居。路由D到C的链路代价是5,A-D-C的代价为2+5=7,大于A-C-C的代价3,所以将{C,3,C}加入到PATH列表中:
5.检查C的邻居。路由C到B的链路代价是2,A-C-B的代价为3+2=5,小于A-B-B的代价6,所以在TENT列表中删除{B,6,B},添加{B,5,C}:
6.将{B,5,C}加入PATH列表,这时A的所有列表已经在PATH列表中了,TENT列表为NULL,停止计算:
7.这时候A的PATH列表就成了它的路由表项:
SPF算法简单解析过程相关推荐
- EAST算法简单解析
前言 最近写了很多算法代码的解析,但是却很少写原理的解析,这段时间学得快忘得也快,所以寻思这几天写几篇学过算法的原理,可能不是很详细但是一定很简单,利于理解. 算法介绍 EAST: An Effici ...
- HTTP请求解析过程 (简单概括)
1.域名解析 用户输入网址,由域名系统DNS解析输入的网址: 2.TCP的3次握手 通过域名解析出的IP地址来向web服务器发起TCP连接请求,如果3次握手通过,则与web服务端建立了可靠的连接: 3 ...
- 邻近算法(KNN)原理简单解析
邻近算法(KNN)原理简单解析 一.什么是邻近算法 1.1简介 1.2核心思想 1.3 算法流程 1.4 优缺点 二.实例演示KNN算法 一.什么是邻近算法 1.1简介 邻近算法,或者说K最近邻(KN ...
- 当逻辑表达式或者算法的计算过程冗长的时候该如何做的简单可读
当逻辑表达式或者算法的计算过程冗长的时候,类似下面的代码,会让我们阅读和理解的过程非常痛苦,例如: if( browser.toUpperCase().indexOf("SAFARI&quo ...
- adaboost算法java_Adaboost 算法实例解析
Adaboost 算法实例解析 1 Adaboost的原理 1.1 Adaboost基本介绍 AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由 ...
- dns解析过程_DNS原理总结及其解析过程
点击上方蓝色字体,关注我们 前言 域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,使人更方便地访问互联网.DN ...
- 机器学习算法实现解析:libFM之libFM的训练过程之SGD的方法
本节主要介绍的是libFM源码分析的第五部分之一--libFM的训练过程之SGD的方法. 5.1.基于梯度的模型训练方法 在libFM中,提供了两大类的模型训练方法,一类是基于梯度的训练方法,另一类是 ...
- TypeScript 里的 module 解析过程 - Module Resolution
Module Resolution 模块解析是编译器用来确定导入所指内容的过程.考虑像 import { a } from "moduleA"; 这样的导入语句.为了检查 a 的任 ...
- 索引算法原理解析(B-tree以及磁盘存储原理)
刚开始学习的时候,百度去查,但发现好多说得太复杂不好理解,结合各个文章总结一下(建议大概看文字,不理解不要紧,然后再看图的执行步骤然后在结合文字,这样一切就清晰好多) B-tree,B是balance ...
- python函数教程:Python递归函数 二分查找算法实现解析
这篇文章主要介绍了Python递归函数 二分查找算法实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.初始递归 递归函数:在一个函数里在调 ...
最新文章
- java实现stack search_Java Stack search()用法及代码示例
- poj2186(强连通分量)
- Python 还能实现图片去雾?FFA 去雾算法、暗通道去雾算法用起来!(附代码)...
- linux rm(remove) 命令详解
- python opencv给证件照换底色
- 一个wxWidgets判断注册表键值的函数
- YTU 1009: University
- java开发中常用到小方法
- 物理层上/下行每个功能块需要的信息
- #史上最详解# IIS服务器查看log日志
- [NLP]OpenNLP词形还原器(Lemmatizer)的使用
- cookie、sessionStorage、localStorage的区别
- 121、买卖股票的最佳时机(python)
- 操作系统学习-知识点总结(持续更新)
- 暴风影音5完整版(集成Real解码器) 增强去广告版
- 华为2019软件精英挑战赛-CodeCraft-2019大佬开源代码集合
- oracle坏块,教你手把手修复oracle坏块(一)!!!
- 【问题解决】Linux服务器免密信任 远程执行
- 十、RabbitMQ发布确认高级
- postman传布尔类型的值传不进去