УДК 004.738.5

Использования протоколов семейства QUICдля передачи HTTP-трафика

Степанов Владислав Юрьевич – аспирант Национального исследовательского университета ИТМО.

Аннотация: С учетом все возрастающей важности веб-технологий в современном мире, эффективность передачи веб-страниц становится критическим фактором для обеспечения и поддержания высокого качества пользовательского опыта при использовании веб-приложений. В связи с этим в рамках данной статьи анализируется проблемы, возникающие при передаче веб-страниц посредством различных версий протокола HTTP в современных телекоммуникационных сетях. Особое внимание уделяется вопросам дальнейшей оптимизации процесса передачи веб-страниц c использовании многопутевого протокола маршрутизации трафика MPQUIC.

Ключевые слова: веб-страницы, оптимизация, многопутевая передача данных, HTTP, MPQUIC.

Одной из основных тенденций последних десятилетий в области телекоммуникационных технологий является увеличение числа пользователей, что в свою очередь приводит к стремительному росту разнородного трафика и повышенным потребностям в ресурсах существующих и будущих компьютерных сетей [1]. В частности, согласно Cisco Annual Internet Report [2] число суммарное число пользователей Интернета к концу 2023 года достигнет 5.3 млрд (по сравнению с 3.8 млрд в 2018 году), а количество устройств с подключением в Интернет возрастет с до 3.6 млдр (по сравнению с 2.4 млрд в 2018 году).

Значительная доля пропускной способности сетей, обеспечивающих функционирование сети Интернет, используется для передачи HTTP-трафика. В свою очередь, значительную часть HTTP-трафика составляют веб-страницы. В связи с этим время загрузки веб-страниц становится критическим показателем для пользователей сети Интернет. Исследования демонстрируют, что даже незначительное улучшение производительности веб-страниц может оказать существенное положительное влияние на доходы бизнеса [3]. Таким образом, для поддержания и потенциального повышения качества обслуживания пользователей необходимо разрабатывать и использовать протоколы и методы маршрутизации и управления HTTP-трафиком, которые позволили бы минимизировать задержки передачи данных, обеспечить высокую пропускную способность и достичь надежности функционирования телекоммуникационных сетей.

Ранние версии протокола HTTP (HTTP/0.9, HTTP/1.0, HTTP/1.1) были представлены в 90-х годах прошлого века. Им характерен ряд недостатков, которые оказывают негативное влияние на скорость передачи данных [4]. Для преодоления характерных для ранних версий протокола HTTP проблем был представлен протокол HTTP/2 [5]. Одной из основных особенностей HTTP/2 является поддержка мультиплексирования, которые позволяет выполнять несколько запросов в рамках одного соединения (в рамках HTTP/1.1, каждый запрос требовал отдельного соединения, что приводило к избыточным накладным расходам). Кроме того, в HTTP/2 заголовки сжимаются с использованием алгоритмов сжатия, что позволяет сократить объем передаваемых данных и уменьшить нагрузку на сеть. Другой важной особенностью HTTP/2 является реализация механизма «server push»: сервер может отправлять клиенту ресурсы, которые он, вероятно, запросит в будущем, без ожидания соответствующего запроса. Кроме усилий по снижению накладных расходов, HTTP/2 привносит значительные улучшения, вводя механизм приоритезации потоков. Благодаря этому механизму появляется возможность определить приоритеты для всех объектов веб-страницы. Таким образом, ключевые объекты в процессе отображения веб-страницы (HTML и CSS файлы, файлы шрифтов и т. д.) будут загружены в первую очередь. Данный факт позволит сократить интервал времени, который необходим для отображения веб-страницы в её минимальной вариации.

Для дальнейшего улучшения производительности в рамках протокола HTTP/3 [6] было предложено отказаться от протокола TCP и использовать протокол QUIC [7]. Высокоуровневая схема функционирования протокола QUIC представлена на рисунке 1.

1

Рисунок 1. Высокоуровневая схема функционирования протокола QUIC.

Протокол QUIC разработан для преодоления основных ограничений экосистемы TCP. QUIC использует легковесную абстракцию структурирования данных на основе UDP, называемую потоками, которые мультиплексируются в рамках одного соединения, так что потеря одного пакета блокирует только соответствующий поток, а не все. Благодаря этому HTTP/2 через QUIC устраняет задержки, вызванные блокировкой начала очереди по сравнению с HTTP/2 через TCP. QUIC продемонстрировал свои преимущества, успешно сокращая задержку ответов поиска Google на 3,6% и снижая время буферизации видео на YouTube на 15,3% [8].

Несмотря на то, что протоколы HTTP/2 и HTTP/3 позволяют значительно оптимизировать загрузку веб-страниц, пропускная способность канала передачи данных по-прежнему остается узким местом. Одним из возможных путей преодоление данной проблемы является использование многопутевых протоколов передачи данных [9], которые обеспечивают возможность одновременного использования нескольких сетевых интерфейсов для передачи данных между различными устройствами.

