After two OSPF neighbour routers have exchanges all their DD packets, each router has a full list of LSAs known by their neighbour. Any missing LSA can then be requested.
To determine if a neighbour has a more recent version of an LSA, the router compares the sequence number of the LSA header received from the neighbour. If the sequence number is higher than its own the router knows its neighbour has a more recent version of the LSA, and uses a LSR (Link State Request) Packet to request one or more LSAs from the neighbour.
The LSR Packet is documented in RFC 2328 section A3.4. The packet immediately follows the 24byte header and is shown below:

Note LSA sequence numbers start from 0x80000001 to 0xFFFFFFFF.
Once a neighbour has recieved a LSR packet, it replies with a LSU (Link State Update) Packet. Both router are in the Loading state while this process continues. When the process is complete they move to the Full state.
The LSU Packet is documented in RFC 2328 section A3.5. The packet immediately follows the 24byte header and is shown below:

The packet simply states the number of LSA’s and includes them in the update.
The process of sending LSR/LSU packets is a reliable process by virtue of acknowledging recieved update packets. The LSU can be acknowledge either by repeating the same LSU packet back to the sending router, or sending back an LSAck packet.