(考研湖科大教书匠计算机网络)第四章网络层-第六节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…...
WSABuilds vs 官方WSA:性能测试与功能对比,谁才是安卓模拟器之王?
WSABuilds vs 官方WSA:性能测试与功能对比,谁才是安卓模拟器之王? 【免费下载链接】WSABuilds Run Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) an…...
OpenClaw安全实践:私有化Qwen3-VL:30B保障敏感数据不出境
OpenClaw安全实践:私有化Qwen3-VL:30B保障敏感数据不出境 1. 为什么我们需要私有化部署 去年处理一份法律合同时,我犯了一个至今心有余悸的错误——把客户保密协议上传到某公有云AI进行条款分析。虽然及时删除了文件,但那种"数据已脱离…...
4大技术支柱:面向硬件开发者的开源码表定制指南
4大技术支柱:面向硬件开发者的开源码表定制指南 【免费下载链接】X-TRACK A GPS bicycle speedometer that supports offline maps and track recording 项目地址: https://gitcode.com/gh_mirrors/xt/X-TRACK X-TRACK作为一款支持离线地图和轨迹记录的GPS自…...
零基础手写大模型
从零搭建大模型:零基础学习实现职业经济跃迁指南 引言 在人工智能重塑全球产业格局的今天,“大模型”已不再仅仅是科技巨头的专利,而是成为了数字经济时代新的“电力”与“石油”。对于广大职场人士、创业者及寻求转型的个体而言࿰…...
深蓝词库转换:如何实现20+输入法词库的一键互通
深蓝词库转换:如何实现20输入法词库的一键互通 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 你是否曾因更换输入法而不得不放弃多年积累的个人词库&…...
FJSP:蛇鹫优化算法(SBOA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码
FJSP:蛇鹫优化算法(SBOA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码当车间调度遇上非洲大草原的蛇鹄,会碰撞出什么样的火花?今天咱们用MATLAB实现一种新颖的群智能算法——蛇鹄…...
避坑指南:关系数据库设计中90%人会犯的完整性约束错误(附真实案例)
避坑指南:关系数据库设计中90%人会犯的完整性约束错误(附真实案例) 在电商大促期间,某平台突然出现大量"幽灵订单"——用户支付成功后订单消失,而库存却异常扣减。技术团队紧急排查发现,问题根源…...
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流
用ChatTTS打造你的专属AI语音助手:从音色定制到批量合成音频的完整工作流 在内容创作领域,音频正成为越来越重要的媒介形式。无论是知识付费课程的讲解、播客节目的制作,还是智能设备的语音交互,一个稳定、个性化的语音合成系统都…...
League-Toolkit:英雄联盟智能辅助工具的效率提升之道
League-Toolkit:英雄联盟智能辅助工具的效率提升之道 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League-Toolkit是…...
告别盲调:用eBPF uprobe给Go/Python应用函数调用画张“热力图”(附libbpfgo实战代码)
深度剖析eBPF uprobe技术:为Go/Python应用构建动态函数热力图 在云原生与微服务架构盛行的今天,后端服务的性能调优一直是开发者面临的挑战。传统性能分析工具往往需要重启服务或修改代码,这在生产环境中几乎不可行。而eBPF技术的出现&#x…...
