OSPF的基本工作原理
OSPF的基本工作原理
1.定义
2.特点
3.基本概念
4.OSPF五种分组类型
5.DR/BDR
6.区域
1.定义
开放最短路径优先OSPF,是为了克服RIP的缺点在1989年开发出来的。
"开放" 表明OSPF协议不是受某一家产商控制,而是公开发表的。
“最短路径优先”是因为使用了dijkstra提出的最短路径算法SPF。
2.特点
①OSPF-->基于链路状态,而不是RIP-->基于距离向量
②OSPF采用SPF算法计算路由,从算法上保证了不会发生路由环路。
③OSPF不限制网络的规模,更新效率高,收敛速度快。
3.基本概念
(1)链路状态:本路由器和哪些路由器相邻,以及相应链路状态的“代价”(cost)。
cost:指费用、距离、时延、带宽等。
(2)使用OSPF的路由器都会产生链路状态通告LSA。其中内容一般为
①直连网络的链路状态信息
②邻居路由器的链路状态信息
(3)LSA被封装在链路状态更新分组LSU中 --->洪泛法发送。
(4)使用OSPF的每一个路由器都有一个链路状态数据库LSDB,用于存储LSA。
(5)通过路由器洪泛法发送封装有自己的LSA的LSU分组。
-->各路由器的LSDB最终将达到一致
(6)使用OSPF的路由器基于LSDB进行SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自路由表。
4.OSPF有以下五种分组类型
①问候(hello)分组
②数据库描述(DBD)分组
③链路状态请求分组(LSR)
④链路状态更新分组(LSU)
⑤链路状态确认分组(LSAck)
从OSPF建立邻居,到LSA的互换,到路由表的计算,需要经过一系列的数据包交换过程,过程如下:
两路由器之间首先建立邻居关系互相发送hello分组,然后双方都发送各自的数据库描述分组(DBD),若其中一方发现对方的LSDB中有自己LSDB中所没有的LSA则向对方发送链路状态请求分组(LSR),对方则将其没有的LSA通过链路状态更新分组(LSU)发送,该路由器接收并回一个链路状态确认(LSAck)。最终达到收敛状态。
5.DR/BDR
OSPF在多点接入网络中路由器邻居关系 的建立:
当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,通过在多路访问网段中选择出一个核心路由器,称为DR(Designated Router),网段中所有的OSPF路由器都和DR互换LSA,这样一来,DR就会拥有所有的LSA,并且将所有的LSA转发给每一台路由器;DR就像是该网段的LSA中转站,所有的路由器都与该中转站互换LSA,如果DR失效后,那么就会造成LSA的丢失与不完整,所以在多路访问网络中除了选举出DR之外,还会选举出一台路由器作为DR的备份,称为BDR(Backup Designated Router)。
①选举指定路由器DR和备用的指定路由器BDR
(1).DR与BDR并没有任何本质与功能的区别,只有在多路访问的网络环境,才需要DR和BDR,DR与BDR的选举是在一个二层网段内选举的,即在多个路由器互连的接口范围内,与OSPF区域没有任何关系,一个区域可能有多个多路访问网段,那么就会存在多个DR和BDR,但一个多路访问网段,只能有一个DR和BDR;选举DR和BDR的规则为:
比较接口优先级
选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DR和BDR。
Route-Id大小
如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。
(2).在一个多路访问网络中,选举DR和BDR是有时间限制的,该时间为Wait时间,默认为4倍的Hello时间,即与Dead时间相同,如果OSPF路由器在超过Wait时间后也没有其它路由器与自己竞争DR与BDR的选举,那么就选自己为DR;当一个多路访问网络中选举出DR与BDR之后,在DR与BDR没有失效的情况下,不会进行重新选举,也就是在选举出DR与BDR之后,即使有更高优先级的路由器加入网络,也不会影响DR与BDR的角色,在越出选举时间(Wait时间)后,只有DR与BDR失效后,才会重新选举。DR失效后,会同时重新选举DR与BDR,而在BDR失效后,只会重新选举BDR。
②所有的非DR/BDR只与DR/BDR建立邻居关系。
③非DR/BDR之间通过DR/BDR交换信息。
6.区域
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统分为若干个更小的范围-->区域
好处:把利用洪泛法交换链路状态信息的范围局限于每个区域而不是整个AS,减少了整个网络的通信量。
未完待续····
参考于:
OSPF协议介绍
计算机网络微课
OSPF的基本工作原理的更多相关文章
- DDNS 的工作原理及其在 Linux 上的实现--转
http://www.ibm.com/developerworks/cn/linux/1305_wanghz_ddns/index.html DDNS (Dynamic DNS) 扩展了 DNS 将客 ...
- CentOS 6.5环境下heartbeat高可用集群的实现及工作原理详解
Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用. 什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通 ...
- IERS-OSPF基本工作原理
IERS-OSPF基本工作原理 一.邻居建立建立过程 1.Router ID 用于在自治系统中唯一标识一台运行OSPF的路由器,每台运行OSPF的路由器都有一个ROUTER ID Route ID 是 ...
- 菜鸟学Struts2——Struts工作原理
在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...
- 【夯实Nginx基础】Nginx工作原理和优化、漏洞
本文地址 原文地址 本文提纲: 1. Nginx的模块与工作原理 2. Nginx的进程模型 3 . NginxFastCGI运行原理 3.1 什么是 FastCGI ...
- HashMap的工作原理
HashMap的工作原理 HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间 ...
- 【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)
RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体 ...
- ThreadLocal 工作原理、部分源码分析
1.大概去哪里看 ThreadLocal 其根本实现方法,是在Thread里面,有一个ThreadLocal.ThreadLocalMap属性 ThreadLocal.ThreadLocalMap t ...
- Servlet的生命周期及工作原理
Servlet生命周期分为三个阶段: 1,初始化阶段 调用init()方法 2,响应客户请求阶段 调用service()方法 3,终止阶段 调用destroy()方法 Servlet初始化阶段: 在 ...
随机推荐
- 5分钟就能学会的简单结构 | MLP-Mixer: An all-MLP Architecture for Vision | CVPR2021
文章转自:微信公众号「机器学习炼丹术」 作者:炼丹兄(欢迎交流,共同进步) 联系方式:微信cyx645016617 论文名称:「MLP-Mixer: An all-MLP Architecture f ...
- 安装 error: Microsoft Visual C++ 14.0 is required 解决方案
最近写的项目需要用到Python的第三方库,比如:mmh3, pyshark等等,而直接pip install ... 会报错:error: Microsoft Visual C++ 14.0 is ...
- HashMap源码:聊聊Map的遍历性能问题(一)
目录 引言 迭代器测试 迭代器源码探究 其他遍历方法 增强型for循环 Map.forEach Stream.forEach 总结 附:四种遍历源码 附:完整测试类与测试结果+一个奇怪的问题 引言 今 ...
- toFixed奇葩问题
1.浮点数运算后的精度问题 在计算商品价格加减乘除时,偶尔会出现精度问题 // 加法 ===================== 0.1 + 0.2 = 0.30000000000000004 0.7 ...
- PVD与CVD性能比较
PVD与CVD性能比较 CVD定义: 通过气态物质的化学反应在衬底上淀积一层薄膜材料的过程. CVD技术特点: 具有淀积温度低.薄膜成分和厚度易于控制.均匀性和重复性好.台阶覆盖优良.适用范围广.设备 ...
- QT环境变量设置
首先找到自己对应的目录 我的如图 还有一个路径 将这两个路径添加到系统变量的Path中
- 小伙伴们在催更Spring系列,于是我写下了这篇注解汇总!!
大家好,我是冰河~~ 由于在更新其他专题的文章,Spring系列文章有很长一段时间没有更新了,很多小伙伴都在公众号后台留言或者直接私信我微信催更Spring系列文章. 看来是要继续更新Spring文章 ...
- MySQL8性能优化
MySQL8.0 引擎: 来看看MySQL8提供的引擎: 常用引擎: InnoDB:支持事务,行级锁,外键,崩溃修复,多版本并发控制:读写效率相对较差,内存使用相对较高,占用数据空间相对较大. MyI ...
- redis为什么要提供pipeline功能
通常我们用redis做接口缓存后,查询接口的性能就能提升到ms级别: 但是redis是纯内存操作啊,总不至于要到ms吧,根据官方的 benchmark 单实例也是能抗 7w+ qps 也就是说单个re ...
- WPF添加外边框,添加外边框虚线
<Border Background="LightBlue" BorderBrush="Black" BorderThickness="2&q ...