TCP Fast Open

rozszerzenie protokołu TCP

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 edytuj

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łączeniach[1].

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 roku[2] 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.6[3], część serwerowa jest częścią Linuksa 3.7[4]

Alternatywne rozwiązania edytuj

TCP Fast Open jest podobne do innej propozycji z 1994 roku zwanej T/TCP (RFC 1644 ↓), które nie zostało szeroko zaadaptowane z powodu kwestii związanych z bezpieczeństwem.

Zobacz też edytuj

Przypisy edytuj

Linki zewnętrzne edytuj