(考研湖科大教书匠计算机网络)第四章网络层-第六节3:开放最短路径优先OSPF的基本工作原理
- 获取pdf:密码7281
- 专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航
文章目录
- 一:OSPF概述
- (1)概述
- (2)细节阐述
- A:链路状态和代价
- B:问候分组和邻居表
- C:链路状态通告LSA
- D:链路状态数据库LSDB
- E:最短路径优先SPF
- (3)五种分组类型
- 二:OSPF基本工作过程
- 三:其他问题
- (1)多点接入网络中存在的大量多播分组
- (2)区域
本节对应视频如下
- 【计算机网络微课堂(有字幕无背景音乐版)】:开放最短路径优先OSPF的基本工作原理
一:OSPF概述
(1)概述
开放最短路径优先OSPF:是为了克服RIP的缺点在1989年提出来的协议
- 开放: :是指OSPF协议不受某一家厂商控制,而是公开发表的
- 最短路径优先: 是指使用了Dijkstra所提出的最短路径算法SPF
具体特点如下
- OSPF是基于链路状态的,而不像RIP那样是基于距离向量的-
- OSPF采用SPF算法计算路由,从算法.上保证了不会产生路由环路
- OSPF不限制网络规模,更新效率高,收敛速度快
(2)细节阐述
A:链路状态和代价
链路状态是指本路由器都和哪些路由器相邻,以及相应链路的“代价”(cost)
- "代价”用来表示费用、距离、时延、带宽,等等。这些都由网络管理人员来决定
例如下图,思科路由器中OSPF计算代价的方法是:用100Mbps除以链路带宽
- 如果计算结果小于1则仍然记为1
- 如果计算结果大于1则舍去小数,只保留整数部分
B:问候分组和邻居表
OSPF相邻路由器之间通过交互问候(Hello) 分组,建立和维护邻居关系。因此,每个路由器都会建立一张邻居表。问候分组需要封装在IP数据报中发送,发往组播地址224.0.0.5
-
IP数据报中协议号字段取值应该为89,表明IP数据报的数据载荷为OSPF分组
-
问候分组的发送周期为10s,若40s还未收到来自邻居路由器的Hello分组,则认为该邻居分组不可达
例如下图
- R2是R1的一个邻居路由器,于是在R1的邻居表中“邻居ID”就记为R2,“接口”记为1,“死亡倒计时”目前还剩36s,若在“死亡倒计时”到达0之前再次收到了R2的问候分组,则重新启动针对该邻居条目的40s“死亡倒计时”;否则,当“死亡倒计时 ”为0时判定该R2不可达
- R4是R1的一个邻居路由器,于是在R1的邻居表中“邻居ID”就记为R4,“接口”记为0,“死亡倒计时”目前还剩18s,若在“死亡倒计时”到达0之前再次收到了R4的问候分组,则重新启动针对该邻居条目的40s“死亡倒计时”;否则,当“死亡倒计时 ”为0时判定该R4不可达
C:链路状态通告LSA
使用OSPF的每个路由器都会产生链路状态通告LSA。LSA中包含以下内容
- 直连网络的链路状态信息
- 邻居路由器的链路状态信息
例如下图,N1是路由器R4的直连网络,则R4的LSA应包含R4与该直连网络的链路状态信息,还应该包含其邻居路由器R1的链路状态信息和邻居路由器R3的链路状态信息
LSA被封装在链路状态更新分组LSU中,采用洪泛法发送。收到LSU的路由器,将从自己其他所有接口转发该分组,也就是进行洪泛转发
例如下图
D:链路状态数据库LSDB
使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA。通过各路由器洪泛发送封装有自己LSA的LSU分组,各路由器的LSDB最终将达到一致
例如下图,R2的LSDB中记录有各路由器的LSA
E:最短路径优先SPF
使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各自到达其他各路由器的最短路径,即构建各自的路由表
例如下图的网络拓扑,各链路旁的数字表示代价,通过各路由器洪泛法发送封装有自己LSA的LSU:各路由器最终会得到相同的LSDB,由LSDB可以得出带权有向图,对该图进行基于Dijkstra的最短路径优先算法就可以得出以路由器为根的最短路径
(3)五种分组类型
OSPF的五种分组类型:
- 问候(Hello) 分组: 用来发现和维护邻居路由器的可达性
- 数据库描述(Database Description)分组: 向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息
- 链路状态请求(Link State Request)分组: 向邻居路由器请求发送某些链路状态项目的详细信息
- 链路状态更新(Link State Update)分组: 使用这种分组将其链路状态进行洪泛发送,即用洪泛法对全网更新链路状态
- 链路状态确认(Link State Acknowledgment)分组: 是对链路状态更新分组的确认分组
二:OSPF基本工作过程
如下图,相邻路由器之间周期性发送问候分组,以便建立和维护邻居关系建立邻居关系后,给邻居路由器发送数据库描述分组,也就是将自己的链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器。例如
- R1收到R2的数据库描述分组后,发现自己缺少其中的某些链路状态项目,于是就给R2发送链路状态请求分组
- R2收到后,将R1所缺少的链路状态项目的详细信息封装在链路状态更新分组中发送给R1
- R1收到后,将这些所缺少的链路状态项目的详细信息添加到自己的链路状态数据库中,并给R2发送链路状态确认分组
- 最终,R1和R2的链路状态数据库将达到一致,也就是链路状态数据库达到同步
每30min或链路状态发生变化时,路由器都会发送链路状态更新分组,收到该分组的其他路由器将洪泛转发该分组,并给该路由器返回链路状态确认分组。这称之为新情况下链路状态数据库同步
三:其他问题
(1)多点接入网络中存在的大量多播分组
当OSPF路由器在多点接入网络中建立邻居关系时,如果不采用其他机制,将会产生大量的多播分组
例如下图,5台路由器连接在同一个多点接入网络中,它们周期性地发送问候分组以建立和维护邻居关系。这些路由器中的任意两个路由器都互为邻居关系,邻居关系的数量为n(n−1)2\frac{n(n-1)}{2}2n(n−1),其中nnn为路由器数量,这样每个路由器要向其他n−1n-1n−1个路由器发送问候分组和链路状态更新分组
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-
为了减少所发送分组的数量,OSPF采用选举指定路由器DR和备用指定路由器BDR的方法,所有的非DR/BDR都只与DR/BDR建立邻居关系,非DR/BDR之间必须通过DR/BDR交换信息。若DR出现问题则由BDR顶替,
例如下图,假设已经选举好了DR和BDR,由于所有的非DR/BDR都只与DR/BDR建立邻居关系,因此之前的邻居关系数量降低为2(n−2)+12(n-2)+12(n−2)+1
(2)区域
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域(Area)。划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这样就减少了整个网络上的通信量
例如下图是一个规模很大的网络,将其划分为一个自治系统。在该自治系统内,所有路由器都使用OSPF协议
OSPF将该自治系统再划分为4个更小的区域,每个区域都有一个32比特区域标识符,可以用点分十进制表示。例如主干区域标识符必须为0,也即0.0.0.0
,主干区域用于连通其他区域,其他区域标识符不能为0且互补相同。每个区域的规模不应该太大,一般所包含的路由器不应超过200个
如果路由器的所有接口都在同一个区域内,则该路由器称其为区域内路由器。为了本区域可以和自治系统内的其他区域连通,每个区域会设置一个区域边界路由器(R3,R4,R7),其一个接口用于连接自身所在区域,另一个接口用于连接主干区域。主干区域内的路由器称之为主干路由器
相关文章:

