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
| # | Packet | Purpose |
|---|---|---|
| 1 | Hello | Discover and maintain neighbors; agree on parameters |
| 2 | DBD (Database Description) | Advertise a summary of the local LSDB |
| 3 | LSR (Link-State Request) | Ask a neighbor for specific LSAs that are missing or outdated |
| 4 | LSU (Link-State Update) | Carry the actual LSAs (the full link-state data) |
| 5 | LSAck (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
- Hello → neighbors discovered, parameters agreed.
- DBD → databases summarized and compared (Master/Slave set).
- LSR → request the missing/newer LSAs.
- LSU → the requested LSAs are delivered.
- 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.