学习笔记——动态路由——OSPF(OSPF协议的工作原理)

八、OSPF协议的工作原理

1、原理概要

(1)相邻路由器之间周期性发送HELLO报文,以便建立和维护邻居关系

(2)建立邻居关系后,给邻居路由器发送数据库描述报文(DBD),也就是将自己链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器

(3)收到数据库描述报文后,若发现自己缺少其中某些链路状态项目,则会发送链路状态请求报文(LSR)。

(4)对方收到链路状态请求报文后,则会将其所缺少的链路状态项目的详细信息封装在链路状态更新报文(LSU)中发送回去

(5)收到链路状态更新报文后,将这些信息添加到自己的链路状态数据库中,随后发回链路状态确认报文(LSACK)

(1)HELLO协议

1)发现邻居并监测与邻居链路的状态

OSPF路由器定期向所有邻居路由器发送HELLO报文。报文中包含了最近一段时间内发送过HELLO报文的邻居路由器。

发送周期为10秒,40秒未收到来自邻居路由器的 HELLO 报文,则认为该邻居路由器不可达

如果路由器在邻居发送的HELLO报文中发现了自己的标识符,就表明这两个邻居路由器之间建立了双向通信链路。每个路由器都会建立一张邻居表。

HELLO协议在不同类型网络上的工作过程不同:

点到点网络、虚拟链路:路由器向对方发送 HELLO 报文;

点到多点网络:路由器仅向能直接通信的邻居发送 HELLO 报文;

广播网络:每台路由器定期组播发送 HELLO 报文;

NBMA网络:需要配置后 HELLO 协议才能正常工作。

2)DR/BDR 的选举

广播网络或 NBMA 网络上每台路由器都清楚网络的链路状态。

若每台路由器都发送网络的链路状态,会有很多重复发送。OSPF 协议规定:

在广播网络或NBMA网络上选举一个指定路由器(DR)和一个备份指定路由器(BDR);

只有DR能代表该网络发送网络的链路状态;

DR发生故障后,BDR就变成DR。

当路由器连接到广播网络或NBMA网络上的接口启动时:(下左图)

检查该网络上是否已存在DR和BDR:存在就接受;否则,比较自己和其他路由器的优先级:

- 优先级最高的路由器成为DR;优先级次高的路由器成为BDR。优先级:0-255,默认值是1

- 若两个路由器的优先级相同,标识符(ID)更大的胜出。

DR和BDR一旦选定,即使OSPF区域内新增优先级更高的路由器,DR和BDR也不重新选举。(下右图)

(2)链路状态数据库同步

OSPF邻接路由器之间的链路状态数据库同步大体上可分为三步:

双方交换各自的链路状态数据库摘要

向对方请求链路状态并更新自己的数据库

若有链路的状态发生变化,更新自己的数据库,并通知对方

1)交换摘要

OSPF路由器定期与邻接路由器交换链路状态数据库摘要:

数据库摘要用一组数据库描述报文描述;

每个数据库描述报文包含一组链路状态通告(LSA)的首部;

LSA首部有其唯一标识及新旧标记。

2)同步信息

发送和接收数据库描述报文的过程称为“数据库交换过程”,其中:

若路由器发现邻接路由器某些链路的状态更新,或自己没有,就向对方发送链路状态请求报文;

邻接路由器发送链路状态更新报文进行响应。

两个邻接路由器的链路状态数据库达同步后,称它们之间建立了完全邻接关系(fully adjacent)。

3)新情况下的同步

路由器监测其所有链路,若有链路的状态发生改变:

更新自己的链路状态数据库;

向邻接路由器发送链路状态更新报文,通知变化的链路状态。

4)洪泛机制

OSPF协议定义了一种可靠的洪泛(reliable flooding)机制,用于在 OSPF 路由域中快速扩散链路状态的变化。

可靠是指收到链路状态更新报文后要发送确认,收到重复的更新报文无需再次转发,但要发送一次确认。

路由器接收到链路状态更新报文后,逐个检查其中的 LSA:

