当前位置: 首页 > news >正文

[计算机网络]OSPF协议

开放最短路径优先OSPF

1)OSPF的工作方式

1>和谁交换消息

使用洪泛法,向本自治系统的所有路由器发送消息。

2>交换什么消息

发送的消息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的度量(费用,时延,带宽)。

    1. 什么时候交换消息
1》只有当链路状态发生变化的时候

路由器才用泛洪法向所有路由器发送此信息。

2》建立邻居关系的时候

在OSPF协议中,每个路由器都会维护一个链路状态数据库(LSDB),该数据库记录了所有已知路由的信息。当某个路由器加入网络时,它会通过广播的方式向其邻居发送Hello包来建立邻居关系


。一旦邻居关系建立,路由器会交换链路状态信息,这个过程称为链路状态广播(LSA)交换。


在链路状态协议中,每个路由器都会发送链路状态广告(LSA)给邻居路由器,这些LSA描述了路由器自身及其邻居的信息。当路由器接收到LSA时,会将其存储在链路状态数据库(LSDB)中,并通过洪泛方式广播给邻居路由器。


通过这种方式,每个路由器都能够获得整个网络的拓扑信息,从而计算出最短路径。

3》一般情况下交换信息

发送的消息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。

链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的度量(费用,时延,带宽)。

2)链路状态数据库

0>什么是链路状态

链路状态就是说明本路由器都和哪些路由器相邻,以及该链路的度量(费用,时延,带宽)。

  1. 链路状态数据库

  1. 所有的路由器都可以建立一个链路状态数据库。
  2. 这个数据库其实就是全网的拓扑结构图,它在全网范围内是一致的(这叫做链路状态数据库的同步)
  3. OSPF的链路状态数据库可以较快地进行更新,使得每个路由器可以及时地更新其路由表。
  4. OSPF的更新过程收敛得快是其重要的优点。(坏消息也传播地快)

3)OSPF划分为两种不同的区域

降低了洪泛的危险,减少了数据量。

1>主干区域

R3,R4,R7相当于十字路口,连接其中的自治系统,自治系统的洪泛就限制在这个小的自治系统内。

R6作为与其他自治系统联系的路由器

2>区域边界路由器

4)OSPF的封装

直接被封装到IP内,不用向RIP被封装到UDP再封装到IP中。这样的好处是节约了时间和大小。

5)OSPF的特点

  1. 直接被封装到IP内,不用向RIP被封装到UDP再封装到IP中。这样的好处是节约了时间和大小。
  2. OSPF构成的数据报很短,可以减少路由信息的通信量
  3. 数据报短的一个好处是可以不用将长的数据分片传送
  4. 但分片传送的数据报只要丢失一个,就无法组成原来的数据报,整个数据报就需要重传。

相关文章:

[计算机网络]OSPF协议

开放最短路径优先OSPF 1)OSPF的工作方式 1>和谁交换消息 使用洪泛法,向本自治系统的所有路由器发送消息。 2>交换什么消息 发送的消息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。 链路状态就是说…...

springcloud2023集成 knife4j 4.4.0 如何关闭

openapi3 规范注意微服务关闭springdoc:swagger-ui:enabled: falseapi-docs:enabled: false 网关关闭 knife4j:gateway:enabled: falsestrategy: discoverdiscover:enabled: falseversion: openapi3# 需要排除的微服务(eg:网关服务)excluded-services:- api-gateway- web-www-…...

Springboot项目下面使用Vue3 + ElementPlus搭建侧边栏首页

Springboot项目下面、在html 页面 Vue3 ElementPlus 搭建侧边栏首页 1、效果图 2、static 文件下面的项目结构 3、代码实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>首页</title><…...

华为 IPD,究竟有什么特点?(二)

关注作者 &#xff08;四&#xff09;华为版 IPD 特点四&#xff1a;一定要把差异化竞争力持 续建立在平台上 平台不仅带来研发效率的提升&#xff0c;更重要的是&#xff0c;它是技术竞争力的载体&#xff0c;是研发质 量的重要保证。 1&#xff09;为什么很多企业摆脱不了同…...

【Laravel】接口的访问频率限制器

