- PVSM.RU - https://www.pvsm.ru -

На замену TCP: протокол QUIC готов для внедрения [но не готов стать RFC]

Представители Инженерного совета интернета (IETF) объявили, что протокол QUIC для передачи данных на транспортном уровне готов для широкомасштабных тестов. Но из-за ряда недостатков, его пока нельзя представить в виде RFC. Подробности — в нашем сегодняшнем материале.

На замену TCP: протокол QUIC готов для внедрения [но не готов стать RFC] - 1 [1]
/ Pixabay / www_slon_pics [2] / PD

Почему появился QUIC

Работу над QUIC начала Google [3] в 2013 году. Он тестировался [4] в браузерах Chrome и Chromium. Позже технологию начали поддерживать [5] сайты компании, в том числе YouTube. Через пару лет ИТ-гигант объявил [6], что тестирование протокола прошло успешно, и его представят в IETF.

Совет интернета начал работать над QUIC в марте 2016 года. Как отметили [7] представители IETF, в будущем QUIC должен будет заменить TCP, так как последний исчерпал свои возможности в условиях современных сетей (в основном мобильных).

В протоколе TCP-соединение определяется IP-адресами и портами сервера и клиента. Если по какой-то причине один из этих параметров изменяется, приходится пересоздавать подключение. Отсюда вытекают сложности со стабильностью связи в мобильных сетях. Пользователь перемещается между разными сотовыми вышками и постоянно меняет IP-адрес.

Задача QUIC — сделать процесс переключения между беспроводными сетями (в том числе Wi-Fi) более «гладким». Помимо этого тесты [6], проведенные Google, показывают снижение числа ребуферизаций при просмотре видео на YouTube на 30%.

Особенности работы протокола

Работа QUIC строится на протоколе UDP, который позволяет обмениваться данными без проверки готовности получателя к их приему. В отличие от TCP, который использует [8] принцип «тройного рукопожатия», в QUIC рукопожатие происходит в один этап с уже знакомым сервером и в два этапа с сервером, с которым клиент раньше не работал. Второй этап нужен, чтобы открыть защищенный канал связи и обменяться криптографическими ключами. В итоге QUIC имеет более низкую задержку соединения [9] и передачи, чем TCP. При трансляции данных на большое расстояние (например, с одного континента на другой) посредством мобильного устройства разница в скорости установления подключения между TCP с TLS и пакетом QUIC может достигать 300 мс.

В QUIC больше нет набора параметров, связанных с IP-адресами и портами сервера и клиента. Вместо них протокол работает с идентификатором соединения UUID. Это позволяет переключаться между Wi-Fi и мобильной сетью, каждый раз не пересоздавая соединение (UUID сохраняется). Механизм работы похож на утилиту Mosh [10], которая сохраняет сессии при переключении между беспроводными сетями. Информацию о ней можно найти в официальном репозитории проекта [11].

QUIC дополнительно включает [12] метод контроля целостности данных — прямую коррекцию ошибок, или Forward Error Correction (FEC). Каждый пакет, который передается через QUIC, имеет информацию о соседях. Поэтому если он теряется, содержимое пакета можно восстановить.

Критика технологии

Пока что у технологии есть определенные недостатки. Например, уязвимость [13] перед DDoS-атаками. По словам ИБ-специалистов, популярные наборы для организации DDoS-атак обладают встроенной поддержкой UDP, что представляет большую угрозу. По этой причине при внедрении QUIC важно убедиться в корректности работы механизма рукопожатия — он должен быть оптимизирован и реализован как можно ближе к железу. В противном случае те атаки, с которыми раньше могло справиться ядро, придётся обрабатывать сторонними решениями (например, nginx).

На замену TCP: протокол QUIC готов для внедрения [но не готов стать RFC] - 2
/ Wikimedia / Sagor Kumar sr [14] / CC [15]

Второй недостаток — несовместимость [16] протокола с сетями, в которых используются технологии NAT, Anycast или ECMP. Они работают с TCP-соединениями и не смогут распознавать и регулировать QUIC-трафик. Такая несовместимость сужает возможности для применения.

Более того, результаты тестирования QUIC показали, что протокол не так хорошо работает на мобильных устройствах, как это обещают создатели технологии. Согласно экспериментам [17], при увеличении пропускной способности сети и объема передаваемых данных время загрузки страницы для TCP и QUIC выравнивается. Это происходит потому, что QUIC работает в пользовательском пространстве [18], а не в пространстве ядра.

Ещё один недостаток [19] QUIC — затрудненный поиск неисправностей. Протокол шифрует не только данные, но и заголовок пакета, в котором они передаются. Это мешает системным администраторам оценивать работу сети и быстро устранять неполадки.

Перспективы

