本页使用了标题或全文手工转换

TCP快速打开

维基百科,自由的百科全书
跳转至: 导航搜索

TCP快速打开英语:TCP Fast Open,简称TFO)是对计算机网络中传输控制协议(TCP)连接的一种简化握手手续的拓展,用于提高两端点间连接的打开速度。

细节[编辑]

它通过握手开始时的SYN包中的TFO cookie(一个TCP选项)来验证一个之前连接过的客户端。如果验证成功,它可以在三次握手最终的ACK包收到之前就开始发送数据,这样便跳过了一个绕路的行为,更在传输开始时就降低了延迟。这个加密的Cookie被存储在客户端,在一开始的连接时被设定好。然后每当客户端连接时,这个Cookie被重复返回。[1]

此Cookie通常采用一种分组密码,私钥由服务器根据客户端的IP地址保存,生成一个第三方难以仿冒的讯息鉴别码标签,即便第三方可以伪造源IP地址或从其他IP地址制造到同一个服务器的连接。尽管使用了加密技术来生成cookie,但TFO并不着眼于提供比它所替换的三次握手有更多的安全性,并且不对所产生的TCP连接提供任何形式的加密保护或端点身份认证。它的目的不是为了抵挡中间人攻击。

这个协议最早提出于2011年[2] 并在2012年2月时已为一个IETF互联网草案,[3] 这项规范最终在2014年12月作为RFC 7413发布。[4]

实现[编辑]

TFO的实现包括:

  • TFO的IPv4支持在3.6(客户端)和3.7(服务端)版本中被合并进Linux内核主线,[5][6]从3.13版本开始默认打开。[7]IPv6服务器的TFO支持被合并进入3.16版本。[8]
  • FreeBSD自10.3[9]和11.0版本开始支持TFO[10](仅支持服务端,未默认启用需要手动修改配置,需要重新编译内核)。

替代品[编辑]

TCP快速打开(TFO)类似一项1994年被称作T/TCPRFC 1644)的提议,但由于它未考虑安全原因而存在漏洞,所以未被广泛使用。

参见[编辑]

参考文献[编辑]

  1. ^ Kerrisk, Michael. TCP Fast Open: expediting web services. LWN.net. 2012-08-01. 
  2. ^ Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B. TCP Fast Open (PDF). ACM CoNEXT. 2011-12-06. 
  3. ^ Cheng Y, Chu J, Radhakrishnan S, Jain A. TCP Fast Open. IETF. 2013-01-26. I-D draft-ietf-tcpm-fastopen-06. 
  4. ^ Yuchung Cheng, Jerry Chu, Sivasankar Radhakrishnan, and Arvind Jain. TCP Fast Open. IETF. December 2014 [10 January 2015]. 
  5. ^ Kerrisk, Michael. TCP Fast Open: expediting web services. LWN.net. 2012-08-01. The client-side support has been merged for Linux 3.6 
  6. ^ Vaughan-Nichols, Steven J. Linux 3.7 arrives, ARM developers rejoice. Linux and Open Source (ZDNet). 2012-12-11. Linux 3.7. TCP Fast Open will now be supported on servers 
  7. ^ Linux Kernel 3.13. kernelnewbies.org. 19 January 2014 [11 February 2014].  |section=被忽略 (帮助)
  8. ^ Linux Kernel 3.16. kernelnewbies.org. 3 August 2014 [14 September 2014].  |section=被忽略 (帮助)
  9. ^ [base] Revision 292823. svnweb.freebsd.org. [2017-08-06] (英语). 
  10. ^ [base] Revision 292706. svnweb.freebsd.org. [2017-08-06] (英语). 
  11. ^ 1188435 - Support TCP fastopen. bugzilla.mozilla.org. [2017-08-06] (英语). 
  12. ^ [exim] Exim 4.88 released. lists.exim.org. [2017-08-06] (英语). 
  13. ^ Release Notes for BIND Version 9.11.0. [2016-10-05]. 
  14. ^ Your App and Next Generation Networks. Apple Inc. 2015. 
  15. ^ Windows 10 build 14352 - New web platform features. Microsoft. [2016-05-27].