Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

В компьютерных сетях TCP Fast Open ( TFO ) - это расширение для ускорения открытия последовательных соединений протокола управления передачей (TCP) между двумя конечными точками. Он работает с использованием файла cookie TFO (опция TCP), который представляет собой криптографический файл cookie, который хранится на клиенте и устанавливается при первоначальном соединении с сервером. [1] Когда клиент позже повторно подключается, он отправляет начальный SYN-пакет вместе с данными cookie TFO для аутентификации. В случае успеха сервер может начать отправку данных клиенту даже до приема последнего пакета ACK трехстороннего рукопожатия, таким образом пропуская задержку приема-передачи и снижая задержку в начале передачи данных.

Файл cookie создается путем применения блочного шифра с ключом, хранящегося в секрете сервером, к клиенту, генерируя тег аутентификации, который третьим лицам трудно подделать, даже если они могут подделать исходный IP-адрес или установить двусторонние соединения. на тот же сервер с других IP-адресов. Хотя TFO использует криптографические методы для создания файла cookie, он не предназначен для обеспечения большей безопасности, чем заменяемое им трехстороннее рукопожатие, и не обеспечивает какой-либо криптографической защиты результирующего TCP-соединения и не обеспечивает гарантии идентичности для любой конечной точки. Он также не предназначен для защиты от атак «злоумышленник посередине» . Если требуется такое сопротивление, его можно использовать в сочетании с криптографическим протоколом, таким как TLS.или IPsec .

История [ править ]

Предложение TFO было первоначально представлено в 2011 году [2] и было опубликовано как экспериментальный RFC 7413 в декабре 2014 года. [3] TCP Fast Open разделяет цель обхода трехстороннего подтверждения TCP с более ранним предложением 1994 года, названным T / TCP (RFC 1644). В отличие от TCP Fast Open, T / TCP не уделял внимания безопасности [3], открывая путь для уязвимостей и не имея возможности набрать обороты.

Характеристики [ править ]

Реализации TFO включают следующее:

  • Поддержка IPv4 для TFO была объединена с основной веткой ядра Linux в версиях ядра 3.6 (поддержка клиентов) и 3.7 (декабрь 2012 г.) (поддержка серверов), [4] [5] и была включена по умолчанию в версии ядра 3.13 (январь 2014). [6] Поддержка TFO для серверов IPv6 была добавлена ​​в ядро ​​версии 3.16. [7]
  • FreeBSD начиная с версии 10.3 [8] (поддержка серверов) и 12.0 [9] [10] (поддержка клиентов).
  • Mozilla Firefox версии 58. [11] Поддержка была отключена по умолчанию из-за проблем совместимости сетевых устройств с TFO и TLS 1.3 [12] и в конечном итоге удалена в версии 87. [13]
  • Браузеры Google Chrome и Chromium поддерживают TFO в Linux , включая Chrome OS и Android .
  • Агент передачи почты Exim (MTA), начиная с версии 4.88. [14]
  • Несвязанный DNS Resolver, начиная с версии 1.5.10 [15]
  • BIND Domain Name System (DNS), начиная с версии 9.11.0. [16]
  • Узел DNS с версии 2.6.0 [17]
  • Яблоко «s IOS 9 и OS X 10,11 и поддержка TCP Fast Open, но она не включена для отдельных соединений по умолчанию. [18]
  • Microsoft Edge поддерживает TCP Fast Open, начиная с Windows 10 Preview build 14352. [19]
  • Рекурсор PowerDNS поддерживает TCP Fast Open начиная с версии 4.1. [20]
  • dnsmasq будет поддерживать TCP-fastopen (RFC-7413) в следующей версии 2.81. [21]

См. Также [ править ]

  • SPDY
  • SYN файлы cookie
  • Транзакции TCP Cookie

Ссылки [ править ]

  1. ^ Керриск, Майкл (2012-08-01). «TCP Fast Open: ускорение работы веб-служб» . LWN.net .
  2. Перейти ↑ Radhakrishnan S, Cheng Y, Chu J, Jain A, Raghavan B (2011-12-06). «TCP Fast Open» (PDF) . ACM CONEXT.
  3. ^ a b Yuchung Cheng; Джерри Чу; Шивасанкар Радхакришнан и Арвинд Джайн (декабрь 2014 г.). «TCP Fast Open» . IETF . Проверено 10 января 2015 года .
  4. ^ Керриск, Майкл (2012-08-01). «TCP Fast Open: ускорение работы веб-служб» . LWN.net. Поддержка на стороне клиента была объединена для Linux 3.6.
  5. Перейти ↑ Vaughan-Nichols, Steven J (2012-12-11). «Прибывает Linux 3.7, радуются разработчики ARM» . Linux и открытый исходный код . ZDNet. Linux 3.7. TCP Fast Open теперь будет поддерживаться на серверах
  6. ^ «Ядро Linux 3.13, раздел 1.10. TCP Fast Open включен по умолчанию» . kernelnewbies.org . 19 января 2014 . Проверено 11 февраля 2014 .
  7. ^ «Linux Kernel 3.16, раздел 1.4. TCP Fast Open server mode с поддержкой IPv6» . kernelnewbies.org . 3 августа 2014 . Проверено 14 сентября 2014 года .
  8. ^ «Реализация серверного TCP Fast Open (TFO) [RFC7413]: MFC в стабильную ветку / 10» . 2015-12-28.
  9. ^ «Это реализация клиентской части TCP Fast Open (TFO) [RFC7413]» . 2018-02-26.
  10. ^ "Включить TCP_FASTOPEN по умолчанию для FreeBSD 12" . 2018-06-24.
  11. ^ «1188435 - Поддержка TCP Fast Open» . 2017-05-05.
  12. ^ «1398201 - Отключить TCP Fast Open для 57» . 2017-09-10.
  13. ^ «1689604 - Удалить TCP FastOpen» . 2021-03-23.
  14. ^ "Exim 4.88 выпущен" . 2016-12-25.
  15. ^ "Несвязанный 1.5.10" . Проверено 5 декабря 2017 .
  16. ^ «Примечания к выпуску для BIND версии 9.11.0» . 2016-10-05.
  17. ^ "Узел DNS 2.6.0" . 2017-09-29.
  18. ^ «Ваше приложение и сети нового поколения» . Apple Inc., 2015 г.
  19. ^ «Windows 10 build 14352 - Новые возможности веб-платформы» . Microsoft . Проверено 27 мая 2016 .
  20. ^ "Изменения для 4.1.x" . PowerDNS. 2017-12-04.
  21. ^ Келли, Саймон (2019-03-10). «Поддержка TCP fastopen для входящих и исходящих соединений» .

Внешние ссылки [ править ]

  • RFC 7413 спецификация