计网第四章(网络层)(八)(最短路径优先协议OSPF)

news2024/11/25 1:08:53

在第七节(计网第四章(网络层)(七)_永无魇足的博客-CSDN博客)我们总结了路由信息协议RIP。在最后我们提到了RIP协议有坏消息传的慢的问题,这是距离向量算法的本质决定的,所以这种问题无法彻底避免。

既然基于距离向量无法彻底避免产生路由环路,那么就不基于它了。

一、最短路径优先协议OSPF

“最短路径”是因为使用了最短路径算法Dijkstra提出的最短路径算法SPF。

OSPF是基于链路状态的,由于采用SPF算法计算路由,所以从算法上就保证了不会产生路由环路问题。

在第七节我们提到,RIP协议只适合小规模网络。但是OSPF算法不限制网络规模,更新效率高,收敛速度快。

1.链路状态:

指本路由器与都与哪些路由器相邻,以及相应链路的“代价”(“代价”用来表示费用、距离、时延、带宽等,这是由网络管理人员决定的)。

2.基本工作原理

(1)Hello分组

OSPF相邻路由器之间通过交互问候(Hello)分组,建立和维护邻居关系。

Hello分组封装在IP数据报中,发往组播地址224.0.0.5。

发送周期为10秒。

如果40秒没有收到邻居路由器的Hello分组,就认为该邻居路由器不可达。

每个路由器都有一张邻居表。表里每一条条目都包括邻居ID,接口和“死亡”倒计时。在“死亡倒计时”到达0之前,如果再次收到来自条目对应的路由器传来的Hello分组,就会重启该条目的40秒倒计时。

(2)链路状态LSA

使用OSPF的每个路由器都会产生链路状态通告LSA,LSA包括直连网络的链路状态信息和邻居路由器的链路状态信息。

LSA被封装在链路状态更新分组LSU中,采用洪泛法发送(就是之前提到过的泛洪,路由器收到分组后,除了接收到该分组的接口,其余接口都转发)。

(3)链路状态数据库LSDB

使用OSPF的每个路由器都有一个链路状态数据库LSDB,用于存储LSA(链路状态通告)。

就好像路由表一样,现在表成了LSDB,里面的条目变成了LSA。

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

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

3.五种分组

(1)问候分组

即前面提到的Hello分组,用来发现和维护邻居路由器的可达性。

(2)数据库描述分组

向邻居路由器给出自己LSDB中的所有链路状态项目的摘要信息。

(3)链路状态请求分组

向邻居路由器发送某些链路状态项目的详细信息。

(4)链路状态更新分组

路由器使用这种分组将其链路状态进行洪泛发送,

(5)链路状态确认分组

对链路状态更新分组的确认分组。

4.基本工作过程

如图:(1)相邻的两个路由器之间周期性地发送问候分组。以便建立和维护邻居关系。

(2)建立邻居关系后,给邻居路由器发送数据库描述分组。里面就有自己LSDB里面的所有链路状态的摘要信息。

 (3)假设B收到来自A的数据库描述分组后,发现自己缺少其中某些链路状态项目。 便会向A发送链路状态请求分组。

(4)A收到请求分组后,将B所需的链路状态项目的详细信息封装到链路状态更新分组中 ,然后发送给B。

(5)B收到后,将这些链路状态项目的详细信息 添加到自己的LSDB中,随后向A发送链路确认分组。

 同样地,A也会经历类似的上述过程获取到B中自己所缺的链路状态项目的详细信息。

最后,就实现了各路由器的LSDB达到一致。

需要注意的是:每30分钟或者链路状态发生变化的时候,路由器都会发送链路状态更新分组,收到该分组的其余路由器会通过洪泛方式转发该分组。并给该路由器发回链路状态确认分组。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c语言练习59:深入理解char类型的取值范围