Laravel 接口的访问频率&#xff0c;你可以在 Laravel 中使用速率限制器&#xff08;Rate Limiter&#xff09;。以下是一个详细的步骤&#xff0c;展示如何为这个特定的 API 路由设置速率限制&#xff1a; 1. 配置 RouteServiceProvider 首先&#xff0c;确保在 App\Provide…...

【WRF模拟】如何得到更佳的WRF模拟效果?

【WRF模拟】如何得到更佳的WRF模拟效果&#xff1f; 模型配置&#xff08;The Model Configuration&#xff09;1.1 模拟区域domain设置1.2 分辨率Resolution (horizontal and vertical)案例&#xff1a;The Derecho of 29-30 June 2012 1.3 初始化和spin-up预热过程案例1-有无…...

机械臂的各种标定

文章目录 1. 工具坐标系标定2. 工具手标定3. 手眼标定联系 在工程中&#xff0c;同时使用工具坐标系标定、工具手标定和手眼标定的概念、目的和作用如下&#xff1a; 1. 工具坐标系标定 概念&#xff1a; 工具坐标系标定是指确定工具相对于机器人坐标系的位置和姿态关系的过程…...

Android监听拨打电话

第一步获取权限 Manifest.permission.READ_PHONE_STATEManifest.permission.ANSWER_PHONE_CALLSManifest.permission.READ_CALL_LOG Manifest.permission.READ_CONTACTS第二步 注册监听 private var telephonyManager: TelephonyManager? nullprivate var mPhoneStateList…...

Framework开发入门(一)之源码下载

一、使用Linux操作系统的小伙伴可以跳转到官网链接按提示操作 官网源码地址&#xff1a;下载源代码 | Android Open Source Project 1.创建一个空目录来存放您的工作文件。为其指定一个您喜欢的任意名称&#xff1a; mkdir WORKING_DIRECTORYcdWORKING_DIRECTORY …...

TCP off-path exploits(又一个弄巧成拙的例子)

承接前面几篇文章的观点&#xff0c;本文用一个安全攻击的例子说明为了解决一个伤害很低的低概率问题&#xff0c;会引入多么大的麻烦&#xff0c;这次是可怕的被攻击 (⊙o⊙)。 TCP 端口号只有 16bit&#xff0c;序列号只有 32bit&#xff0c;这意味着在强大攻击算力面前&…...

Ajax总结

引言 这是属于前端的部分了&#xff0c;先是学习了三件套&#xff08;HTML,JS,CSS没怎么学&#xff0c;但是大概能理解&#xff09;之后就开始学习这个了&#xff0c;学习之前应该要知道她是做什么的&#xff0c;但是我没有做这一步&#xff0c;之后会先了解为什么要学习这门技…...

修改网络ip地址方法有哪些?常用的有这四种

在数字时代&#xff0c;IP地址作为网络设备的唯一标识&#xff0c;对于网络连接和通信至关重要。然而&#xff0c;有时候我们可能需要修改设备的IP地址&#xff0c;以满足特定的网络需求或解决网络问题。本文将为您详细介绍几种修改网络IP地址的常用方法&#xff0c;无论是对于…...

SpringBoot获取bean的几种方式

目录 一、BeanFactory与ApplicationContext的区别 二、通过BeanFactory获取 三、通过BeanFactoryAware获取 四、启动获取ApplicationContext 五、通过继承ApplicationObjectSupport 六、通过继承WebApplicationObjectSupport 七、通过WebApplicationContextUtils 八、通…...

Debian12 安装配置 ODBC for GaussDB

第一步 apt install -y unixodbc 第二步下载 dws_8.2.x_odbc_driver_for_x86_redhat.zip 到 /tmp&#xff0c;之后 cd /tmp unzip dws_8.2.x_odbc_driver_for_x86_redhat.zip cp lib/* /usr/local/lib cp odbc/lib/* /usr/local/lib echo /usr/local/lib >> /etc/ld…...

空中绘图板:用 Mediapipe 和 OpenCV 实现的创新手势识别应用

在这个数字化飞速发展的时代&#xff0c;手势识别技术正逐渐走入我们的日常生活&#xff0c;从智能家居到增强现实&#xff0c;无处不在。而今天&#xff0c;我将与大家分享一个充满创意和趣味的项目——空中绘图板。这个项目利用了强大的 Mediapipe 库和 OpenCV&#xff0c;实…...

