Down
这是第一个OSPF邻居状态,意味着还没有从邻居收到任何信息(hello包),但是在这个状态下依旧可以发送hello包。
在完全的邻接状态中,如果路由在死亡时间(RouterDeadInterval time)(死亡时间默认=4倍的hello时间(40s))内没有从邻居收到hello包或者手工删除了邻居,那么该邻居状态从full变为Down.
Attempt
这个状态只在NBMA(非广播多路访问)环境下手工配置的邻居情况下有效。在Attmept状态,路由器间断循环发送单播hello包给所有邻居,但是不会从邻居收到任何回应。
Init
这个状态表示路由器已经从它的邻居收到了hello包,但是在hello包中没有接收路由器(即自己)的routerID。当一个路由器从一个邻居收到hello包后,它会在自己的hello包里列出发送路由器的router ID作为回应以确认它收到一个有效的hello包。PS:如果不发送这个回应,邻居就会卡在init状态下!
2-way
路由器与其邻居路由器建立起双向通信,路由器会在其邻居路由器发送过来的Hello报文中看到自己。邻居路由器间决定是否建立邻接关系。在BMA和NBMA网络中,一个路由器将只与DR(指定路由器)和BDR成为full状态;其他邻居将保持two-way 状态。 在点到点和点到多点(Point-to-point and Point-to-multipoint)网络中,将和所有邻居路由成为full状态。
在这个阶段结束,将进行DR和BDR选举。
注意:在init状态下从邻居收到DBD包(数据库描述报文)也会直接转变为2-way状态。
Exstart
一旦DR和BDR选举产生,将交换LSA信息。
在这个状态,路由器要决定用于数据交换的初始的数据库描述数据包的序列号,以保证路由器得到的永远是最新的链路状态信息。同时,在这个状态路由器还必须决定路由器之间的主备关系,处于主控地位的路由器会向处于备份地位的路由器请求链路状态信息。
Exchange
在这个状态,OSPF路由交换DBD报文,DBS仅包含LSA(链路状态信息)和指定目录的LSDB(链路状态数据库)。每一个数据包都有一个数据包序列号。在这个状态,路由器还有可能向相邻路由器发送链路状态请求数据包来请求其相应数据。从这个状态开始,我们说OSPF处于Flood状态,报文会通过泛洪(Fooding) 到路由器的其他端口上。
Loading
在这个状态中,路由器将结束信息的交换,路由器会建立一个链路状态请求列表(Link-state Request List) 和一个链路状态转发列表(Link-state Retransmission List)。所有的不完整的或废弃的信息都将放到请求列表,中所有的更新报文将被送到转发列表中,直到该报文得到回应。
Full
这是两个OSPF路由器建立交互关系的最后一个状态,在这时,建立起交互关系的路由器之间已经完成了数据库同步的工作,它们的链路状态数据库已经一致。
本文转自q狼的诱惑 51CTO博客,原文链接:http://blog.51cto.com/liangrui/449677,如需转载请自行联系原作者