OSPF neighbors progress through states before exchanging routes:
Down: No Hellos received.
Init: Hello received, but neighbor hasn't acknowledged us.
-Way: Bidirectional communication. DR/BDR election happens here.
ExStart: Routers negotiate who sends database descriptions first.
Exchange: Routers exchange database description packets.
Loading: Routers request and receive full LSAs they're missing.
Full: Databases synchronized. Routers are fully adjacent.
If adjacency stalls at -Way or ExStart, check MTU mismatches or authentication.