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]
参见
- 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).