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]

參見

參考資料

  1. ^ Simpson, W.. TCP Cookie Transactions. IETF. January 2011 [March 16, 2012]. RFC 6013. 
  2. ^ 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 
  3. ^ 3.0 3.1 3.2 Perry E. Metzger, William Allen Simpson, Paul Vixie. Improving TCP Security With Robust Cookies (PDF). December 2009 [2014-12-06]. (原始內容存檔 (PDF)於2018-04-07). 
  4. ^ B. Carpenter and S. Brim, 「Middleboxes: Taxonomy and Issues,」 RFC 3234, February 2002.
  5. ^ P. Srisuresh and K. Egevang, 「Traditional IP Network Address Translator (Traditional NAT),」 RFC 3022, January 2001
  6. ^ D. Wessels. DNSSEC, EDNS, and TCP (PDF). DNS-OARC. June 2009 [2014-12-06]. (原始內容存檔 (PDF)於2016-07-06). 
  7. ^ Jake Edge. TCP cookie transactions. LWN.net. 16 December 2009 [2014-12-06]. (原始內容存檔於2014-12-10). 
  8. ^ 存档副本. [2014-12-06]. (原始內容存檔於2012-06-30). 
  9. ^ Jonathan Corbet. What's coming in 3.10, part 2. LWN.net. 8 May 2013 [2014-12-06]. (原始內容存檔於2014-12-10).