OSPF最通俗易懂的讲解——OSPF邻接关系建立过程

在这里插入图片描述

  1. down
    代表还没发现任何存在的邻居;

  2. init
    表示邻居的hello包,但hello中没法发现自已的Router id,此时代表你发现了邻居的存在,但并不代表邻居已经发现你,也称为one-way;

  3. two-way
    收到邻居hello报文,井从hello中发现的自己的router id,two-way之后,drother之间就只到two-way状态,不会进行LSDB的同步,其他情况会注续进行LSDB的同步,进人到exstart状态,开始发送DBD报文;

  4. exstart
    exstart发送的DBD报文只做主从选举,而不会携带任何LSDB中LSA的头部信息,并各自表达自身是初次发送DBD报文,后续还希望继续发送DBD报文,并以自身是master,随即生成DBD报文的序列号,进行主从选举,彼此交换DBD报文后,根据router id的大小完成主从选举。router id大的成为master, router id小的为slawe.
    以下是报文交互:

    	1.1.1.1 I = 1  M = 1  MS = 1  SEQ = X
    	2.2.2.2 I = 1  M = 1  MS = 1  SEQ = Y
    
  5. exchange
    主从选举完毕后,进入到exchange状态,slave路由器开始发送携带自身LSDB中LSA的头部信息的DBD报文,并使用exstart状态master路由器的序列号作为该DBD报文的序列号,以下是报文交互:
    slave 1.1.1.1 I= 0 M = 1/0
    (1代表LSDB中LSA的头部信息还没发完,后续需要继续通过DBD报文发送,0代表LSDB中所有LSA的头部已经发送完毕) SEQ=Y
    master 2.2.2.2 I=0 M = 1/0 SEQ=Y+1
    slave 1.1.1.1 I=0 M= 1 SEQ = Y+1
    master 2.2.2.2 I=0 M=1 SEO=Y+2

    OSPF 采用3次握手建立邻居关系,是OSPF协议可靠性的体现。exstart做主从选举,为实现可靠的DBD同步做准备。

    slave  1.1.1.1  I  =  0  M = 1/0  MS = 0  LSA头部
    (M1代表LSDB中ISA的头部信息还没发完,后续需要继续通过DBD报文发送,0代表LSDB中所有LSA的头部已经发送完毕)
    
    master  2.2.2.2  I = 0  M = 1/0  MS = 1  SEQ = Y+1  lsa头部  1
    slave  1.1.1.1  I = 0  M = 1 MS = 0  SEO = Y+1  lsa头部
    master 2.2.2.2 I =0 M= 1 MS = 1  SEQ = Y+2  lsa头部
    slave 1.1.1.1  I=0 M= 0  MS=0  SEQ =Y+2  lsa头部
    master 2.2.2.2  I=0 M = 0  MS = 1  SEQ = Y+3  lsa头部
    slave  1.1.1.1  I = 0  M=0  MS = 0  SEQ = Y+3
    

    slave总是用master的序列号向master发送DD报文,master将slave序列号加1 向从发送DD报文,实现DD报文的隐式确认

    为什么要采用隐式确认?原因DD报文携带自身LSDB中所有SA的头部信息,信息比较多,一一确认处理起来比较繁琐,消耗设备资源影响邻居收敛的时间,所以采用相对简单的隐式确认机制。

  6. loading
    exchange完成后,邻居根据DBD报文的头部信息和自身LSDB的头部信息做比较,进行LSDB的同步,同步的规则:交换彼此没有的LSA以及新的LSA替换老旧的LSA,实现邻居LSDB的一致性。随即发送LSR ,LSU,LSAck完成LSA的交换。

  7. Full
    Full状态,LSDB一致,完成邻接关系建立。

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
OSPF(Open Shortest Path First)是一种用于路由选择的内部关协议(IGP)。在OSPF中,邻接关系是指相邻的两个路由器之间建立的连接,用于交换网络信息和更新路由表。下面是OSPF邻接关系建立过程的步骤: 1. Hello消息交换:路由器通过发送Hello消息来探测相邻路由器。Hello消息包含了路由器的标识和其他参数,如Hello计时器的值、区域ID等。当两个路由器收到对方的Hello消息并验证通过后,它们就成为邻居候选者。 2. 邻居确认:当一个路由器收到另一个路由器的Hello消息后,它会检查对方的参数是否符合要求。如果符合要求,它会发送一条Hello消息作为确认,并将对方添加到邻居列表中,此时邻接关系成立。 3. DD(Database Description)消息交换:在邻接关系建立后,路由器会交换DD消息。DD消息包含了路由器的LSDB(链路状态数据库)的摘要信息。通过比较DD消息中的摘要信息,路由器可以判断自己的LSDB是否比对方的新。 4. LSR(Link State Request)消息交换:如果一个路由器发现自己的LSDB不是最新的,它会发送LSR消息向邻居请求缺失的LSA(链路状态广告)。 5. LSU(Link State Update)消息交换:当一个路由器收到LSR消息后,如果它有被请求的LSA,它会发送LSU消息将这些LSA发送给请求者。 6. LSAck(Link State Acknowledgment)消息交换:接收到LSU消息的路由器会发送LSAck消息进行确认,以保证信息的可靠性。 邻居是指在OSPF网络中相互连接的路由器。邻接关系建立在邻居之间的,它表示两个相邻路由器之间可以进行OSPF信息的交换。邻接关系建立是通过Hello消息的交换和参数验证来实现的。邻接关系建立对于构建OSPF网络拓扑、更新路由表非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wx:wlgcs_123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值