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

十分钟理解OSPF路由协议

十分钟理解OSPF路由协议

    • 1.RIP的缺陷
      • 以跳数为度量值
      • 最大跳数为15
      • 更新路由表采用全更新
      • 收敛速度慢
    • 2.RIP与OSPF比较
    • OSPF概述
      • 运行OSPF协议之前
      • 运行OSPF协议之后
    • 3.OSPF协议工作过程
      • 1.发现邻居
      • 2.建立邻接关系
      • 3.传递链路状态信息
      • 4.计算路由
    • 4.OSPF分区域管理

有RIP协议,为什么还需要OSPF?

1.RIP的缺陷

以跳数为度量值

在开始之前我们先回忆一下RIP协议,RIP协议是以跳数作为度量值,这是它的缺陷。如下图:RIP协议会从上面64Kbs到达10.2.0.0,但是很明显下面的带宽1Gbps,下面应该更快,但是因为下面有3跳,上面只有2跳。

在这里插入图片描述

最大跳数为15

在这里插入图片描述

更新路由表采用全更新

在这里插入图片描述

收敛速度慢

2.RIP与OSPF比较

摘要RIPOSPF
协议距离矢量路由协议链路状态路由协议
度量值基于跳数选择最优路径基于链路开销选择最优路径
路由表更新每隔30s向邻居广播自己的整个RIP路由表触发更新或每隔30分钟向邻接路由器发送链路状态信息的摘要,增量更新机制

OSPF概述

  • 工作于IP层之上,IP协议号为89

  • 组播地址224.0.0.5发送协议包

  • 基本思想:每个路由器将其已知的链路状态信息告诉邻居,收敛以后,网络上每个路由器全网的链路状态相同的认识。然后,每台路由器根据了解到的全网链路状态,独立计算路由。

如下图:R1和R2之间运行了OSPF

在这里插入图片描述

运行OSPF协议之前

  1. 对于R1来说,R1知道自己有两个直连接口,分别是:GE/0/1,10.0.0.0/24,开销是1G。GE/0/0,20.0.0.0/24,开销是1G。R1最初也只知道这么多信息。
  2. 对于R2来说也是一样的,R2知道自己有两个直连接口网段分别是:GE/0/1,30.0.0.0/24,开销是1G。GE/0/0,20.0.0.0/24,开销是1G,R2最初也只知道这么多信息。

运行OSPF协议之后

R1和R2会相互交流,交流方式是R1会问R2我知道的链路信息是GE/0/1-10.0.0.0/24和GE/0/0-20.0.0.0/24,你对哪个感兴趣?

R2查看自己的链路信息,20和30段我已经有了,但是我不知道10段,我想知道10段的信息,于是R1就把10段完整的信息发给了R2。这样R2就会学到10段的链路信息。同样的R1对R2说我想知道30段完整的信息,于是R2就把10段的信息发给了R1,这样R1就会学到30段的链路信息。

最终的结果就是:R1就会知道在这个网络中还有一个路由器R2,并且这个网络中有3个网段分别是10,20,30,30段直连在R2上面。同样R2也会知道全网信息。

3.OSPF协议工作过程

1.发现邻居

  • 通过组播发送hello包
  • 所有邻居都可能跟自己交换链路状态信息

在这里插入图片描述

相互发送hello包,hello包中有他们建立邻居所需的必要参数,相互收到hello包确认参数符合之后,那他们会相互认定对方是自己的邻居。并且把自己的邻居信息存到自己的邻居表。那邻居有什么作用呢?正如我们上面所说的第二点所有邻居都可能跟自己交换链路状态信息。那为什么是可能?接着往下看

2.建立邻接关系

  • 只有建立邻接关系的邻居路由器才会交换链路状态信息
  • 不是跟所有邻居都建立邻接关系
  • 在网络中选举DR和BDR,网络内所有路由器只与DR和BDR建立邻接关系
  • 广播型网络中会选DR和B DR,PPP网络中不会选举DR和BDR

为什么要选DR和BDR?

如下左图,5台设备两两交换链路信息,需要交换10次。这种效率太低。

如下右图中我们可以选举一个组长,只需要将所有的链路信息教给组长DR,组长进行汇总然后下发汇总后的路由表即可。一个组长单点故障,我们再选一个副组长BDR,组长挂了副组长来顶替,这样就更可靠。目的是啥?**“只与DR和BDR建立邻接关系”**尽可能的减少邻接关系的数量,说白了就是交换的次数,从而提高了交换链路状态信息的效率。

在这里插入图片描述

第四点:广播型网络中会选DR和B DR,PPP网络中不会选举DR和BDR

我们普通的网络一般都是广播型的网络,如下图:R1和R2之间使用的串口相连,我确定了R1和R2之间的广播域只有两个接口,不会有第三个接口出现,所以这种点对点的网络是不需要DR和BDR 的。

在这里插入图片描述

