OSPF uses five packet types:
Hello packet
Database Description (DD) packet
During adjacency initialization, two routers send DD packets to negotiate their master/slave relationship. In this phase, the DD packets do not contain an LSA header. When two routers exchange DD packets, one functions as the master and the other functions as the slave. The master defines a start sequence number and increments the sequence number by 1 each time it sends a DD packet. After the slave receives a DD packet, it uses the sequence number carried in the DD packet for acknowledgement. After an adjacency is established, routers use DD packets to describe their own LSDBs for LSDB synchronization. A DD packet contains the header of each LSA in an LSDB and is the summary of all LSAs. An LSA header uniquely identifies an LSA. The LSA header occupies only a small portion of the LSA, which reduces the amount of traffic transmitted between routers. A neighbor can use the LSA header to check whether it already has the LSA.
Link State Request (LSR) packet
After two routers have exchanged DD packets, they send LSR packets to request each other's LSAs. The LSR packets contain the summaries of the requested LSAs.
Link State Update (LSU) packet
A router uses an LSU packet to transmit LSAs requested by its neighbors or to flood its own updated LSAs. The LSU packet contains a set of LSAs. To ensure reliable LSA flooding, the router uses an LSAck packet to acknowledge the LSAs contained in an LSU packet that it received from a neighbor. If an LSA fails to be acknowledged, the router directly retransmits the LSA to the neighbor.
Link State Acknowledgement (LSAck) packet
A router uses an LSAck packet to acknowledge the LSAs contained in a received LSU packet. The LSAs can be acknowledged using LSA headers.