TCP Fast Open
# TCP Fast Open

En redes de computadoras, TCP Fast Open (TFO) es una extensión para acelerar la apertura de sucesivas conexiones TCP entre dos puntos de una red TCP/IP. Trabaja utilizando una "TFO cookie" (una opción dentro de TCP) la cual es criptográfica y se guarda del lado del cliente. Esta previamente se establece en la primera conexión con el servidor. Cuando el cliente vuelve a conectarse más tarde este envía un paquete inicial SYN junto con la TFO cookie de tal forma de poder autenticarse a sí mismo. Si la autenticación resulta exitosa el servidor puede comenzar a enviar información al cliente incluso antes de la recepción del último paquete ACK del establecimiento de la conexión TCP (3-way handshake), salteando de esta forma el tiempo extra de ida y vuelta del mismo y por lo tanto disminuyendo la latencia a la hora de comenzar el inicio de transmisión de datos. Es decir, en la segunda etapa del handshake envía junto con el paquete SYN los paquetes DATA.

La cookie se genera al aplicar un cifrado por bloques con una clave mantenida en secreto por el servidor para la dirección de IP del cliente, generando una etiqueta de autenticación difícil de falsificar por un tercero.

A pesar de que utiliza técnicas criptográficas para generar la cookie, TFO no pretende proveer mayor seguridad que el three-way handshake que reemplaza, ni provee ningún tipo de protección criptográfica a la conexión TCP resultante. Tampoco provee ningún servicio de validación de identidad para ninguno de los dos extremos de la conexión. No tiene ningún tipo de protección para ataques de intermediario (en inglés man-in-the-middle).

La propuesta para TFO fue originalmente presentada en 2011 y en febrero de 2012 ya era un borrador de la IETF. La especificación estuvo publicada como RFC 7413 en diciembre de 2014. TFO comparte el objetivo de superar el three-way handshake de TCP con una temprana propuesta de 1994 llamada T/TCP (RFC 1644). En contraste con TFO, T/TCP no le prestaba ninguna atención a la seguridad, abriendo camino a vulnerabilidades y fallando en obtener la suficiente tracción.