深入理解char类型的取值范围 例如&#xff1a; #include <stdio.h> int main() {char a[1000];int i;for(i0; i<1000; i){a[i] -1-i;}printf("%d",strlen(a));return 0; }结果为255 ab以%d的形式打印结果为&#xff1a;300 而c由于unsigned char的取值范…

【CMU15-445 Part-9】Multi-Threaded Index Concurrency Control

Part09-Multi-Threaded Index Concurrency Control 多线程下索引的并发控制 Concurrency Control 强制所有访问数据结构的线程都使用某种协议或者某种方式。并发控制协议的概念&#xff1a;并发控制协议是一种当并发操作作用在一个共享对象上时DBMS用来确保correct的method。…

【杂记】git管理工具的相关应用

这里记录一些用git管理工具进行开发的命令&#xff0c;便于自己查看&#xff0c;我认为下面两篇博客写的很详细&#xff0c;但是为了自己方便查看&#xff0c;所以自己写了一些命令供自己进一步理解。gitee相对git来说更方便一些&#xff08;毕竟国内的不用担心墙&#xff09;&…

JavaEE 网络原理——TCP的工作机制(初篇 包含 UDP 协议的再次阐述)

文章目录 一、再次简述 UDP 协议二、再次简述 TCP 协议三、描述部分 TCP 内部的工作机制1. 确认应答2. 超时重传 前提&#xff1a; 在前面的文章中&#xff0c;我向大家分别简单介绍了 TCP 协议和 UDP 包装一个数据形成数据报发送信息。 除此之外&#xff0c;还通过代码编写了 …

QT中摄像头的使用

QT中摄像头相关类 摄像头的使用 QT中摄像头的使用主要分为三个方面&#xff0c;显示画面、抓取图片和视频录制。这三个方面对应着摄像模块的三种模式。模式如下&#xff1a; ConstantValueDescriptionQCamera::CaptureViewfinder0相机仅配置为显示取景器。QCamera::CaptureSt…

React入门

一、react开始 1、react是什么 用于构建用户界面的JavaScript库 操作DOM呈现页面 &#xff08;发送请求获取数据和处理数据不由react处理&#xff09;fessbook开发 2、为什么要学 原生js操作DOM繁琐、效率低 使用原生js直接操作DOM&#xff0c;浏览器会进行大量重绘重排 原…

计算机视觉面试题整理

1、介绍目标检测网络yolo系列以及ssd系列的原理&#xff0c;yolo对小目标检测不好的原因&#xff0c;除了缩小anchor外还可以如何改善&#xff1f; Yolo目标检测&#xff1a;YOLO是一种实时目标检测算法&#xff0c;其核心思想是将目标检测问题归为一个回归问题&#xff0c;直…

Android毕业设计,基于Android 语音朗读书籍管理系统

视频演示&#xff1a; 基于Android 语音朗读书籍管理系统 基于 Android 的语音朗读书籍管理系统可以提供用户管理书籍、朗读书籍的功能。以下是一个简单的步骤和功能列表&#xff1a; 用户注册和登录功能&#xff1a; 用户可以注册新账号或使用现有账号登录系统。用户信息可以包…

【rust/egui】(十一)使用rfd选择文件并使用serde_json进行序列化

说在前面 rust新手&#xff0c;egui没啥找到啥教程&#xff0c;这里自己记录下学习过程环境&#xff1a;windows11 22H2rust版本&#xff1a;rustc 1.71.1egui版本&#xff1a;0.22.0eframe版本&#xff1a;0.22.0上一篇&#xff1a;这里 rfd-Rusty File Dialogs 一个跨平台的…

只需3步部署Django项目到Kubernetes上

1. 目标 本文讲述了如何通过3步&#xff0c;把Django项目部署在K8S上。 本文适用读者&#xff1a; 了解Django项目的开发。了解K8S的用途。 2. 具体步骤 把一个Django项目部署在Kubernete环境上&#xff0c;只需以下3步&#xff1a; 创建镜像部署在Kubernetes环境上配置MyS…

