热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

OSPF协议简要理论总结

OS

01
基础知识
01
Route-id

用于AS内标识唯一路由器。

02
AS

自治系统(运行同一个路由器协议属于同一个自治系统)。

03
建立区域

同一个网段必须在同一个区域,否则建立不了区域

04
OSPF简介

OSPF开放式最短路径优先,采用的是SPF算法,是一种基于链路状态的内部网关协议

05
OSPF简介

(1)OSPF开放式最短路径优先,采用的是SPF算法,是一种基于链路状态的内部网关协议;
(2)OSPF报文封装在IP报文中,协议号为89


02 OSPF五种报文类型
01
HELLO报文

用于发现和维护邻居关系

02
DD报文

两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。

03
LSR报文

DD报文交互之后,向对方发送LSR报文来请求所需要的LSA摘要信息。

04
LSU报文

用来向对端路由器发送所需要的人。

05
LSACK报文

用来对接受到的LSU报文进行确认


03
OSPF状态机
OSPF状态机
Down

这是邻居的初始状态,表示没有从邻居收到任何信息。
Attempt

此状态只在NBMA网络上存在,表示没有收到邻居的
任何信息,但是已经周期性的向邻居发送报文,发送间
隔为HelloInterval。如果RouterDeadInterval间隔
内未收到邻居的Hello报文,则转为Down状态。
Init

在此状态下,路由器已经从邻居收到了Hello报文,
但是自己不在所收到的Hello报文的邻居列表中,
尚未与邻居建立双向通信关系。
2-Way

在此状态下,双向通信已经建立,但是没有与邻居建立
邻接关系。这是建立邻接关系以前的最高级状态。

ExStart

这是形成邻接关系的第一个步骤,邻居状态变成此状态
以后,路由器开始向邻居发送DD报文。主从关系是在
此状态下形成的,初始DD序列号也是在此状态下决定的。
在此状态下发送的DD报文不包含链路状态描述。

Exchange

此状态下路由器相互发送包含链路状态信息摘要
的DD报文,描述本地LSDB的内容。

Loading

相互发送LSR报文请求LSA,发送LSU报文通告LSA。

Full

路由器的LSDB已经同步。


04
OSPF优点

OSPF优点
1

无环路

2

收敛快(秒级)

3

扩展性好(可携带子网掩码)

4

支持认证

05
OSPF的LSA报文
OSPF的LSA有10多种,常用的为以下6类
01
Type1 LSA

路由器LSA(Router LSA)

02
Type2 LSA

网络LSA(Network LSA)(广播网专有)

03
Type3 LSA

网络聚合/网络汇总LSA(Network summary LSA)

04
Type4 LSA

ASBR聚合/汇总LSA(ASBR summary)

05
Type5 LSA

自治系统外部LSA(Autonomous system external LSA)

06
Type7 LSA

NSSA外部LSA(NSSA External LSA)

06
OSPF优化
1

OSPF的Hello包十秒一发,超过40秒的未收到HELLO
路由器会认定邻居死亡。
2
可以修改HELLO包的发送时间来减少
认定死亡的事件,以此来加快收敛。
3
也可以接口下开启BFD(链路检测)功能,
BDF链路检测后会立即通知OSPF,以此来加快收敛
(OSPF中BFD不能做单项的,只能做双向的。
4
BFD可以再全局下面做也可以再接口下面做。


07
OSPF的组播地址
1
224.0.0.5:所有人都监听。
作用:1.建立和维护邻居。2.DR向本MA网络成员通告LSA信息
2
224.0.0.6:只有DR和BDR监听
作用:1.DR-Other向DR/BRD通告它学到的LSA信息

08
如何判断DR和BDR

1、首先看接口优先级,优先级大的谁就是DR

2、如果接口优先级都是一样的话,看route-id,谁大就是DR

祝大家中秋节快乐!!!




推荐阅读
  • Flutter 2.* 路由管理详解
    本文详细介绍了 Flutter 2.* 中的路由管理机制,包括路由的基本概念、MaterialPageRoute 的使用、Navigator 的操作方法、路由传值、命名路由及其注册、路由钩子等。 ... [详细]
  • Ihavetwomethodsofgeneratingmdistinctrandomnumbersintherange[0..n-1]我有两种方法在范围[0.n-1]中生 ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 使用Jsoup解析并遍历HTML文档时,该库能够高效地生成一个清晰、规范的解析树,即使源HTML文档存在格式问题。Jsoup具备强大的容错能力,能够处理多种异常情况,如未闭合的标签等,确保解析结果的准确性和完整性。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
  • 这篇文章 | 夕阳下的防火墙命令全解 ... [详细]
  • 虚拟机网络设置与数据库远程连接优化指南
    本文针对个人计算机上虚拟机网络配置与数据库远程连接的问题,提供了一套详细的优化指南。在探讨远程数据库访问前,需确保网络配置正确,特别是桥接模式的设置。通过合理的网络配置,可以有效解决因虚拟机或网络问题导致的连接失败,提升远程访问的稳定性和效率。 ... [详细]
  • 在CentOS上部署和配置FreeSWITCH
    在CentOS系统上部署和配置FreeSWITCH的过程涉及多个步骤。本文详细介绍了从源代码安装FreeSWITCH的方法,包括必要的依赖项安装、编译和配置过程。此外,还提供了常见的配置选项和故障排除技巧,帮助用户顺利完成部署并确保系统的稳定运行。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • C# 实现可浮动工具栏功能
    本文介绍如何在 C# 中实现一个可浮动的工具栏,即工具栏可以从其初始位置拖出,并且可以重新拖回原位。通过创建一个新的窗口作为工具栏的容器,并利用 .NET Framework 提供的 ToolStrip 控件,可以轻松实现这一功能。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
author-avatar
大飞5678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有