OSPF---邻居状态机
一,hello报文的邻居发现建立过程:如下图
I=1 -----代表当前的DD报文是选举主从的,在exstart状态下才会发送I=1 的报文。
M=1------代表自己还有后续的DD报文 ,告诉对方我得DD报文还没有发送完毕。
MS=1-----代表自己是MASTER, ms=0 代表自己是slave。
DD报文中的两端的MTU值必须一致,在华为的设备中MTU=0,标识忽略MTU的检查。
1,RT1发送hello报文,DR 没有,邻居没有。第一个探测hello,没有任何的外部信息,只有携带了自己的routerid。
2,RT2在收到AR1的hello报文之后,记录RT1的routerid,并放自己的hello包中。并发送hello报文给RT1,携带自己的routerid。状态升级为INIT。
3,RT1在收到RT2的hello报文后,状态调整为2way。因为此时RT2的hello报文中有自己的routerid。并发送带有RT2的routerid的hello报文给对方。
4,RT2在收到RT1的hello报文后,状态调整为2way。因为此时收到的RT1的hello报文中有自己的routerid。到此双方达到稳定的2way状态。
============================================================================================================================
二,邻居状态机:下图
1, 开始的状态down状态,也就是第一个hello报文都还没有发送的时候。
2,在收到对方的hello报文后,将状态提升到init状态。此时收到的hello报文中,只有对方的routerid。因为存在双方同时发送第一次的hello报文情况,
所以双方都有可能同时存在都为init的情况。
3,在收到对方的hello报文时候,如果报文中含有自己的routerid,那么状态提升到2-way状态。
4,双方到达2-way状态后,进入exstart状态,开始发送DD报文,选择主从。之后进入到Exchange状态,发送DD报文的LSA简要信息摘要。
5,如果没有需要要请求的LSA那么直接进入FLL状态。如果有需要更新的报文,那么进入loading状态,开始更新信息,更新完毕之后转入到Full状态。