What this note covers

OSPF uses five packet types to discover neighbors, synchronize
databases, and keep the topology current. All five share a common
OSPF header and ride directly over IP as protocol 89.

The five OSPF packet types

#PacketPurpose
1HelloDiscover and maintain neighbors; agree on parameters
2DBD (Database Description)Advertise a summary of the local LSDB
3LSR (Link-State Request)Ask a neighbor for specific LSAs that are missing or outdated
4LSU (Link-State Update)Carry the actual LSAs (the full link-state data)
5LSAck (Link-State Acknowledgement)Confirm receipt of an LSU

The name people also use

DBD is also written DDP or just “Database Description”. All
refer to the same packet type 2.

What each packet does

Hello

  • Sent periodically to discover neighbors and act as a keepalive.
  • Carries the parameters that must match to form an adjacency:
    area ID, Hello/Dead intervals, authentication, subnet mask, and
    the stub flag.
  • Also lists the Router IDs of neighbors already seen — this is how
    a router detects two-way communication (it sees its own RID in
    a neighbor’s Hello).
  • Sent to 224.0.0.5 on most network types (unicast on NBMA).

DBD (Database Description)

  • Carries only the headers (summaries) of the LSAs in the local
    LSDB — not the full LSAs.
  • Lets a router compare its database against the neighbor’s without
    transferring everything.
  • Master/Slave roles are negotiated here so the exchange is orderly.

LSR (Link-State Request)

  • After comparing DBDs, a router sends an LSR to request the specific
    LSAs it is missing or that are newer on the neighbor.

LSU (Link-State Update)

  • The workhorse: carries the full LSAs in response to an LSR, and
    floods LSAs when the topology changes.
  • A single LSU can contain one or more LSAs.

LSAck (Link-State Acknowledgement)

  • Acknowledges received LSUs, giving OSPF its reliable delivery
    without needing TCP.

DBD vs LSU — the classic confusion

DBD carries LSA headers (a summary); LSU carries the full LSAs.
A router first learns what the neighbor has (DBD), then requests
(LSR) and receives (LSU) only what it actually needs. This is the
single most-tested distinction in this topic.

How they work together

The exchange in sequence

  1. Hello → neighbors discovered, parameters agreed.
  2. DBD → databases summarized and compared (Master/Slave set).
  3. LSR → request the missing/newer LSAs.
  4. LSU → the requested LSAs are delivered.
  5. LSAck → delivery confirmed.

The result is a synchronized LSDB, after which SPF runs. The state
machine that drives this is covered in
03 - Neighbor Adjacency & the 8 States.

Multicast addressing

  • 224.0.0.5 (AllSPFRouters) — used by all OSPF routers for Hellos
    and most flooding.
  • 224.0.0.6 (AllDRouters) — used to reach the DR and BDR only,
    on multi-access segments.