列举ospf的5种报文类型_OSPF基本原理(报文类型与邻居状态机)_weixin_39707693的博客-程序员宅基地

技术标签: 列举ospf的5种报文类型  

由于RIP协议本身所存在的一些缺陷,但随着网络的规模逐渐增大。显然RIP已经不能满足需求,在这种情况下,OSPF路由协议以强大优势脱颖而出。

那么我们接下来详细介绍一下,OSPF的5种报文类型和邻居状态机。

OSPF协议报文(5种)

·hello :周期发送,用来发现和维持ospf邻居关系。其中包括一些定时器的数值、DR、BDR、以及自己已知的邻居。

·DD(Database Description,数据库描述) :第一种DD报文:用来确定Master/Slave关系,避免DD报文的无序发送。第二种DD报文:含有路由信息的DD报文,LSDB中LSA的摘要,用于LSDB同步。

·LSR(Link State Request,链路状态请求):通过DD报文交互后,向对方请求所需的LSA。

·LSU(Link State Update,链路状态更新):对LSR的回复,向对方发送其所需的LSA。

·LSAck(Link State Acknowledgment,链路状态确认):用来对收到的LSA进行确认。确认的LSA的Header(LSA的Header唯一标识一条LSA)。

注:一般DD、LSR、LSU报文发出后,没有得到相应的响应报文,可能会重新发送。

OSPF邻居状态机

·Down:状态机的初始状态,在Dead-Interval时间内没有接收到OSPF的Hello报文;当邻居状态是Full时,在RouterDeadInterval时间内(默认4倍HelloInterval)没有收到邻居的hello包,或者手工配置的邻居信息被移除,则邻居状态变为Down。

·Attempt:该状态仅在NBMA网络中存在,定期向手工配置的邻居发送hello报文;

·Init:本状态表示已经接收到了邻居的Hello报文,但是Hello报文中没有本路由器的Router ID(对方没有收到本路由器的Hello报文);

·2-way:双方已经都收到对端的Hello报文,建立成了邻居关系;在广播和NBMA类型的网络中,路由器仅与DR/BDR建立邻接关系(Full);P2P、P2MP网络类型中,路由器和所有相连的路由器,建立邻接关系(Full);在Init状态下接收到邻居发来的DD报文,也会导致路由器变为2-way状态;

·Exstart:路由器和它的DR/BDR建立master-slave关系,并选择一个初始的Sequence number来形成邻接,Router ID高的路由器成为Master并且开始交换路由信息,同时只有Msater可以增加Sequence number值;

注:该状态下交换第一类DD报文;

·Exchange:Master-Slave关系协商成功后,路由器交互第二类DD报文,该报文含有LSBD的摘要内容,用于同步LSDB。

·Loading:DD报文交互同步LSDB后,基于DD报文的信息;

本地路由器发出LSR向邻居请求缺失的LSA;对端路由器回复LSU含有缺失的LSA;最后,本地路由器回复LSAck用于对接收到的LSA进行确认;

·Full:在此状态下,路由器达到稳定邻接状态;

注:在广播网络中,邻居DRothers之间(DR/BDR除外)会最终处于2-way状态,不建立邻接关系;

对技术帖内容有任何疑问,请联系官方邮箱:[email protected],也欢迎广大学员踊跃投稿,一经录用,有稿费酬谢。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39707693/article/details/111555033

智能推荐

关于字符数组以及字符串数组_一尾鱼汤的博客-程序员宅基地

例题13://13.编写一程序,将两个字符串连接起来,结果取代第一个字符串(mark下来加深印象),加油加油加油!(1)自己编写一个strcat函数int main(){ int strcat(char a[100],char b[100]); char a[100]={0}, b[100]={0}; //初始化字符数组; int i=0,j=0; cout<<"请输入两个字符串:"; cin>>a>>b;

Python配置Qt Designer与PyUIC_热心市民付先生的博客-程序员宅基地_python pyuic

Python配置Qt Designer与PyUIC安装pyqt相关包pip install pyqtpip install pyqt5-toolsPyCharm中选择相应的python解释器3. 添加外部工具名称填写自己方便易记得即可,我的名称添加为QTDesigner程序选择designer.exe,位置为当前解释器路径下的Lib\site-packages\pyqt5-tools\designer.exe工作目录为当前项目文件的目录添加选择完毕界面为:确定即可,再次

关于WebSocket_彪彪_的博客-程序员宅基地

原文链接:https://www.liaoxuefeng.com/wiki/1022910821149312/1103303693824096WebSocket是HTML5新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。为什么传统的HTTP协议不能做到WebSocket实现的功能?这是因为HTTP协议是一个请求-响应协议,...

FineUI初学手册_star_2008_的博客-程序员宅基地

女朋友鄙视我原创少...1.下载 进入官方论坛:http://www.fineui.com/bbs/要用到下载源代码和空项目下载http://fineui.codeplex.com/http://fineui.com/bbs/forum.php?mod=viewthread&tid=2123源代码直接下载,注意FineUI版本空项目里下载 对应版本的空项

NSStringDrawingOptions_yinachong的博客-程序员宅基地

NSStringDrawingTruncatesLastVisibleLine:如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果没有指定NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略。NSStringDrawingUsesLineFragmentOrigin:绘制文本时使用 line fragement or

随便推点

HTML5 APP----2014年H5没火,why?2016年H5能火,why?_谷震平的博客-程序员宅基地

0 前言        HTML5做跨平台的APP,在大多数人的脑子里没有什么好感,我身边的朋友也这么说。Anyway,我用完以后得出这样的结论:HTML5跨平台APP开发,在2015年以后会越来越火。    在2014年以前,HTML5的性能和能力都不够充足。特别是性能,因为Android4.4以下版本不能支持webGL技术,所以大部分低端Android手机无法流畅运行手机APP。D

Chromium多进程架构初探-兼谈Android平台版本_coloriy的博客-程序员宅基地

Chromium以多进程架构著称,它主要包含四类进程,分别是Browser进程、Render进程、GPU进程和Plugin进程。之所以要将Render进程、GPU进程和Plugin进程独立出来,是为了解决它们的不稳定性问题。也就是说,Render进程、GPU进程和Plugin进程由于不稳定而引发的Crash不会导致整个浏览器崩溃。本文就对Chromium的多进程架构进行简要介绍,以及制定学习计划。

Mybatis源码分析_风铃峰顶的博客-程序员宅基地

实例import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.*;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.ArrayList;import java.util.List; private SqlSessionF

Composer常见问题汇总_cicibi6696的博客-程序员宅基地

问题一: [Composer\Downloader\TransportException] ...

什么时候不能使用箭头函数_一水茶缘YY的博客-程序员宅基地

共 2670 字,读完需 5 分钟。编译自 Dmitri Pavlutin 的文章,对原文内容做了精简和代码风格优化。ES6 中引入的箭头函数可以让我们写出更简洁的代码,但是部分场景下使用箭头函数会带来严重的问题,有哪些场景?会导致什么问题?该怎么解决,容我慢慢道来。能见证每天在用的编程语言不断演化是一件让人非常兴奋的事情,从错误中学习、探索更好的语言实现、创造新的语言特性是推动编程语言版本迭代的动

推荐文章

热门文章

相关标签