TCP Cookie 傳輸
实验性的用于保护TCP连接免于拒绝服务攻击的传输控制协议拓展
TCP Cookie 傳輸(英文:TCP Cookie Transcations)是一個實驗性的傳輸控制協議拓展,在RFC 6013中定義,用於保護TCP連接免於拒絕服務攻擊,例如通過SYN Flood和第三方的惡意連接中止耗盡目標資源。[1]不像原有的 SYN cookies 方法,[2] TCPCT 不會和其它 TCP 拓展衝突, 但是要求客戶端(發起者)和伺服器(響應者)都支持這一拓展。[3]
開發這個拓展的直接原因是 DNSSEC 協議的部署。在 DNSSEC 出現前,DNS 請求主要使用小型 UDP 數據包,但是由於 DNSSEC 數據交換的大小和IP分片的缺點,UDP 對 DNSSEC 來說並不怎麼現實。[4][5]於是採用 DNSSEC 的請求會創建極多的短壽命 TCP 連接。[3][6]
TCPCT 避免了伺服器端資源耗盡,因為它在完成三步握手之前不會申請任何資源。除此之外,TCPCT 允許伺服器在連接關閉之後立即釋放內存,此時連接還在 TIME-WAIT 狀態持續。[3]
2009 年十二月,TCPCT 支持被部分併入了 Linux 內核,[7][8]但是在 2013 年五月被移除因為它從來沒有被完整實現,還會造成性能消耗。[9]
參見
- SYN cookies
- T/TCP(事務 TCP)
- TCP 快速打開
參考資料
- ^ Simpson, W.. TCP Cookie Transactions. IETF. January 2011 [March 16, 2012]. RFC 6013.
- ^ Daniel J. Bernstein. SYN cookies. [2014-12-06]. (原始內容存檔於2010-12-23).
SYN cookies "do not allow to use TCP extensions" such as large windows. [...] A connection saved by SYN cookies can't use large windows
- ^ B. Carpenter and S. Brim, 「Middleboxes: Taxonomy and Issues,」 RFC 3234, February 2002.
- ^ P. Srisuresh and K. Egevang, 「Traditional IP Network Address Translator (Traditional NAT),」 RFC 3022, January 2001
- ^ D. Wessels. DNSSEC, EDNS, and TCP (PDF). DNS-OARC. June 2009 [2014-12-06]. (原始內容存檔 (PDF)於2016-07-06).
- ^ Jake Edge. TCP cookie transactions. LWN.net. 16 December 2009 [2014-12-06]. (原始內容存檔於2014-12-10).
- ^ 存档副本. [2014-12-06]. (原始內容存檔於2012-06-30).
- ^ Jonathan Corbet. What's coming in 3.10, part 2. LWN.net. 8 May 2013 [2014-12-06]. (原始內容存檔於2014-12-10).