ABCSYNSYNSYNSYN0 / 4SYNSYNSYNSYNSYNSYNSYNSYNSYN
Pink: the attacker's bots and their packetsSlots: the server's half-open queueGolden coin: SYN cookies are on (the server stores nothing)Sky block: the scrubbing centre and its anycast sites A, B, CA SYN flood with forged sources fills the server's 4-slot half-open queue. With SYN cookies the server keeps nothing: the cookie travels in its SYN-ACK, and only a real client's ACK (cookie + 1) makes it build a connection. A rate limiter drops one source's connections above 20 per second. A closed resolver refuses outside queries, so there is nothing to reflect, and the bots' provider drops forged sources at its edge (BCP 38), so neither forged SYNs nor forged DNS queries leave. Floods bigger than the server's link are routed to a scrubbing centre, spread over anycast sites and filtered, and the real user still gets the page.

SYN cookies

  1. Bots send thousands of SYNs with forged source addresses. Without a defence, each SYN takes a slot in the half-open queue: connections waiting for their final ACK. Once the queue is full, real users are turned away.

Rate limiting

No reflectors, no forgery

Absorb the flood

The packets, step by step

;; step 1/11 · flood
;; attacker → server
TCP 203.0.113.77:40001 → 203.0.113.10:443   flags SYN   (forged source)
TCP 192.0.2.140:52210 → 203.0.113.10:443   flags SYN   (forged source)
TCP 198.51.100.200:33876 → 203.0.113.10:443   flags SYN   (forged source)
…
server: SYN-RECEIVED × 4  queue full (4 slots, illustrative)
the SYN-ACKs go to the forged addresses; no final ACK ever comes back
each slot is held until the server gives up on it (RFC 4987 §2.2)

Illustrative numbers: a 4-slot half-open queue (real ones are far larger), a limit of 20 new connections per second, and a cookie of 7341092; real cookies look random. 203.0.113.10, 192.0.2.7, 192.0.2.53 and 198.51.100.0/24 are RFC 5737 documentation addresses; the server and user are the same pair as in the TCP and HTTPS lessons.