OSPF开放最短路径优先(Open Shortest Path First)协议

OSPF开放最短路径优先(Open Shortest Path First)协议

  • 为克服RIP的缺点(限制网络规模,坏消息传得慢)在1989年开发出来的
  • 原理很简单,但实现很复杂
  • 使用了Dijkstra提出的最短路径算法SPF(Shortest Path First)
  • 采用分布式的链路状态协议(link state protocol)
  • 现在使用OSPFv2
  • OSPF是网络层协议,它不使用TCP或UDP,而直接用IP数据报传送(其IP数据报首部的协议字段为89)
  • 重要优点:OSPF更新过程收敛速度快,没有坏消息传的慢的问题

链路状态(Link State)路由算法

概述

  • 每个结点具有完整的网络拓扑结构信息。它们执行两项任务:第一,主动测试相邻结点状态。第二,定期的将所直连的链路状态传播给所有其他结点
  • 每当链路状态报文到达时,路由结点便使用这些状态信息去更新自己的网络拓扑图,一旦网络拓扑图有变化,结点就用Dijkstra最短路径算法重新计算路由(从单一源点出发到达所有目的结点的最短路径),以更新自己的路由表(虽然用Dijkstra算法能计算出完整的最优路径,但路由表中不会存储完整路径,而只存储下一跳,只有到了下一跳路由器,才能知道再下一跳该怎么走)