Одним из представителей группы многопутевых протоколов является протокол Multipath QUIC (MPQUIC) [10], который построен на базе QUIC. Высокоуровневая схема функционирования протокола MPQUIC представлена на рисунке 2.

2

Рисунок 2. Высокоуровневая схема функционирования протокола MPQUIC.

Основная идея протокола заключается в распределении логических потоков данных по подпотокам, которые представляют собой множество активных маршрутов передачи данных. За формирование путей передачи данных между отправителем и получателем (в зависимости от текущего состояния маршрута он может добавлен или удален) отвечает менеджер маршрутов, а за разбиение потоков данных по подпотокам – планировщик пакетов.

Несмотря на то, что использование протокола MPQUIC позволяет повысить скорость передачи данных (по сравнению с протоколами MPTCP, QUIC и TCP), его производительность в ряде сценариев не оптимизирована (например, в сценариях загрузки веб-страниц). Планировщик, представленный в проекте протокола MPQUIC, заимствуется из протокола MPTCP и не учитывает приоритеты потоков при распределении пакетов по каналам передачи данных. В связи с этим могут возникать HoL-блокировки между потоками. В частности, в сценарии загрузки веб-страниц может возникнуть ситуация, при которой планировщик пакетов в первую очередь отдаст предпочтения потокам с данными низкого приоритета (например, изображениям). Такая ситуация приведет к тому, что необходимые для критичные для отображения веб-страницы структурные элементы ещё не переданы (к числу таких элементов относится содержимое HTML и CSS файлов, файлов шрифтов и сценариев на языке JavaScript). В связи с этим время до первоначального отображения веб-страницы будет возрастать.

Таким образом, для эффективного использования протокола MPQUIC для передачи HTTP-трафика (в частности веб-страниц) необходимо разрабатывать планировщики пакетов, которые бы позволили учитывать приоритезацию потоков при распределении пакетов по каналам передачи данных и минимизировали HoL-блокировки между логическими потоками.

Список литературы

  1. Liang, Ke & Myers, Mitchel. (2021). Machine Learning Applications in the Routing in Computer Networks. URL: https://arxiv.org/abs/2104.01946
  2. Cisco Annual Internet Report (2018–2023) White Paper. — Текст : электронный // Cisco : [сайт]. — URL: https://www.cisco.com/c/en/us/solutions/collateral/executive-perspectives/annual-internet-report/white-paper-c11-741490.html (дата обращения: 23.06.2023).
  3. Impact of Response Latency on User Behaviour in Mobile Web Search Ioannis Arapakis, Souneil Park, and Martin Pielot. 2021. Impact of Response Latency on User Behaviour in Mobile Web Search. In Proceedings of the 2021 Conference on Human Information Interaction and Retrieval (CHIIR '21). Association for Computing Machinery, New York, NY, USA, 279–283. https://doi.org/10.1145/3406522.3446038
  4. Расторгуева Е.А., Багаева А.П. Интернет-технологии будущего от http к HTTP2 // Актуальные проблемы авиации и космонавтики. 2015. №11. URL: https://cyberleninka.ru/article/n/internet-tehnologii-buduschego-ot-http-k-http2 (дата обращения: 22.06.2023).
  5. RFC 7540. Hypertext Transfer Protocol Version 2 (HTTP/2). URL: https://datatracker.ietf.org/doc/html/rfc7540
  6. RFC 9114. HTTP/3. URL: https://datatracker.ietf.org/doc/rfc9114/
  7. RFC 9000. QUIC: A UDP-Based Multiplexed and Secure Transport. URL: https://datatracker.ietf.org/doc/rfc9000/
  8. Langley, Adam & Iyengar, Janardhan & Bailey, Jeff & Dorfman, Jeremy & Roskind, Jim & Kulik, Joanna & Westin, Patrik & Tenneti, Raman & Shade, Robbie & Hamilton, Ryan & Vasiliev, Victor & Riddoch, Alistair & Chang, Wan-Teh & Shi, Zhongyi & Wilk, Alyssa & Vicente, Antonio & Krasic, Charles & Zhang, Dan & Yang, Fan & Swett, Ian. (2017). The QUIC Transport Protocol: Design and Internet-Scale Deployment. 183-196. 10.1145/3098822.3098842.
  9. Wu, S. Ferlin, G. Caso, Ö. Alay and A. Brunstrom, "A Survey on Multipath Transport Protocols Towards 5G Access Traffic Steering, Switching and Splitting," in IEEE Access, vol. 9, pp. 164417-164439, 2021, doi: 10.1109/ACCESS.2021.3134261.
  10. De Coninck, Q.; Bonaventure, O. Multipath quic: Design and evaluation. In Proceedings of the 13th International Conference on Emerging Networking Experiments and Technologies, Incheon, Korea, 12–15 December 2017; pp. 160–166.

Интересная статья? Поделись ей с другими: