建立过程图解
状态变化过程
状态过程解析
Down:
邻居会话的初始阶段,表示没有收到hello报文
此时本地端会发送hello报文
Attempt:
发生在NBMA网络--帧中继网络中,表示在deadtime失效时间前没有收到hello报文,如果超时,则退回down(了解即可)
此时会向对端发送轮询hello报文
Init:
收到hello报文后,如果hello报文中的各项参数正确,如区域号、认证信息等(如下图),变成此状态(此时只有一方知道了邻居的存在 1-way)
之后发送的hello报文中会有对方的Router ID
2-way:
另一方收到hello报文后,如果从中看到了自己的Router ID,以及hello报文中的各项参数正确,如区域号、认证信息等,进入此状态(双方都知道对方的存在 2-way)
此时如果是网络类型是广播,则需要选举BDR和DB,非DR 和 DR与BDR建立邻接关系,非DR之间建立邻居关系。
如果不需要形成邻接关系,邻居状态就停留在此状态,否则直接进入Exstart;
注意:邻接关系>邻居关系
Extart 和 Exchange(至少五个DD报文)
extart:确定master和slave关系和序列号
exchange:使用DD报文交互LS信息
1.相互发送一个空的DD报文(此时二者的DD序列号不同)
注:DD报文序列号和LSA序列号不是一个东东
2.比较DD报文,Router ID大者为master;
slave发送第三个DD报文,使用master的DD序列号,隐含确认主从关系;
此时DD报文包含LSA信息,slave状态变为Exchange;
如果是最后一个DD,标志位M置为0;
3. master收到使用自己序列号的DD报文后,表示对方确认自己为master;状态变为Exchange,同样也会发送DD报文描述自己的LS信息,序列号+1;
4. slave收到master最后一个DD报文后,使用空的DD报文回复确认,此时状态变为Loading。
Loading:
确定主从关系后,双方开始发送LSR请求LSA信息,对方收到请求后回复LSAck报文,直到LSA同步。
注意,双方不会对每个LSU发送LSAck进行确认,会采用LSA头部的序列号进行隐式确认,类似TCP的序列号。但是会对最后的一个LSU发送LSAck进行确认。
Full:
LSR重传列表位空,LSA交互完毕。