若LSA的状态更新,或本地不存在,就用LSA更新自己的数据库;

同时,在某些接口上继续发送该LSA,称为“洪泛” 。

注意:路由器并不是直接发送接收的链路状态更新报文,而是发送根据自己的数据库生成的链路状态更新报文。

通过各路由器洪泛法发送封装有自己LSA的LSU报文,各路由器的LSDB最终达到一致。

使用OSPF的各路由器基于LSDB进行最短路径优先SPF计算,构建出各种到达其他各路由器的最短路径,即构建各自的路由表。


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/753621.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【PHP项目实战训练】——后台-RBAC权限管理原理

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

Minecraft玩家设计专用程序 让Google地球可以在游戏中探索

在 Minecraft 中以真实的比例建造真实的地方并不是什么新鲜事。不过,康奈尔理工学院的一名毕业生最近展示了一种方法,可以自动生成一个忠实的 Minecraft 地球,并定期更新。他将在 7 月底举行的 SIGGRAPH 2024 大会上公布该项目的成果。 在七月…

确认偏差:金融市场交易中的隐形障碍

确认偏差,作为一种深刻影响交易员决策与表现的心理现象,其核心在于个体倾向于寻求与既有信念相符的信息,而自动过滤或轻视与之相悖的资讯。这种认知偏见严重扭曲了交易者的决策过程,导致他们过分依赖符合既有观念的数据&#xff0…

鸿蒙开发设备管理:【@ohos.deviceInfo (设备信息)】

设备信息 说明: 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import deviceInfo from ohos.deviceInfo属性 系统能力:以下各项对应的系统能力均为SystemCapability.Startup.S…

构建一个让世界瞩目的海外短剧生态系统

构建一个让世界瞩目的海外短剧生态系统是一个复杂但富有挑战性的任务。旨在创建一个全球范围内具有影响力的海外短剧生态系统: 一、市场定位与战略规划 1、深入了解目标市场:研究海外观众的观看习惯、喜好和付费意愿,以制定有针对性的市场策…

3d模型里地毯的材质怎么赋予?---模大狮模型网

在进行3D建模时,赋予地毯逼真的材质是营造现实感和增强场景氛围的重要步骤。模大狮将介绍在常见的3D建模软件中,如何有效地为地毯赋予各种材质,以及一些实用的技巧和注意事项。 一、选择合适的地毯材质 在3D建模中,地毯的材质选择…

OOXML入门学习

进入-飞入 <par> <!-- 这是一个并行动画序列的开始。"par"代表并行&#xff0c;意味着在这个标签内的所有动画将同时开始。 --><cTn id"5" presetID"2" presetClass"entr" presetSubtype"4" fill"hold&…

MS5208T/MS5208N——2.7V 到 5.5V、 12Bit、8 通道轨到轨输出数模转换器

MS5208T/MS5208N 是一款 12Bit 、 8 通道输出的电压型 DAC &#xff0c;内部集成上电复位电路、轨到轨输出 Buffer 。接口采用 三线串口模式&#xff0c;最高工作频率可以到 40MHz &#xff0c;兼容 SPI 、 QSPI 、 DSP 接口和 Microwire 串口。输出接到一个轨到轨…

“AI+”时代,群核科技进化成了家居设计打工人理想的样子

6月&#xff0c;2024世界智能产业博览会上&#xff0c;人工智能大模型展团以“AI大模型驱动新质生产力”为主题&#xff0c;各家企业纷纷提到了基于不同行业场景的应用。 这透露出当前的行业发展趋势强调大模型落地核心行业&#xff0c;产生业务价值。其中&#xff0c;“AI图像…

餐饮点餐的简单MySQL集合

ER图 模型图&#xff08;没有进行排序&#xff0c;混乱&#xff09; DDL和DML /* Navicat MySQL Data TransferSource Server : Mylink Source Server Version : 50726 Source Host : localhost:3306 Source Database : schooldbTarget Server Type …

uniapp 使用cavans 生成海报

