En las redes informáticas, TCP Fast Open ( TFO ) es una extensión para acelerar la apertura de conexiones sucesivas del Protocolo de control de transmisión (TCP) entre dos puntos finales. Funciona mediante el uso de una cookie TFO (una opción de TCP), que es una cookie criptográfica almacenada en el cliente y configurada en la conexión inicial con el servidor. [1] Cuando el cliente se vuelve a conectar más tarde, envía el paquete SYN inicial junto con los datos de la cookie TFO para autenticarse. Si tiene éxito, el servidor puede comenzar a enviar datos al cliente incluso antes de la recepción del paquete ACK final del protocolo de enlace de tres vías, omitiendo así un retraso de ida y vuelta y reduciendo la latencia en el inicio de la transmisión de datos.
La cookie se genera aplicando un cifrado en bloque codificado en una clave mantenida en secreto por el servidor a la del cliente, generando una etiqueta de autenticación que es difícil de falsificar para terceros, incluso si pueden falsificar una dirección IP de origen o hacer conexiones bidireccionales. al mismo servidor desde otras direcciones IP. Aunque utiliza técnicas criptográficas para generar la cookie, TFO no tiene la intención de proporcionar más seguridad que el protocolo de enlace de tres vías que reemplaza, y no brinda ninguna forma de protección criptográfica a la conexión TCP resultante, ni proporciona garantía de identidad sobre ninguno de los extremos. Tampoco está destinado a ser resistente a los ataques de intermediario . Si se requiere tal resistencia, se puede utilizar en combinación con un protocolo criptográfico como TLS o IPsec .
Historia
La propuesta de TFO se presentó originalmente en 2011 [2] y se publicó como el RFC 7413 experimental en diciembre de 2014. [3] TCP Fast Open comparte el objetivo de eludir el protocolo de enlace de tres vías de TCP con una propuesta anterior de 1994, llamada T / TCP (RFC 1644). A diferencia de TCP Fast Open, T / TCP no prestó atención a la seguridad, [3] abriendo un camino para las vulnerabilidades y fallando en ganar tracción.
Caracteristicas
Las implementaciones de TFO incluyen lo siguiente:
- El soporte de IPv4 para TFO se fusionó con la línea principal del kernel de Linux en las versiones 3.6 (soporte para clientes) y 3.7 (diciembre de 2012) (soporte para servidores), [4] [5] y se activó de forma predeterminada en la versión 3.13 del kernel (enero 2014). [6] El soporte de TFO para servidores IPv6 se fusionó en la versión 3.16 del kernel. [7]
- FreeBSD a partir de la versión 10.3 [8] (soporte para servidores) y 12.0 [9] [10] (soporte para clientes).
- Mozilla Firefox desde la versión 58. [11] El soporte se deshabilitó de forma predeterminada debido a problemas de compatibilidad de dispositivos de red con TFO y TLS 1.3 [12] y finalmente se eliminó en la versión 87. [13]
- Los navegadores Google Chrome y Chromium son compatibles con TFO en Linux , incluidos Chrome OS y Android .
- Agente de transferencia de correo Exim (MTA) a partir de la versión 4.88. [14]
- Resolución de DNS independiente de la versión 1.5.10 [15]
- BIND Sistema de nombres de dominio (DNS) a partir de la versión 9.11.0. [dieciséis]
- Nudo DNS de la versión 2.6.0 [17]
- Manzana 's IOS 9 y OS X 10.11 TCP Soporte rápido abierto, pero no está habilitado para conexiones individuales por defecto. [18]
- Microsoft Edge admite TCP Fast Open desde Windows 10 Preview build 14352. [19]
- PowerDNS Recursor es compatible con TCP Fast Open desde la versión 4.1. [20]
- dnsmasq admitirá TCP-fastopen (RFC-7413) en la próxima versión 2.81. [21]
Ver también
- SPDY
- Cookies SYN
- Transacciones de cookies de TCP
Referencias
- ↑ Kerrisk, Michael ( 1 de agosto de 2012). "TCP Fast Open: agilizar los servicios web" . LWN.net .
- ^ Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B (6 de diciembre de 2011). "TCP Fast Open" (PDF) . ACM CoNEXT.
- ^ a b Yuchung Cheng; Jerry Chu; Sivasankar Radhakrishnan y Arvind Jain (diciembre de 2014). "TCP Fast Open" . IETF . Consultado el 10 de enero de 2015 .
- ^ Kerrisk, Michael (1 de agosto de 2012). "TCP Fast Open: agilizar los servicios web" . LWN.net.
El soporte del lado del cliente se ha fusionado para Linux 3.6
- ^ Vaughan-Nichols, Steven J (11 de diciembre de 2012). "Llega Linux 3.7, los desarrolladores de ARM se regocijan" . Linux y código abierto . ZDNet.
Linux 3.7. TCP Fast Open ahora será compatible con servidores
- ^ "Linux Kernel 3.13, sección 1.10. TCP Fast Open habilitado por defecto" . kernelnewbies.org . 19 de enero de 2014 . Consultado el 11 de febrero de 2014 .
- ^ "Linux Kernel 3.16, Sección 1.4. Modo de servidor TCP Fast Open en soporte IPv6" . kernelnewbies.org . 3 de agosto de 2014 . Consultado el 14 de septiembre de 2014 .
- ^ "Implementación de TCP Fast Open (TFO) del lado del servidor [RFC7413]: MFC en una rama estable / 10" . 2015-12-28.
- ^ "Esta es una implementación del lado del cliente de TCP Fast Open (TFO) [RFC7413]" . 2018-02-26.
- ^ "Habilite TCP_FASTOPEN por defecto para FreeBSD 12" . 2018-06-24.
- ^ "1188435 - Soporte TCP Fast Open" . 2017-05-05.
- ^ "1398201 - Deshabilitar TCP Fast Open para 57" . 2017-09-10.
- ^ "1689604 - Eliminar TCP FastOpen" . 2021-03-23.
- ^ "Exim 4.88 lanzado" . 2016-12-25.
- ^ "Sin consolidar 1.5.10" . Consultado el 5 de diciembre de 2017 .
- ^ "Notas de la versión de BIND versión 9.11.0" . 2016-10-05.
- ^ "Nudo DNS 2.6.0" . 2017-09-29.
- ^ "Tu aplicación y redes de próxima generación" . Apple Inc. 2015.
- ^ "Windows 10 build 14352 - Nuevas características de la plataforma web" . Microsoft . Consultado el 27 de mayo de 2016 .
- ^ "Registros de cambios para 4.1.x" . PowerDNS. 2017-12-04.
- ^ Kelley, Simon (10 de marzo de 2019). "Soporte TCP fastopen en conexiones entrantes y salientes" .
enlaces externos
- Especificación RFC 7413