(考研湖科大教书匠计算机网络)第四章网络层-第六节3:开放最短路径优先OSPF的基本工作原理
获取pdf:密码7281专栏目录首页:【专栏必读】考研湖科大教书匠计算机网络笔记导航 文章目录一:OSPF概述(1)概述(2)细节阐述A:链路状态和代价B:问候分组和邻居表Cÿ…...

积水在线监测仪——积水点、易涝点水位监测设备
一、设备概述 积水在线监测仪是一款用于城市积水点、易涝点等场景的水位监测设备,设备采用电池供电,无需另外供电,安装方便,使用简单。可以时监测水点、易涝点水位情况,当水位数据超过阈值后触发告警上传,…...
DCMM认证机构
一、什么是DCMM DCMM认证,又称为数据管理能力成熟度评估,依据 都是GB/T -《数据管理能力成熟度评估模型》,这是我国首个数据管理领域的国家标准,由国家质量监督检验检疫总局、国家标准化管理委员会于年3月15日正式发布。DCMM认证…...
Golang基于文件魔数判断文件类型
本文介绍基于魔数判断文件类型,涉及文件查找读取内容、文件魔数、字节比较,最后还介绍函数参数的知识。 查找位置 File.Seek()函数可以设置偏移位置,为下一次读或写确定偏移量,具体起点有whence确定:0标识相对文件开始…...

MySQL——索引视图练习题
学生表:Student (Sno, Sname, Ssex , Sage, Sdept) 学号,姓名,性别,年龄,所在系 Sno为主键 课程表:Course (Cno, Cname,) 课程号,课程名 Cno为主键 学生选课表:SC (Sno, Cno, Score)…...

哈希表题目:矩阵置零
文章目录题目标题和出处难度题目描述要求示例数据范围进阶解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析解法三思路和算法代码复杂度分析题目 标题和出处 标题:矩阵置零 出处:73. 矩阵置零 难度 3 级 题目描述 要求 给定一个 m…...

