Короткий ответ Three-way handshake состоит из трёх шагов: клиент отправляет SYN, сервер отвечает SYN-ACK и переводит соединение в состояние полуоткрытого (в очереди SYN backlog), клиент подтверждает ACK, после чего соединение переходит в ESTABLISHED; при SYN flood атакующий отправляет множество SYN-пакетов без завершения рукопожатия, переполняя очередь полуоткрытых соединений и мешая легитимным клиентам подключиться. Как это работает подробнее После получения SYN сервер выделяет ресурсы для хранения состояния полуоткрытого соединения (SYN backlog queue) и ждёт финальный ACK; при SYN flood эта очередь заполняется поддельными или незавершёнными запросами, и ядро либо начинает отбрасывать новые легитимные SYN, либо (без защиты) исчерпывает память на хранение состояния — защитный механизм SYN cookies позволяет серверу не хранить состояние для полуоткрытых соединений, кодируя необходимую информацию прямо в самом SYN-ACK. Пример кода Что использовать на практике Практика. защититься помогает включение SYN cookies (