BGP Message Types
The four messages every BGP session is built from — OPEN, UPDATE, KEEPALIVE, NOTIFICATION. Go past 'BGP works': dissect each packet field by field, see why KEEPALIVE runs at hold-time/3, and learn what a NOTIFICATION code 6/3 actually tells you at 3am. Validated against FRRouting's bgpd/bgp_packet.c.
What you'll explore
- 01
Message Overview
Every BGP message shares a 19-byte header — a 16-byte marker, a 2-byte length, and a 1-byte type. Four type codes carry the entire protocol.
- 02
OPEN Message
Sent once TCP is established. Carries Version, My AS, Hold Time, BGP Identifier, and Optional Parameters (capabilities) — the parameters both peers must agree on before the session comes up.
- 03
UPDATE Message
The workhorse. Carries Withdrawn Routes, Path Attributes (ORIGIN, AS_PATH, NEXT_HOP, LOCAL_PREF, MED), and NLRI — the prefixes being advertised.
- 04
NOTIFICATION Message
The error message. Carries a major Error Code and a subcode, then the session is torn down. Reading the code/subcode tells you exactly why a peer dropped.
- 05
KEEPALIVE Message
19 bytes — just the header, no payload. The smallest legal BGP message. Sent every hold-time/3 to prove the session is still alive.
Validated against FRRouting frr-10.6.1 — bgpd/bgp_packet.c and friends. Every simulated behavior cites a real source function, and a server-side correlation engine computes how each layer's state cascades into the next. See the methodology →
This module is part of zerohop Pro — it unlocks alongside the full kata library, progress tracking, and weak-area analysis.