HTTP API自动化测试从手工到平台的演变
不管是 Web 系统,还是移动 APP,前后端逻辑的分离设计已经是常态化,相互之间通过 API 调用进行数据交互。在基于 API 约定的开发模式下,如何加速请求 / 响应的 API 测试,让研发人员及早参与到调试中来呢?既然…...

【从零开始学C语言】知识总结一:C语言的基本知识汇总
C语言期末知识点总结 C语言期末试题(附答案)选择题编程题 2022C语言知识点大全【详细、必备】 C语言期末大作业-学生成绩管理系统(完整源码设计报告) C语言期末作业(15个)-货物管理系统、歌曲信息管理系…...

CAD二次开发 添加按钮Ribbon
这篇文章是教大家怎样子创建自己的Ribbon按钮界面(如下图),以下示例代码在CAD2020中运行实现。 背景 创建一个属于自己的Ribbon按钮(如下图) 理解Ribbon、Panel、Tab的关系(如下图)ÿ…...
[RK3568 Android12] 添加自定义启动脚本
1:定义添加的脚本 比如为displayn2k.sh #!/system/bin/sh log "displayn2k.sh begin running" sleep 5 log "displayn2k.sh sleep 8" sleep 5 log "================sleep finished==========================" #remount /system/bin/mount -o …...
API 体系构建
前言 API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。在关键环节制定明确的 API 规范有助于 Service 对内提高产品间互通的效率,对外提供一致的使用体…...

RMPE: Regional Multi-Person Pose Estimation (AlphaPose)阅读笔记
区域多人姿态估计 ICCV 2017 论文链接 代码链接 摘要: 野外多人姿态估计具有挑战性。sota人体检测器不可避免存在定位和识别误差,这些误差可能导致依赖人体检测器的单人姿态估计器(SPPE)的失败。本文提出了一种新的区域多人姿态估…...
2月16日昆明面试经历部分考题
2月16日昆明面试部分考题 1.说说em和rem的区别?rpx呢? rem是相对于根元素(HTML)进行计算,而em是相对于当前元素或父元素的字体大小,如果当前文本的字体尺寸没有设置,则相对于浏览器的默认字体…...
ARC140D One to One
ARC140D One to One 题目大意 对于一个长度为nnn的整数序列X(x1,x2,…xn)X(x_1,x_2,\dots x_n)X(x1,x2,…xn),每个元素都在111到nnn之间,令f(X)f(X)f(X)表示以下问题的答案: 有一个nnn个顶点nnn条边的无向图(可能有重边和…...

联合身份验证与Cognito
Hello大家好,我们接下来讨论AWS联合身份验证的内容。 AWS联合身份验证 对于考试,联合身份验证部分是一块非常重要的内容。那什么是联合身份验证,它是做什么用的呢? 联合身份验证,是用来允许AWS外部用户,如…...

day18_常用API之String类丶Object类
String概述 java.lang.String 类代表字符串,String类定义的变量可以用于指向字符串对象,同时String类提供了很多操作字符串的功能,我们可以直接使用。Java 程序中的所有字符串文字(例如“abc”)都为此类的对象 特点:St…...
OSG三维渲染引擎编程学习之五十五:“第五章:OSG场景渲染” 之 “5.13 一维纹理”
目录 第五章 OSG场景渲染 5.13 一维纹理 5.13.1 一维纹理介绍 5.13.2 一维纹理示例 第五章 OSG场景渲染 OSG存在场景树和渲染树,“场景数”的构建在第三章“OSG场景组织”已详细阐明,本章开始...

RTOS随笔之FreeRTOS启动与同步方法
RTOS启动与同步机制RTOS启动任务切换场景任务同步机制队列信号量事件组任务通知任务延时RTOS启动 FreeRTOS在任务创建完成后调用函数vTaskStartScheduler()启动任务调度器。 vTaskStartScheduler()任务启动函数详解 void vTaskStartScheduler( void ) {BaseType_t xReturn;xR…...

【AI/NLP】InstructGPT数据标注问题
文章目录1 背景介绍2 标记员筛选2.1 标记员筛选标准3 数据集及其标注3.1 预训练3.2 微调3.2.1 SFT-demonstration data3.2.2 RM-comparison data3.3 数据集大小4 模型实现1 背景介绍 ChatGPT的训练过程与InstructGPT相近,大致分为三步: SFT:…...

三次握手和四次挥手
文章目录TCP三次握手为什么要三次握手三次握手可以携带数据吗?三次握手失败,服务端会如何处理?ISN代表什么,意义,何要动态随机什么是半连接队列第2次握手传回了ACK,为什么还要传回SYN?为什么要四次挥手TCP…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...