TCP Cookie 传输

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. . [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. Perry E. Metzger, William Allen Simpson, Paul Vixie. (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. (PDF). DNS-OARC. June 2009 [2014-12-06]. (原始内容存档 (PDF)于2016-07-06).
  7. Jake Edge. . LWN.net. 16 December 2009 [2014-12-06]. (原始内容存档于2014-12-10).
  8. . [2014-12-06]. (原始内容存档于2012-06-30).
  9. Jonathan Corbet. . LWN.net. 8 May 2013 [2014-12-06]. (原始内容存档于2014-12-10).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.