TCP Fast Open

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łą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

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ż

Przypisy

Linki zewnętrzne

  • Timo Schöler: Network acceleration with TCP Fast Open
  • R. Braden, T/TCP -- TCP Extensions for Transactions Functional Specification, RFC 1644, IETF, lipiec 1994, DOI10.17487/RFC1644, ISSN 2070-1721, OCLC 943595667 (ang.).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.
Kembali kehalaman sebelumnya