链路状态算法有三个核心特性

  • 采用洪泛法(flooding),向本自治系统中所有路由器发送信息
  • 发送的信息是与本路由器相邻的所有路由器的链路状态(这只是路由器掌握的部分信息。链路状态:本路由器都和哪些路由器相邻,以及该链路的度量 (metric),度量是个抽象的概念,对于OSPF协议,度量主要指费用、距离、时延、带宽等)
  • 当链路状态发生变化或每隔一段时间(如30分钟),路由器才用洪泛法向所有路由器发送此信息(在OSPF协议中,这种信息叫链路状态更新分组,除此之外,结点还定期发送Hello消息和链路状态数据库(LSDB)描述符消息。Hello消息用于发现和维护链路上的邻居关系;LSDB描述符消息则包含了发送节点的整个链路状态数据库的概要信息,以便邻居节点可以比较各自的LSDB并决定是否需要交换更详细的LSA(链路状态通告)信息。这些定期发送的消息有助于保持邻居关系,并在网络拓扑结构发生变化时快速进行响应

与距离向量(Distance Vector)路由算法的比较

  • 在距离向量路由算法中,每个结点仅与它的直接邻居交谈,它为它的邻居提供它知道的全部信息(自己到网络中所有其他结点的最小距离估计)
  • 在链路状态算法中,每个结点与所有结点交谈,但它仅提供与它直接相连的链路状态(自己到所有邻居结点的最小距离估计)

OSPF算法

OSPF算法是最典型的链路状态算法,它除了具有链路状态算法通有的特点外,还具有以下特点

  • OSPF对不同的链路可根据IP分组的不同服务类型(TOS)而设置成不同的代价。因此,OSPF对于不同的业务可计算出不同的路由,十分灵活
  • 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量进行多路径间的负载均衡
  • 所有在OSPF路由器之间交换的分组都具有鉴别功能,因而保证了仅在可信赖的路由器之间交换链路状态信息
  • 每个链路状态都带上一个32位的序号,序号越大,链路状态越新

在OSPF中,全网的拓扑结构图叫做链路状态数据库

OSPF算法的主要优点

  • 每个路由结点都使用同样的原始状态数据独立地计算路径,而不依赖中间结点的计算
  • 链路状态报文不加改变的传播,易于定位故障
  • 链路状态报文仅包含单个结点所直连的链路状态信息,其大小与网络规模(结点个数)无关

OSPF的区域划分

为使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干更小的范围,称为区域。划分区域的好处是,将利用洪泛法交换链路状态信息的范围局限于每个区域而非整个自治系统,减少了整个网络上的通信量。在一个区域内部的路由器只知道本区域的完整网络拓扑而不知道其他区域的网络拓扑情况。这些区域也有层次之分。处在上层的域称为主干区域,负责连通其他下层的区域,并且还连接其他自治系统

  • 主干区域的标识符规定为0.0.0.0
  • R3、R4、R7是区域边界路由器ABR(area border router)
  • R3、R4、R5、R6、R7是主干路由器BR(backbone router)
  • R6是自治系统边界路由器ASBR(AS border router)

OSPF的五种分组类型即分组格式

  • 问候(Hello)分组
  • 数据库描述(Database Description)分组,即“摘要信息”
  • 链路状态请求(Link State Request)分组
  • 链路状态更新(Link State Update)分组
  • 链路状态确认(Link State Acknowledgment)分组

OSPF协议的工作过程

指定的路由器DR(designated router)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Postman实现接口的文件上传

近期在复习Postman的基础知识,在小破站上跟着百里老师系统复习了一遍,也做了一些笔记,希望可以给大家一点点启发。 接口的文件上传,与其他接口的传参差不多,只要点击form-data,选择要上传的文件即可。 实际…

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-A

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-A 一、竞赛时间 总计:360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …

怎么为pdf加水印?

怎么为pdf加水印?最近很多小伙伴都有这样的疑问。你可以在浏览器上搜索一下,关于这方面的很多还是有很多人不是很清楚的。虽然我们自己在很多PDF文件上都看到了水印,那么真的到了自己这边需要进行操作的时候,确实还是有些这样或是…

Python最强自动化神器..

1、Playwright介绍 Playwright是一个由Microsoft开发的开源自动化测试工具,它可以用于测试Web应用程序。Playwright支持多种浏览器,包括Chrome、Firefox和WebKit,同时也支持多种编程语言,如JavaScript、TypeScript、Python和C#。…

如何确保消息不会丢失

本篇文章大家还可以通过浏览我的博客阅读。如何确保消息不会丢失 - 胤凯 (oyto.github.io)很多人刚开始接触消息队列的时候&#xff0c;最经常遇到的一个问题就是丢消息了。<!--more-->对于大部分业务来说&#xff0c;丢消息意味着丢数据&#xff0c;是完全无法接受的。 …

软件测试之接口自动化测试实战

接口自动化测试是指通过编写程序来模拟用户的行为&#xff0c;对接口进行自动化测试。Python是一种流行的编程语言&#xff0c;它在接口自动化测试中得到了广泛应用。下面详细介绍Python接口自动化测试实战。 1、接口自动化测试框架 在Python接口自动化测试中&#xff0c;我们…

DS二叉树的存储

前言 我们上一期已经介绍了树相关的基础知识&#xff0c;了解了树相关的概念和结构、二叉树的概念和结构以及性质、也介绍了他的存储方式&#xff01;本期我们来根据上期介绍的对二叉树的顺序存储和链式存储分别进行实现&#xff01; 本期内容介绍 二叉树的顺序结构 堆的概念…

ADAudit Plus:提升企业安全的不可或缺的审计解决方案

随着信息技术的飞速发展&#xff0c;企业在数字化转型过程中面临着越来越多的安全威胁。为了保护敏感数据、防范内外部攻击&#xff0c;企业需要强大的安全审计解决方案。在这个背景下&#xff0c;ADAudit Plus作为一款强大而全面的安全审计工具&#xff0c;成为了众多企业的首…

动态sql行转列

动态sql行转列 介绍案例转之前转之后 注意 介绍 本篇介绍 根据 时间格式化后行转列的案例讲解动态sql案例的初学 案例 --设置一个动态变量 赋予初始值 SET sql NULL;--获取规范化后需要用到的行头列表 SELECT GROUP_CONCAT(CONCAT(--注意1MAX(IF(date ", date, "…

Pytest+Allure生成自动化测试报告!

前言 在自动化测试中&#xff0c;有unittestHTMLTestRunner自动化测试报告&#xff0c;但是生成的测试报告不够美观详细&#xff0c;今天我们来学习一下PytestAllure生成自动化测试报告。 一&#xff1a;安装python中的allure依赖库 在dos窗口中&#xff0c;输入下面三个命令…

一个UE无法注册的问题

问题场景是环境中只有一个小区&#xff0c;UE在找到这个小区&#xff0c;收到MIB SIB1后一直不发起注册。我想这大概是和S准则不满足有关系了&#xff0c;这个问题基本是又没啥好看的了&#xff0c;太简单了&#xff0c;在SIB1周围找找就解决了&#xff0c;于是我发现了以下log…

世界坐标系,相机坐标系,像素坐标系转换 详细说明(附代码)

几个坐标系介绍,相机内外参的回顾参考此文。 本文主要说明如何在几个坐标系之间转换。 本文涉及: 使用相机内参 在 像素坐标系 和 相机坐标系 之间转换。使用相机外参(位姿)在相机坐标系 和 世界坐标系 之间转换。(qw,qx,qy,qz,tx,ty,tz)形式的外参如何使用。以具体情景为…