TCP Fast Open (TFO) – rozszerzenie protokołu TCP mające na celu przyspieszenie otwierania połączeń między dwoma węzłami poprzez umożliwienie wysłania danych już na etapie nawiązywania połączenia (three-way handshake)
Szczegóły Rozszerzenie polega na stosowaniu w pierwszym pakiecie SYN tzw. TFO cookie (zaimplementowanego w ramach pola opcji TCP) aby uwierzytelnić klienta, który uprzednio już się łączył. Jeśli uwierzytelnienie się powiedzie, serwer może zacząć wysyłać dane do klienta zanim otrzyma ostatni pakiet ACK należący do etapu nawiązywania połączenia, eliminując czas podróży pakietu w obie strony i obniżając opóźnienie w transmisji danych. TFO cookie jest kryptograficznym elementem rozwiązania, które jest przechowywane po stronie klienta i jest ustalane na początku połączenia. Następnie jest powtórnie wykorzystywane w następnych połączeniachTCP Fast Open: expediting web services.
TFO cookie jest generowane poprzez zastosowanie szyfru blokowego z kluczem utrzymywanym po stronie serwera w tajemnicy przed adresem IP klienta, w taki sposób, że kod uwierzytelniania (MAC) nie może być podrobiony.
Rozszerzenie to zostało pierwotnie zaprezentowane w 2011 rokuTCP Fast Open – Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B i w trakcie pisania tego artykułu (Styczeń 2013) ma status szkicu IETF. (IETF Internet draft) Pierwsza implementacja klienckiej części rozwiązania została włączona do jądra Linuksa w wersji 3.6TCP Fast Open: expediting web services, część serwerowa jest częścią Linuksa 3.7Linux 3.7. TCP Fast Open will now be supported on servers
Alternatywne rozwiązania TCP Fast Open jest podobne do innej propozycji z 1994 roku zwanej T/TCP (), które nie zostało szeroko zaadaptowane z powodu kwestii związanych z bezpieczeństwem.
Zobacz też SPDY SYN cookies
Przypisy
Linki zewnętrzne Timo Schöler: Network acceleration with TCP Fast Open
Kategoria:Protokoły internetowe