uniapp 使用cavans 生成海报 npm install qs-canvas1.创建 useCanvas.js /*** Shopro qs-canvas 绘制海报* version 1.0.0* author lidongtony* param {Object} options - 海报参数* param {Object} vm - 自定义组件实例*/ import QSCanvas from qs-canvas; import { getPos…

最小生成树拓展应用

文章目录 最小生成树拓展应用理论基础 题单1. [新的开始](https://www.acwing.com/problem/content/1148/)2. [北极通讯网络](https://www.acwing.com/problem/content/1147/)3. [走廊泼水节](https://www.acwing.com/problem/content/348/)4. [秘密的牛奶运输](https://www.ac…

Verystar费芮荣获腾讯游戏人生平台2023年度“最佳营销服务商”奖项

先导&#xff1a;Verystar费芮是电通旗下拥有领先的技术支持、数据驱动的客户体验管理 (CXM) 公司&#xff0c; 6月27日腾讯游戏人生合作伙伴大会&#xff0c;宣布 Verystar费芮连续四年荣获“最佳营销服务商”奖项。 6月27日&#xff0c;2024年腾讯游戏人生合作伙伴大会在深圳…

【知识图谱系列】Neo4j使用Py2neo与python进行链接

目录 一、安装py2neo 二、打开Neo4j 三、使用Python操作Neo4j 一、安装py2neo pip install --upgrade py2neo -i https://pypi.tuna.tsinghua.edu.cn/simple 可以先阅读下文档&#xff1a;https://py2neo.org/v4/index.html 这个文档里有好多关于这个工具包的API介绍&#x…

从赛题切入谈如何学习数学建模

1.引言 &#xff08;1&#xff09;今天学习了这个汪教授的这个视频&#xff0c;主要是对于一个赛题的介绍讲解&#xff0c;带领我们通过这个赛题知道数学建模应该学习哪些技能&#xff0c;以及这个相关的经验&#xff0c;我感觉这个还是让我自己受益匪浅的 &#xff08;2&…

Openldap安装部署及Gitea简单配置使用

Openldap安装部署及Gitea简单配置使用 一.安装Openldap #拉取镜像 docker pull osixia/openldap:latestdocker run \ -d \ -p 389:389 \ -p 636:636 \ -v /home/data/openldap/local:/usr/local/ldap \ -v /home/data/openldap/lib:/var/lib/ldap \ -v /home/data/openldap/s…

数据分析报告制作的结构和思路整理

先画重点&#xff1a;一份分析报告的制作&#xff0c;目前的市场的分析步骤是优先找一些别人的研究报告&#xff0c;现成的东西&#xff0c;重点是要好好总结业务逻辑和潜在运营可能&#xff0c;这也是一位优秀数据分析师的价值体现。 举个例子&#xff0c;以目前小说短剧赛道的…

C语言指针速成下篇

c语言的指针下篇终于迎来了收尾&#xff0c;那么废话不多说&#xff0c;我们直接进入正题 指针访问数组 # include <stdio.h> int main () { int arr[ 10 ] { 0 }; // 输⼊ int i 0 ; int sz sizeof (arr)/ sizeof (arr[ 0 ]); // 输⼊ int * p arr //这…

Ubuntu+Apache2 搭建Gerrit 环境

一、前言 时隔多年&#xff0c;好久没有更新CSDN 博客了&#xff0c;主要原因有如下两点&#xff1a; 1、平时工作繁忙&#xff0c;无暇更新。 2、工作内容涉及信息安全&#xff0c;一些工作经验积累不便更新到互联网上。 最近一直在折腾搭建Gerrit 环境&#xff0c;最开始是…

PHP 超级全局变量详解

在PHP编程中&#xff0c;超级全局变量&#xff08;Super Global Variables&#xff09;是一种特殊的变量&#xff0c;可以在脚本的任何地方访问&#xff0c;而不受作用域限制。它们被设计用于在不同的脚本文件、函数和类之间共享数据&#xff0c;是PHP语言中非常重要和实用的特…