讲一个自己写的 excel 转 html 的 java 工具

由来 这是一个从开发需求中诞生的工具&#xff0c;在工作中因为有一个 excel 转 html 的任务&#xff0c;又没找到一个专门做这方面的工具&#xff08;其他工具几乎都是简单的转换&#xff0c;无法还原 excel 样式&#xff0c;而且转换的宽高有点儿差距&#xff09;&#xff0…...

前端往后端传递参数的方式有哪些?

文章目录 1. URL 参数1.1. 查询参数&#xff08;Query Parameters)1.2. 路径参数&#xff08;Path Parameters&#xff09; 2. 请求体&#xff08;Request Body&#xff09;2.1. JSON 数据2.2. 表单数据2.3. 文件上传 3. 请求头&#xff08;Headers&#xff09;3.1. 自定义请求…...

Vue axios 异步请求,请求响应拦截器

在 Vue.js 中使用 axios 进行网络请求是非常常见的做法&#xff0c;因为它提供了比原生的 Fetch API 更丰富的功能&#xff0c;并且更易于处理错误和配置。结合 Axios 的拦截器功能&#xff0c;你可以对所有的请求或响应进行预处理&#xff0c;比如添加认证头信息、统一处理错误…...

yarn install 安装报错:Workspaces can only be enabled in private projects.

在本地运行项目的时候&#xff0c;使用yarn install 安装模块依赖的时候&#xff0c;遇到报错&#xff1a;Workspaces can only be enabled in private projects. 一、原因分析 报这个错误是因为你使用了yarn的workspace&#xff0c;但并未将工程标记为private。 二、解决办法 …...

http 请求总结get

关于get请求传递body的问题 错误代码 有400 , 415 等情况 <!doctype html><html lang"zh"><head><title>HTTP Status 400 – 错误的请求</title><style type"text/css">body {font-family:Tahoma,Arial,sans-seri…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

如何在网页里填写 PDF 表格?

有时候&#xff0c;你可能希望用户能在你的网站上填写 PDF 表单。然而&#xff0c;这件事并不简单&#xff0c;因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件&#xff0c;但原生并不支持编辑或填写它们。更糟的是&#xff0c;如果你想收集表单数据&#xff…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题&#xff1a;阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程&#xff0c;导致后续逻辑无法执行&#xff1a; var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇&#xff1a;Apollo Client 配置与缓存 上一篇&#xff1a;GraphQL 入门篇&#xff1a;基础查询语法 依旧和上一篇的笔记一样&#xff0c;主实操&#xff0c;没啥过多的细节讲解&#xff0c;代码具体在&#xff1a; https://github.com/GoldenaArcher/graphql…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...

TCP/IP 网络编程 | 服务端 客户端的封装

设计模式 文章目录 设计模式一、socket.h 接口&#xff08;interface&#xff09;二、socket.cpp 实现&#xff08;implementation&#xff09;三、server.cpp 使用封装&#xff08;main 函数&#xff09;四、client.cpp 使用封装&#xff08;main 函数&#xff09;五、退出方法…...

npm安装electron下载太慢,导致报错

npm安装electron下载太慢&#xff0c;导致报错 背景 想学习electron框架做个桌面应用&#xff0c;卡在了安装依赖&#xff08;无语了&#xff09;。。。一开始以为node版本或者npm版本太低问题&#xff0c;调整版本后还是报错。偶尔执行install命令后&#xff0c;可以开始下载…...

记一次spark在docker本地启动报错

1&#xff0c;背景 在docker中部署spark服务和调用spark服务的微服务&#xff0c;微服务之间通过fegin调用 2&#xff0c;问题&#xff0c;docker容器中服务器来后&#xff0c;注册中心都有&#xff0c;调用服务也正常&#xff0c;但是调用spark启动任务后报错&#xff0c;报错…...

Spring AI中使用ChatMemory实现会话记忆功能

文章目录 1、需求2、ChatMemory中消息的存储位置3、实现步骤1、引入依赖2、配置Spring AI3、配置chatmemory4、java层传递conversaionId 4、验证5、完整代码6、参考文档 1、需求 我们知道大型语言模型 &#xff08;LLM&#xff09; 是无状态的&#xff0c;这就意味着他们不会保…...