9. TCP Fast Open
Dieser Abschnitt ist nicht normativ.
TCP Fast Open (TFO) [RFC7413] ermöglicht es, Daten im SYN-Paket zu übertragen, wodurch die Kosten für das erneute Öffnen von TCP-Verbindungen reduziert werden. Es spart auch bis zu einem RTT im Vergleich zu Standard-TCP.
TFO mindert die Sicherheitslücken, die dem Senden von Daten im SYN innewohnen, insbesondere auf einem System wie DNS, wo Verstärkungsangriffe möglich sind, durch Verwendung eines vom Server bereitgestellten Cookies. TFO-Clients fordern ein Server-Cookie im anfänglichen SYN-Paket zu Beginn einer neuen Verbindung an. Der Server gibt ein Cookie in seinem SYN-ACK zurück. Der Client speichert das Cookie im Cache und verwendet es wieder, wenn er nachfolgende Verbindungen zum selben Server öffnet.
Das Cookie wird vom TCP-Stack (Kernel) des Clients gespeichert und bleibt bestehen, wenn entweder der Client- oder der Serverprozess neu gestartet wird. TFO fällt auch ordnungsgemäß auf einen regulären TCP-Handshake zurück.
DNS-Dienste, die IP-Anycast [RFC4786] nutzen, müssen möglicherweise zusätzliche Schritte unternehmen, wenn sie TFO aktivieren. Aus [RFC7413]:
Server hinter Load Balancern, die Verbindungsanfragen an dieselbe Server-IP-Adresse akzeptieren, sollten denselben Schlüssel verwenden, damit sie identische Fast Open Cookies für eine bestimmte Client-IP-Adresse generieren. Andernfalls kann ein Client über Verbindungen hinweg unterschiedliche Cookies erhalten; seine Fast Open-Versuche würden auf den regulären 3WHS zurückfallen.
Wenn DNS-über-TCP ein Transport für den privaten DNS-Austausch ist, wie in [DNS-over-TLS], muss der Implementierer sich TFO bewusst sein und sicherstellen, dass Daten, die geschützt werden müssen (z. B. Daten für eine DNS-Abfrage), nicht versehentlich im Klartext transportiert werden. Siehe [DNS-over-TLS] für eine Diskussion.