3.传递链路状态信息

  • 每台设备都有一个LSDB(Link State Database,链路状态数据库

  • LSDB中每一条就是LSA(Link State Advertisement,链路状态公告):描述链路状态信息,例如网络中某台路由器的编号是什么,其直连的网段是什么,开销是多少等

在这里插入图片描述

如何交换链路状态信息?

  • 触发更新每隔30分钟更新一次。触发更新:如果网络发生变化,不需要等到30分钟周期,立刻向邻居发送信息。
  • 增量更新机制,只发邻居需要的LSA
  • 收敛以后,区域内所有路由器具有相同的LSDB。这个LSDB能体现全网的链路状态(该网络中有哪些路由器,各自编号是什么,每台路由器直连的网段是什么,开销是多少)

4.计算路由

如下图:刚开始所有路由器都只知道自己直连的信息,当他们通过交换信息收敛之后,所有路由器上的LSDB都是相同的,所有的路由器都知道全网的信息,相当于上帝视角。

在这里插入图片描述

4.OSPF分区域管理

在这里插入图片描述

为什么要分区域管理?

因为OSPF在收敛的时候,每个路由器的LSDB都是相同的,并且这个LSDB可以体现出全网的状态 。当全网中路由器的数量增多,链路增多,每台设备需要维护的LSDB数量就非常多,会占用设备大量的内存,并且在收敛时占用大量的带宽资源,所以在这种情况下采用了分区域管理。

  • 区域内的路由器只需要学到区域内的路由信息,即同一个区域内路由器才会建立邻居关系,交换LSA。收敛后同一个区域内所有设备具有相同的LSDB,这个LSDB反映了本区域内的链路状态,再计算区域内的路由;

  • 区域边界路由器同时具备所在多个区域的路由信息,不同区域之间,由区域边界路由器ABR直接转发路由

  • 每个区域有一个ID,ID是32位二进制,可以表示为一个十进制数,也可以表示为点分十进制形式。例如:区域0等价于区域0.0.0.0;区域1等价于区域0.0.0.1。

  • 骨干区域——区域0

  • 所有非骨干区域间通信都要通过骨干区域0转发

  • 如果网络中有不同的ospf区域,肯定有个区域是区域0.

相关文章:

十分钟理解OSPF路由协议

十分钟理解OSPF路由协议 1.RIP的缺陷以跳数为度量值最大跳数为15更新路由表采用全更新收敛速度慢 2.RIP与OSPF比较OSPF概述运行OSPF协议之前运行OSPF协议之后 3.OSPF协议工作过程1.发现邻居2.建立邻接关系3.传递链路状态信息4.计算路由 4.OSPF分区域管理 有RIP协议,…...

Python 编程基础 | 第一章-预备知识 | 1.4、包管理工具

一、包管理工具 1、pip简介 pip是Python自带的包管理器,它可以帮助我们安装、升级和卸载Python包。Python包是一组Python模块,它们可以提供各种功能,例如数据分析、Web开发、机器学习等等。pip可以让我们轻松地安装这些包,以便我…...

delphi中使用CADVCL 10.0 Enterprise控件解析DXF文件生成图片保存到本地

使用案例demos中GettingStarted案例 修改OnClick方法 更换代码 varvDrawing: TsgCADDXFImage;I: Integer;vEnt: TsgDXFEntity;vDXFImage:TsgCADImage;Bitmap: TBitmap;jpg: TJpegImage; beginvDrawing : TsgCADDXFImage.Create;vDrawing.LoadFromFile(d:\Entities.dxf);for …...

Hazelcast系列(三):hazelcast管理中心

系列文章 Hazelcast系列(一):初识hazelcast Hazelcast系列(二):hazelcast集成 Hazelcast系列(三):hazelcast管理中心 目录 前言 平台搭建 测试 其他 参考 总结 前言 前面,我们通过几种配置方式(Hazelcast系…...

QT 绘画功能的时钟

.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPaintEvent> #include <QDebug> //信息调试类 #include <QPainter> #include <QPixmap> //图像引擎类 #include <QTime> #include <QTimer> …...

设计模式之道-模板方法模式

文章目录 模板方法模式简介作用模板方法模式的缺点模板方法模式的应用场景业务场景开源框架中的应用 对比回调和Hook模式关于组合优先于继承 关于设计模式乱用的现象 模板方法模式 简介 模板方法模式是一种行为型设计模式&#xff0c;该设计模式的核心在于通过抽象出一套相对…...

头哥的实践平台的Linux文件/目录管理

一 Linux 文件/目录管理 1.本关的编程任务是补全右侧代码片段中Begin至End中间的代码&#xff0c;具体要求如下&#xff1a; 新创建两个文件空文件file1和file2。 删除系统已存在的两个文件oldFile1和oldFile2。 #!/bin/bash#在以下部分写出完成任务的命令 #***********begi…...

软件测试基本常识

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程&#xff0c;刷完面试就稳了&#xff0c;你也可以当高薪软件测试工程师&#xff08;自动化测试&#xff09; 一、测试用例的编写 1.在测试中最重要的文档&#xff0c;他是测试工作的核心&#xff0c;是一组在测试时…...

Xmake v2.8.3 发布,改进 Wasm 并支持 Xmake 源码调试

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量&#xff0c;没有任何依赖&#xff0c;因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建&#xff0c;相比 makefile/CMakeLists.txt&#xff0c;配置语法更加简洁直观&#xff0c;对新手非常友好&#x…...

Serverless 数仓技术与挑战(内含 PPT 下载)

近期&#xff0c;Databend Labs 联合创始人张雁飞发表了题为「Serverless 数仓技术与挑战」的主题分享。以下为本次分享的精彩内容&#xff1a; 主题&#xff1a; 「Serverless 数仓技术与挑战」 演讲嘉宾&#xff1a; 张雁飞 嘉宾介绍&#xff1a; Databend Labs 联合创始人…...

九牧小牧携手国家队!一场“中国卫浴“和“中国体育”的双向奔赴

文 | 螳螂观察 作者 | 余一 1990年中国第一次举办了综合性国际体育大赛——北京亚运会&#xff0c;来自37个国家和地区&#xff0c;共计6578人的体育代表团参加了那届亚运会&#xff0c;一首《亚洲雄风》成为无数人记忆中的经典。 2023年杭州亚运会于近日正式拉开了帷幕&…...

crypto:Quoted-printable

题目 解压文件后可得到提示文本 好了这个没接触过&#xff0c;参考别的大佬wp QP为可打印字符编码&#xff0c;根据加密方式任何一个8位的字节值可编码为3个字符&#xff1a;一个等号“”后跟随两个十六进制数字&#xff08;0–9或A–F&#xff09;表示该字节的数值。 利用网…...

【六级】作文模板-议论文-问题解决

视频来源&#xff1a; https://www.bilibili.com/video/BV1vK4y1e7A6/?spm_id_from333.880.my_history.page.click&vd_sourcefb8dcae0aee3f1aab700c21099045395 1、前言 两类作文&#xff1a; 议论文 &#xff08;how to 问题解决型&#xff09; what 某种现象 漫画 &…...

leetcodetop100 (22) 反转链表

给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表 简单的用一个动态数组Arraylist记录&#xff0c;然后倒序遍历赋值给一个新的链表&#xff0c;这种空间复杂度是o(n),估计需要优化。 采用双指针&#xff1b; 我们可以申请两个指针&#xf…...

RabbitMQ配置文件_修改RabbitMQ MQTT的1883端口

Centos离线安装RabbitMQ并开启MQTT Docker安装rabbitMQ RabbitMQ集群搭建和测试总结_亲测 Docker安装RabbitMQ集群_亲测成功 rabbitmq.conf 默认没有配置文件,可以手动创建: /etc/rabbitmq/rabbitmq.conf # # RabbitMQ broker section # ## Related doc guide: https://…...

【Graph Net学习】LINE实现Graph Embedding

一、简介 LINE (Large-scale Information Network Embedding,2015) 是一种设计用于处理大规模信息网络的算法。它主要的目标是在给定的大规模信息网络中学习高质量的节点嵌入&#xff0c;并尽量保留网络中信息的丰富性。其具体的表现为在一个低 维空间里以向量形式表示网络中的…...

docker安装使用xdebug

docker安装使用xdebug 1、需要先安装PHP xdebug扩展 1.1 到https://pecl.php.net/package/xdebug下载tgz文件&#xff0c;下载当前最新稳定版本的文件。然后把这个tgz文件放到php/extensions目录下&#xff0c;记得install.sh中要替换解压的文件名&#xff1a; installExtensio…...

(1) ESP32获取图像,并通过电脑端服务器显示图像

目录 一、所需器件工具 二、客户端与服务器进行UDP通信 1、客户端代码 2、服务器端代码 3、效果展示 三、客户端拍照&#xff0c;通过UDP传输到服务器进行显示 1、客户端获取图像并UDP传输 2、电脑端服务器显示图像 3、效果展示 四、代码链接 一、所需器件工具 1.ESP3…...

乐鑫科技全球首批支持蓝牙 Mesh Protocol 1.1 协议

乐鑫科技 (688018.SH) 非常高兴地宣布&#xff0c;其自研的蓝牙 Mesh 协议栈 ESP-BLE-MESH 现已支持最新蓝牙 Mesh Protocol 1.1 协议的全部功能&#xff0c;成为全球首批在蓝牙技术联盟 (Bluetooth SIG) 正式发布该协议之前支持该更新的公司之一。这意味着乐鑫在低功耗蓝牙无线…...

1.算法——数据结构学习

算法是解决特定问题求解步骤的描述。 从1加到100的结果 # include <stdio.h> int main(){ int i, sum 0, n 100; // 执行1次for(i 1; i < n; i){ // 执行n 1次sum sum i; // 执行n次} printf("%d", sum); // 执行1次return 0; }高斯求和…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

12.找到字符串中所有字母异位词

&#x1f9e0; 题目解析 题目描述&#xff1a; 给定两个字符串 s 和 p&#xff0c;找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义&#xff1a; 若两个字符串包含的字符种类和出现次数完全相同&#xff0c;顺序无所谓&#xff0c;则互为…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...