Транзакции TCP Cookie ( TCPCT ) указаны в RFC 6013 (исторический статус, ранее экспериментальный) как расширение протокола управления передачей (TCP), предназначенное для его защиты от атак типа «отказ в обслуживании» , таких как истощение ресурсов из-за SYN-флудинга и вредоносного соединения. расторжение третьими лицами. [1] В отличие от исходного подхода к файлам cookie SYN , [2] TCPCT не конфликтует с другими расширениями TCP, но требует поддержки TCPCT как в TCP-стеке клиента (инициатора), так и сервера (ответчика). [3]
Непосредственной причиной расширения TCPCT является внедрение протокола DNSSEC . До DNSSEC запросы DNS в основном использовали короткие пакеты UDP , но из-за размера обменов DNSSEC и недостатков фрагментации IP UDP менее практичен для DNSSEC. [4] [5] Таким образом, запросы с поддержкой DNSSEC создают большое количество кратковременных TCP-соединений. [3] [6]
TCPCT позволяет избежать истощения ресурсов на стороне сервера, не выделяя никаких ресурсов до завершения трехэтапного установления связи . Кроме того, TCPCT позволяет серверу освобождать память сразу после закрытия соединения, сохраняя при этом состояние TIME-WAIT. [3]
Поддержка TCPCT была частично интегрирована в ядро Linux в декабре 2009 года, [7] [8] , но была удалена в мае 2013 года, поскольку она так и не была реализована полностью и имела потери производительности. [9]
TCPCT устарел в 2016 году в пользу TCP Fast Open . Статус исходного RFC был изменен на «исторический». [10]
Файлы cookie SYN «не позволяют использовать расширения TCP», такие как большие окна. [...] Соединение, сохраненное с помощью файлов cookie SYN, не может использовать большие окна.
{{cite journal}}
: Требуется цитировать журнал |journal=
( помощь )