TCP Fast Open - TCP Fast Open
В компьютерная сеть, TCP Fast Open (TFO) - расширение для ускорения открытия следующих друг за другом Протокол управления передачей (TCP) соединения между двумя конечными точками. Он работает с использованием TFO cookie (вариант 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][12]
- Гугл Хром и Хром браузеры поддерживают TFO на Linux, включая Chrome OS и Android.
- Exim агент по пересылке почты (MTA) начиная с версии 4.88.[13]
- Несвязанный DNS-преобразователь с версии 1.5.10[14]
- СВЯЗЫВАТЬ система доменных имен (DNS) начиная с версии 9.11.0.[15]
- Узел DNS с версии 2.6.0[16]
- яблоко с iOS 9 и OS X 10.11 оба поддерживают TCP Fast Open, но по умолчанию он не включен для отдельных подключений.[17]
- Microsoft Edge поддерживает TCP Fast Open с Windows 10 Предварительная сборка 14352.[18]
- Рекурсор PowerDNS поддерживает TCP Fast Open с версии 4.1.[19]
- dnsmasq будет поддерживать TCP-fastopen (RFC-7413) в следующей версии 2.81.[20]
Смотрите также
Рекомендации
- ^ Керриск, Майкл (2012-08-01). «TCP Fast Open: ускорение работы веб-служб». LWN.net.
- ^ Радхакришнан С., Ченг Й, Чу Дж, Джайн А., Рагхаван Б. (2011-12-06). «TCP Fast Open» (PDF). ACM CONEXT.
- ^ а б Ючунг Ченг; Джерри Чу; Шивасанкар Радхакришнан и Арвинд Джайн (декабрь 2014 г.). «TCP Fast Open». IETF. Получено 10 января 2015.
- ^ Керриск, Майкл (2012-08-01). «TCP Fast Open: ускорение работы веб-служб». LWN.net.
Поддержка на стороне клиента была объединена для Linux 3.6.
- ^ Воан-Николс, Стивен Дж (2012-12-11). «Linux 3.7 приходит, разработчики ARM радуются». Linux и открытый исходный код. ZDNet.
Linux 3.7. TCP Fast Open теперь будет поддерживаться на серверах
- ^ «Ядро Linux 3.13, раздел 1.10. TCP Fast Open включен по умолчанию». kernelnewbies.org. 19 января 2014 г.. Получено 11 февраля 2014.
- ^ «Ядро Linux 3.16, раздел 1.4. Режим TCP Fast Open server с поддержкой IPv6». kernelnewbies.org. 3 августа 2014 г.. Получено 14 сентября 2014.
- ^ «Внедрение серверного TCP Fast Open (TFO) [RFC7413]: MFC в стабильную ветку / 10». 2015-12-28.
- ^ «Это реализация клиентской части TCP Fast Open (TFO) [RFC7413]». 2018-02-26.
- ^ "Включить TCP_FASTOPEN по умолчанию для FreeBSD 12". 2018-06-24.
- ^ «1188435 - Поддержка TCP Fast Open». 2017-05-05.
- ^ «1398201 - Отключить TCP Fast Open для 57». 2017-09-10.
- ^ "Exim 4.88 выпущен". 2016-12-25.
- ^ "Несвязанный 1.5.10". Получено 2017-12-05.
- ^ «Примечания к выпуску для BIND версии 9.11.0». 2016-10-05.
- ^ «Узел DNS 2.6.0». 2017-09-29.
- ^ «Ваше приложение и сети нового поколения». Apple Inc., 2015 г.
- ^ «Windows 10 build 14352 - Новые возможности веб-платформы». Microsoft. Получено 2016-05-27.
- ^ "Журналы изменений для 4.1.x". PowerDNS. 2017-12-04.
- ^ Келли, Саймон (2019-03-10). «Поддержка TCP fastopen для входящих и исходящих соединений».
внешняя ссылка
- RFC 7413 Технические характеристики