9. TCP Fast Open
Cette section est non normative.
TCP Fast Open (TFO) [RFC7413] permet de transporter des données dans le paquet SYN, réduisant ainsi le coût de réouverture des connexions TCP. Il permet également d'économiser jusqu'à un RTT par rapport au TCP standard.
TFO atténue les vulnérabilités de sécurité inhérentes à l'envoi de données dans le SYN, en particulier sur un système comme le DNS où des attaques par amplification sont possibles, par l'utilisation d'un cookie fourni par le serveur. Les clients TFO demandent un cookie serveur dans le paquet SYN initial au début d'une nouvelle connexion. Le serveur renvoie un cookie dans son SYN-ACK. Le client met en cache le cookie et le réutilise lors de l'ouverture de connexions ultérieures vers le même serveur.
Le cookie est stocké par la pile TCP du client (noyau) et persiste si les processus client ou serveur sont redémarrés. TFO se replie également gracieusement sur une poignée de main TCP régulière.
Les services DNS tirant parti de l'anycast IP [RFC4786] pourraient avoir besoin de prendre des mesures supplémentaires lors de l'activation de TFO. De la [RFC7413] :
Les serveurs derrière des équilibreurs de charge qui acceptent des demandes de connexion vers la même adresse IP de serveur devraient utiliser la même clé de sorte qu'ils génèrent des cookies Fast Open identiques pour une adresse IP client particulière. Sinon, un client peut obtenir des cookies différents à travers les connexions ; ses tentatives Fast Open se replieraient sur le 3WHS régulier.
Lorsque DNS-over-TCP est un transport pour l'échange privé DNS, comme dans [DNS-over-TLS], l'implémenteur doit être conscient de TFO et s'assurer que les données nécessitant une protection (par exemple, les données pour une requête DNS) ne sont pas accidentellement transportées en clair. Voir [DNS-over-TLS] pour la discussion.