s5-14 链路状态路由选择
为什么DV逐渐让位于LS?
DV
站的不高,看得不远
完全相信邻居
LS
想办法站得高,看更远
多高、多远?
怎么做?
链路状态路由(Link State)
主要思想
发现 它的邻居节点们,了解它们的网络地址
设置 到它的每个邻居的成本度量
构造 一个分组,包含它所了解到的所有信息
发送 这个分组给所有其他的路由器
计算 到每个路由器的最短路径
发现邻居节点
当一个路由器启动的时候,在每个点到点的线路发送一个特
别的HELLO分组
设置链路成本
为了决定线路的开销,路由器发送一个特别的 ECHO 分组,
另一端立刻回送一个应答
通过测量往返时间(round-trip time) ,发送路由器可以获得
一个合理的延迟估计值
为了得到更好的结果,可多次测量,取均值
一种常用的选择
与链路带宽成反比
构造链路状态分组
链路状态分组构造后被发送给其他的路由器,分组中包含这些信息:
1 发送方的标识(ID of the sender)
2 序列号(sequence number )
3 年龄(age )
4 邻居列表(list of neighbors )
5 到邻居的成本/量度(delay to each neighbor )
应该什么时候构造分组?
周期性地构造和发送,或者有特别的事件发生时
构造,比如某条线路或邻居down掉了
发布链路状态分组
基本算法:
每个分组都包含一个序列号,序列号随着新分组产生而递增
路由器记录下他看见的所有 (源路由器,序列号)对
当一个的新的分组到达时,路由器根据它的记录:
如果该分组是新的,就被从除了来线路外的所有其他线路转
发出去 ( flooding,泛洪)
如果是重复分组,即被丢弃(喜新厌旧)
如果该分组的序列号比对应的源路由器发送的到过此地的分
组的最大序列号还小,则该分组被当作过时的信息而被拒绝
基本算法遇到的问题:
序列号回转,引起新老分组识别混淆
解决办法:使用 32-bit 的序列号,即使每秒产生一个分组,也
需要137年才发生号码回转
如果一台路由器崩溃,那么他将丢失自己的序列号记录,如果他
再从0开始,新分组将被当作旧分组被拒绝
解决上述的路由器崩溃和序列号损坏的方法是:每个分组的
序列号之后是年龄(age) ,并且每秒钟年龄减1
当年龄为零 ( zero )时,来自该路由器的信息被丢弃
通常地,每隔一段时间,如10秒钟,一个新分组就会到来,
所以,只有路由器down机才可能导致超时( 或者,连续6个
间隔因为丢失,没有收到新的分组)
一些改进让基本算法更加健壮:
当一个链路状态分组到达某个路由器时,它首先被放到一个保留
区中等待一段时间
如果来自相同路由器的另一个分组到达了,这两个分组的序列号
会被比较:
如果相等,是重复分组,丢弃
如果不相等,旧的那个被丢弃
为了防止路由器到路由器的线路发生错误,所有的链路状态分组
都要被确认
当一条线路空闲的时候,路由器扫描保留区,以便选择一个分组
或确认,并将其发送出去
计算新的路由路径
一旦一个路由器获得了全部的链路状态分组就可以构造出全
网络图来了(Graph)
现在,可以使用最短路径算法来计算路由器之间的最短路径
计算结果是一棵树,会形成相应的路由,安装在路由表中,
引导数据分组的转发
链路状态路由选择的基本原理
发现邻居
设置成本
构造LSA
分发LSA
计算
s5-14 链路状态路由选择的更多相关文章
- OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络 思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10 通告网络接 ...
- LwIP:处理链路状态改变
[文/告别年代 Email:byeyear@hotmail.com] 重大修订记录 ----------------------------------------- 2016.11.03 感谢@ ...
- 【ISIS(中间系统到中间系统)路由链路状态信息协议初识】
ISIS单区域的基本配置 一:根据项目需求,考虑到组网的规模和条件,部署ISIS单区域的拓扑图如下: 二:配置 1:首先对RTA进行配置,在系统视图创建ISIS进程:进入ISIS配置视图,指定IS的级 ...
- rip是典型的距离矢量动态路由协议。Ospf是链路状态型的协议
网络工程师十个常见面试问题-看准网 https://m.kanzhun.com/k-mianshiwenti/1465113.html 两者都属于IGP协议,rip是典型的距离矢量动态路由协议.Osp ...
- 3.OSPF协议及链路状态算法
OSPF的特点: 1.使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器.最终整个区域内所有路由器都得到了 ...
- Dijkstra链路状态选路算法
- ansible检测链路状态和切换状态
控制机 ansible.cfg callback_plugins = /usr/share/ansible/plugins/callback:/opt/ansible/plugins/callback ...
- H3C 显示OSPF的链路状态数据库
- [Network] 计算机网络基础知识总结
计算机网络学习的核心内容就是网络协议的学习.网络协议是为计算机网络中进行数据交换而建立的规则.标准或者说是约定的集合.因为不同用户的数据终端可能采取的字符集是不同的,两者需要进行通信,必须要在一定的标 ...
随机推荐
- Visual Studio 2015 自动生成 的大文件xxx.vc.db的删除问题
用vs2015创建Visual C++项目,编写生成后,每次都会生成一个project_name.VC.db文件,而且会随着你工程修改运行变的越来越大. project_name.VC.db是sqli ...
- MYSQL 优化常用方法总结
1, 选取最合适的字段属性以及长度 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快. 比如:定义邮政编码 char(6) 最合适,如果char(2 ...
- YII2中操作数据库的方式
一.以createCommand方式: // YII2中通过createCommand来处理数据库 // 查询多条记录 // {{%user}} 表示如果设置了表前缀,YII会自动帮你替换 $data ...
- 学习knockoutjs轻量级的MVVM框架
教程:knockoutjs介绍 http://www.w3cfuns.com/forum.php?mod=viewthread&tid=5598714 MVVM架构~knockoutjs实现简 ...
- sqlserver自带的导入导出工具,分别导入大批量mysql和oracle数据时的感受
sqlserver自带的导入导出工具,分别导入大批量mysql和oracle数据时,mysql经常出现格式转换出错,不好导入 导入的数据量比较大时,还不如自己写个工具导入 今天在导oracle时,想 ...
- hdu (kruska and prime) 继续畅通工程
题目http://acm.hdu.edu.cn/showproblem.php?pid=1879 复习一下最小生成树的两个基本算法. 由于存在道路是否已修建的问题,如果已修建,那么该条道路的成本即为0 ...
- iOS.Library.Architecture
在用file查看library的architechture时有以下输出: $ file WebPWebP: Mach-O universal binary with 3 architecturesWe ...
- 洛谷2860 [USACO06JAN]冗余路径Redundant Paths
原题链接 题意实际上就是让你添加尽量少的边,使得每个点都在至少一个环上. 显然对于在一个边双连通分量里的点已经满足要求,所以可以用\(tarjan\)找边双并缩点. 对于缩点后的树,先讲下我自己的弱鸡 ...
- 判断and ,or
and 和 or 是条件 与和或,记住一条,and 是两边同时都满足,or 是只有满足一个条件就成立. # print(1 or False) #条件1成立,条件2不成立.打印条件1 #返回: 1# ...
- Window7安装tensorflow整套环境详细流程
安装tensorflow方式有好多种,为了方便编译环境以及包管理,这里采用Anaconda平台安装tensorflow. tensorflow官网:http://www.tensorflow.org/ ...