ospf 是增量更新吗 还是发送整个路由表到邻居

如题所述

最近我也在学OSPF,我来详细说一下建立方式

OSPF的更新方式:

一、发现阶段

    A先发送一个简单的hello包给B。

    此时为Init阶段(能接受对方的消息,但是不确定对方是否能接受自己的消息)

    B拆开hello包发现里面并没有自己的RID,于是返还一个RID给对方,并且里面有自己的RID,也有A的RID

    A拆开包后发现有自己的RID,还有B的RID,很高兴,再发送个hello包回去,里面包含了双方的RID

    这时互相为2 Way状态(确定可以互相发送消息,但是不确定能不能建立邻里关系)

    那么发现阶段就结束了。

二、DD交换阶段

    初步交换DD(包含LSA头部)如果需要DR选举,那么就是这个阶段了,在40秒内(4倍hello时间)选举完毕,如果已经完成了DR/BDR竞选,那么就直接更从选举结果(不抢占)

    此时为Exstart状态(说明双方可见,邻居建立也没问题,在进行DD交换,顺便选举DR/BDR)

    A交给B,DD数据包(LSA头部)简单的说,这是一个路由表的目录,并不能够直接形成路由表。

    B交给A,DD数据包,这里A先交给B还是B先交给A是没有顺序说法的。

    互为Exchange(DR/BDR已经选举完毕了,在建立LSA列表,准备从其他路由中下载这些路由列表)

    注:DD:数据库描述,主要用于交换LSA头部

三、双FULL状态

    如果A没有B发过来的LSA中的某个路由,那么它就会发送LSR(链路状态请求包),B会返还一个LSU(链路状态更新包),A再返还一个LS Ack来表示自己已经收到了这个消息。

    此时为Loading状态(下载更新完整的LSA,没有完成就会一直这样)

    B也会做相同的动作来下载LSA头部中所没有的路由,请求A返还。

    最终双方都会处于FULL状态(LSA都下载完毕,从Loading或者Exchange转变来)

    后续如果说B的路由增加了,那么它的LSA也会增加,这时会以触发更新的形式来发送一个LSU到组播地址224.0.0.5如果是DRother,就会发送到224.0.0.6。

    (值得注意的是,组播224.0.0.5是DR/BDR负责发送LSU的地址,每个区域内的路由都会单播一个LSA Ack来作为回应。

    而DRother要更新,就发送给224.0.0.6,这是一个只有DR/BDR才监听的组播地址,后续LSU依旧由DR/BDR负责从224.0.0.5来发送LSU,而更新这条路由的DRother不需要回复LSA Ack)

总结:初步OSPF交流时,会发送全部的相关路由,互相交换、下载自己所需要的所有路由条目,之后会以部分更新的形式来更新自己的路由!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-20
ospf发送的是LSU包含LSA,不发路由表也不发路由,OSPF靠的就是LSA来搞计算路由,就是其他路由器发送LSA给你的时候,要你这台路由器自己去算metric来计算路由,所以比eigrp慢,别人eigrp都是算好的。
第2个回答  2013-10-17
ospf不是DV型的 发LSA DV型(EIGRP RIP等)才发路由表 EIGRP是增量更新
第3个回答  2018-04-18
ospf是增量更新,不是发整个路由表到邻居。
第4个回答  2013-10-17
OSPF只发链路状态,也就是LSA,路由器接到更新后,自己根据算法计算路由
相似回答