# TCP Fast Open

En xarxes d'ordinadors, TCP Fast Open (TFO) és una extensió per accelerar l'obertura de connexions successives de protocol de control de transmissió (TCP) entre dos punts finals. Funciona mitjançant una galeta TFO (una opció TCP), que és una galeta criptogràfica emmagatzemada al client i establerta en la connexió inicial amb el servidor. Quan el client es torna a connectar més tard, envia el paquet SYN inicial juntament amb les dades de la galeta TFO per autenticar-se. Si té èxit, el servidor pot començar a enviar dades al client fins i tot abans de la recepció del paquet ACK final de l'enllaç de tres vies, saltant així un retard d'anada i tornada i reduint la latència a l'inici de la transmissió de dades.
La galeta es genera aplicant un xifrat de bloc codificat en una clau secreta pel servidor a la del client, generant una etiqueta d'autenticació que és difícil de falsificar per a tercers, encara que puguin falsificar una adreça IP d'origen o fer connexions bidireccionals. al mateix servidor des d'altres adreces IP. Tot i que utilitza tècniques criptogràfiques per generar la galeta, TFO no té la intenció de proporcionar més seguretat que l'enllaç de tres direccions que substitueix, i no ofereix cap forma de protecció criptogràfica a la connexió TCP resultant, ni proporciona garantia d'identitat sobre cap punt final. Tampoc està pensat per ser resistent als atacs de l'home-in-the-middle. Si cal aquesta resistència, es pot utilitzar en combinació amb un protocol criptogràfic com TLS o IPsec.
TFO ha estat difícil de desplegar a causa de l'ossificació del protocol; el 2020, cap navegador web l'utilitzava per defecte.
TFO presenta reptes de privadesa; la galeta TFO pot permetre un seguiment persistent d'un client a través de sessions, fins i tot per part d'observadors passius.

## Història

La proposta de TFO es va presentar originalment el 2011 i es va publicar com a [rfc:7413 RFC experimental 7413] el desembre de 2014. TCP Fast Open comparteix l'objectiu d'evitar l'encaix de mans de tres direccions de TCP amb una proposta anterior de 1994, anomenada T/TCP (RFC 1644). En contrast amb TCP Fast Open, T/TCP no va prestar atenció a la seguretat, va obrir un camí per a vulnerabilitats i no va aconseguir tracció.

## Característiques

Les implementacions de TFO inclouen les següents:
* El suport IPv4 per a TFO es va fusionar a la línia principal del nucli de Linux a les versions del nucli 3.6 (suport per a clients) i 3.7 (desembre de 2012) (suport per a servidors), i es va activar per defecte a la versió del nucli 3.13 (gener). 2014). El suport TFO per als servidors IPv6 es va combinar a la versió del nucli 3.16.
* FreeBSD a partir de la versió 10.3 (suport per a servidors) i 12.0. (suport als clients).
* Mozilla Firefox a partir de la versió 58. El suport es va desactivar per defecte a causa de problemes de compatibilitat del dispositiu de xarxa amb TFO i TLS 1.3 i finalment es va eliminar a la versió 87.
* Els navegadors Google Chrome i Chromium són compatibles amb TFO a Linux, inclosos ChromeOS i Android.
* Agent de transferència de correu (MTA) Exim de la versió 4.88.
* Resolució de DNS desvinculat de la versió 1.5.10.
* Sistema de noms de domini (DNS) BIND a partir de la versió 9.11.0.
* Knot DNS a partir de la versió 2.6.0.
* L'iOS 9 i l'OS X 10.11 d'Apple són compatibles amb TCP Fast Open, però no està habilitat per a connexions individuals de manera predeterminada.
* Microsoft Edge admet TCP Fast Open des de la versió 14352 de la vista prèvia de Windows 10.
* PowerDNS Recursor és compatible amb TCP Fast Open des de la versió 4.1.
* dnsmasq admet TCP-fastopen (RFC-7413) a partir de la versió 2.81.

## Referències

* ↑ updated, Daniel Rubino last. «Enable TCP Fast Open in Microsoft Edge for quicker page load times» (en anglès), 13-07-2016. [Consulta: 16 novembre 2023].
* ↑ «What is TCP Fast Open?» (en anglès americà), 01-02-2022. [Consulta: 16 novembre 2023].
* ↑ «TCP Fast Open - KeyCDN Support» (en anglès). [Consulta: 16 novembre 2023].
* ↑ Cheng, Yuchung; Chu, Jerry; Radhakrishnan, Sivasankar; Jain, Arvind «TCP Fast Open». Internet Engineering Task Force (IETF), 12-2014.