linux命令查看谁在使用服务器的GPU

命令&#xff1a;查看GPU使用情况 nvidia-smi 可以知悉GPU占用情况和主要使用GPU的进程&#xff0c;如下图所示&#xff1a; 实时查看gpu使用&#xff1a; nvidia-smi -l 1 表示每隔1s刷新一下&#xff0c;数字可更改。 查看进程的归属者 方法一&#xff1a;ps -f -p pid…

360极速浏览器X终极奥义之——更改划词工具条的搜索为百度搜索 2023更新版

原文为2019版本&#xff0c;具体已失效&#xff0c;2023更新。 1.需要将 https://www.so.com/s?q%s&src360csex_zoned字符串对应的十六进制码替换为 https://www.baidu.com/s?wd%s&src360csex_z对应的十六进制码。 2.需要删除后面的"oned"以保证转换出来…

冒泡排序~

1、对应长度len 数组&#xff0c;需要进行 len -1 趟冒泡&#xff0c;每趟冒泡&#xff0c;将最大&#xff08;小&#xff09;元素排列到最后无序位置 2、每趟冒泡从第一个元素开始&#xff0c;邻近两两比较&#xff0c;找出最大元素 每一趟冒泡&#xff0c;都进行元素交换&am…

基于频谱信息的图像去噪与恢复——使用约束最小二乘方滤波法

大家好&#xff0c;我是带我去滑雪&#xff01; 随着科学技术的不断发展&#xff0c;信息的交流和获取已不再受到时空的限制&#xff0c;已经成为人们日常生活中不可或缺的一部分。图像作为人类信息交流中的重要载体&#xff0c;起着不可替代的作用。频谱图像去噪复原方法是一种…

Hive【Hive(一)DDL】

前置准备 需要启动 Hadoop 集群&#xff0c;因为我们 Hive 是在 Hadoop 集群之上运行的。 从DataGrip 或者其他外部终端连接 Hive 需要先打开 Hive 的 metastore 进程和 hiveserver2 进程。 Hive DDL 数据定义语言 1、数据库&#xff08;database&#xff09; 创建数据库 c…

YOLOv8『小目标』检测指南

前言 目前博主课题组在进行物体部件的异常检测项目&#xff0c;项目中需要先使用 YOLOv8 进行目标检测&#xff0c;然后进行图像切割&#xff0c;最后采用 WinCLIP 模型 进行部件异常检测 但是在实际操作过程中出现问题&#xff0c; YOLOv8 模型目标检测在大目标精确度不错&a…

Vue的详细教程--入门

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Vue的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Vue是什么 二. Vue的特点及优势 三.使用…

IT运维:利用数据分析平台采集Windows event log数据

概述 本文将介绍如何借助Winlogbeat和Vector在鸿鹄里采集Windows event log数据&#xff0c;使技术人员能够在鸿鹄里更便捷和高效地分析Windows event log数据。 操作步骤 Winlogbeat是一个开源的日志数据采集器&#xff0c;专门用于采集Windows操作系统中的event log数据。它可…

【JAVA数据结构】包装类与认识泛型

作者主页&#xff1a;paper jie 的博客 本文作者&#xff1a;大家好&#xff0c;我是paper jie&#xff0c;感谢你阅读本文&#xff0c;欢迎一建三连哦。 本文录入于《JAVA数据结构》专栏&#xff0c;本专栏是针对于大学生&#xff0c;编程小白精心打造的。笔者用重金(时间和精…

解决 Cannot read property ‘key‘ of undefined

目录 问题解决1解决2最终 问题 现场环境分页查询某些条件项查询时&#xff0c;分页接口获取成功但是数据不渲染&#xff0c;页面像是卡住了&#xff1a; 报错 Cannot read property key of undefined 解决1 有人说 使用的el-pagination在格式化代码的时候layout属性的参数会多加…