Из-за существующих уязвимостей защищать систему, спроектированную поверх QUIC, может быть сложно. Чтобы устранить недостатки протокола, разработчикам нужны данные о его работе в реальных условиях. Для этого IETF привлекает к тестированию IT-компании.

Протокол уже поддерживают крупные организации. С QUIC начали работать CDN-сервисы [20] — Cloudflare и Verizon Digital Media Services (VDMS). В Cloudflare функция соединения через QUIC находится в бета-тестировании. Команда VDMS работала [21] над реализацией протокола с 2016 года, и сейчас QUIC могут использовать все клиенты сервиса. Версии протокола QUIC также тестируют Apple, Pandora, Facebook. Полный список компаний доступен на GitHub [22].

Хотя пока QUIC остается экспериментальной технологией, количество сайтов с поддержкой этого протокола растет — это показывают данные [23] исследовательской организации W3Techs. Эксперты оценивают [24], что с принятием стандарта протокол будут использовать чаще — хотя пока неясно, когда именно IETF представит финальную версию QUIC.

P.S. О чем еще мы пишем в корпоративном блоге VAS Experts:

Автор: VAS Experts

Источник [29]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/tcp/298728

Ссылки в тексте:

[1] Image: https://habr.com/company/vasexperts/blog/429380/

[2] www_slon_pics: https://pixabay.com/ru/%D0%BA%D0%BE%D1%88%D0%BA%D0%B0-%D1%81%D0%B2%D1%8F%D0%B7%D0%B8-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80-5-ethernet-3043890/

[3] начала Google: https://arstechnica.com/information-technology/2013/06/google-making-the-web-faster-with-protocol-that-reduces-round-trips/

[4] тестировался: https://blog.chromium.org/2013/06/experimenting-with-quic.html

[5] начали поддерживать: https://ma.ttias.be/enable-quic-protocol-google-chrome/

[6] объявил: https://www.infoq.com/news/2015/04/google-quic-ietf-standard

[7] отметили: https://datatracker.ietf.org/meeting/101/materials/slides-101-maprg-a-first-look-at-quic-in-the-wild-00

[8] использует: https://ru.wikipedia.org/wiki/Transmission_Control_Protocol

[9] имеет более низкую задержку соединения: https://ru.wikipedia.org/wiki/QUIC

[10] Mosh: https://mosh.org/

[11] официальном репозитории проекта: https://github.com/mobile-shell/mosh

[12] включает: https://ma.ttias.be/googles-quic-protocol-moving-web-tcp-udp/

[13] уязвимость: https://xakep.ru/2018/02/07/think-before-you-quic/

[14] Sagor Kumar sr: https://commons.wikimedia.org/wiki/File:How-to-stop-a-ddos-attack.png

[15] CC: https://creativecommons.org/licenses/by-sa/4.0

[16] несовместимость: https://www.theregister.co.uk/2018/09/25/cloudflare_quic_protocol/

[17] экспериментам: https://blog.apnic.net/2018/01/29/measuring-quic-vs-tcp-mobile-desktop/

[18] пользовательском пространстве: https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D1%81%D1%82%D1%80%D0%B0%D0%BD%D1%81%D1%82%D0%B2%D0%BE

[19] недостаток: https://www.snellman.net/blog/archive/2016-12-01-quic-tou/

[20] CDN-сервисы: https://ru.wikipedia.org/wiki/Content_Delivery_Network

[21] работала: https://www.verizondigitalmedia.com/blog/2018/05/how-quic-speeds-up-all-web-applications/

[22] GitHub: https://github.com/quicwg/base-drafts/wiki/Implementations

[23] данные: https://w3techs.com/technologies/details/ce-quic/all/all

[24] оценивают: https://blog.apnic.net/2018/05/15/how-much-of-the-internet-is-using-quic/

[25] Как раздавать бесплатный Wi-Fi по закону: https://vasexperts.ru/blog/skat-dpi/predostavlenie-besplatnogo-wi-fi-soglasno-zakonodatelstvu/

[26] Выстрел в ногу: критические ошибки в строительстве сетей операторов связи: https://vasexperts.ru/blog/telekom/ekonomiya-na-spichkax-i-neskolko-sposobov-vystrelit-sebe-v-nogu-kriticheskie-oshibki-v-stroitelstve-setej-operatorov-svyazi/

[27] Интернет в деревню — строим радиорелейную Wi-Fi-сеть: https://vasexperts.ru/blog/telekom/internet-v-derevnyu-stroim-radiorelejnuyu-wi-fi-set/

[28] Как эффективно распределить полосу пропускания: https://vasexperts.ru/blog/qos/sposoby-effektivnogo-raspredeleniya-polosy-propuskaniya/

[29] Источник: https://habr.com/post/429380/?utm_source=habrahabr&utm_medium=rss&utm_campaign=429380