Тип работы:
Предмет:
Язык работы:


Анализ протокола QUIC для использования в современных веб-приложениях

Работа №127429

Тип работы

Бакалаврская работа

Предмет

информатика

Объем работы42
Год сдачи2022
Стоимость4265 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
13
Не подходит работа?

Узнай цену на написание


Перечень сокращений, условных обозначений, символов, единиц и терминов 3
ВВЕДЕНИЕ 4
Постановка задачи 6
Обзор литературы 7
Глава 1. Описание основных транспортных протоколов в сети интернет 8
1.1 Транспортный протокол TCP 8
1.1.1 Установка соединения TCP 10
1.1.2 Передача данных 13
1.1.3 Закрытие соединения 14
1.1.4 Проблемы TCP 14
1.2 Транспортный протокол UDP 15
1.2.1 Проблемы UDP 16
Глава 2. Транспортный протокол QUIC 17
2.1 Потоки 18
2.2 Соединения 19
2.3 Преимущества и недостатки QUIC в сравнение с TCP + TLS 21
Глава 3. Улучшения HTTP/3 24
Глава 4. Использование протокола QUIC в веб-приложении 26
4.1 Имплементация QUIC в веб-приложение 27
4.2 Сравнительный анализ производительности QUIC и TCP 34
Выводы 40
Заключение 41
Список литературы 42

Многие годы весь интернет использовал TCP протокол для передачи данных, который начал устаревать еще в 2000-х годах. Данный протокол изначально не был создан для эффективной работы в современных сетях. Например, TCP соединение строго зависит от IP-адресов источника и получателя, что является хорошим решением, кода оба узла обмена статичны, как изначально планировалось, но с развитием коммуникационных технологий, появились беспроводные сети, и источник перестал быть привязан к одному IP. Таким образом, пользователь, подключенный к сети по LTE, может менять свой IP-адрес просто идя по улице, таким образом вынуждая TCP создавать новое соединение, что увеличивает задержку в получении данных. Еще одной проблемой TCP является то, что все данные, передаваемые по TCP, протокол передает как один файл или поток байтов, даже если на самом деле их несколько. Это привело к одной из самых известных проблем TCP - блокировке начала очереди.
В последние годы, большинство компаний, работающих в сфере веб-технологий пытались улучшить пользовательский опыт и безопасность коммуникации между пользователями и сервисами компании. Для этого, предпринимались попытки решить проблемы как на высоких, так и на более низких уровнях стека технологий в сети интернет. Так, некоторые компании создавали свой протокол поверх UDP, чтобы решить проблемы TCP, который сейчас использует преобладающее множество клиент-серверных приложений. Одной из таких попыток создать свой протокол был QUIC, разработанный компанией Google в 2012 году. Позже стандартизированный и легший в основу HTTP/3, протокол обещал решить большинство проблем стека TCP в связке с TLS.
На данный момент, QUIC активно развивается, сформированная в 2016 году рабочая группа рассмотрела более 23 версий спецификации и продолжает развивать ее. Сервисы Google, такие как YouTube, Search, Gmail и многие другие полностью переведены на инфраструктуру HTTP/3.
Постановка задачи
Целью работы является анализ существующих решений со стороны клиента и сервера для использования протокола QUIC в современном веб-приложении. Для достижения поставленной цели необходимо: проанализировать протокол в текущей спецификации draft-ietf-quic-transport- 27, создать клиент-серверное приложение в виде текстового чата с множеством пользователей, проанализировать сложности имплементации данного протокола, а также описать пути решения тех или иных задач, возникших при использовании данного протокола. На данный момент протокол имеет малое количество ресурсов и реализаций, а также достаточно низкоуровневые API, что может стать сложностью при имплементации нового решения в существующую архитектуру, так как устоявшиеся технологии имеют гораздо более высокий уровень абстракций как на стороне сервера, так и на стороне клиента.
Также при разработке веб-приложения поставлена задача реализовать упрощенную версию технологии WebSocket, но работающую поверх HTTP/3. Для этих целей предполагается использование клиентского WebTransport API для взаимодействия с сервером по HTTP/3 на низком уровне потоков. Необходимо написать клиентский модуль, инкапсулирующий сложности при управлении потоками, дающий возможности передавать данные между клиентом и сервером с помощью простых методов, близких к методам протокола WebSocket.


Возникли сложности?

Нужна помощь преподавателя?

Помощь студентам в написании работ!


В данной работе проведен анализ существующих решений со стороны клиента и сервера для использования протокола QUIC в современном веб-приложении. Проанализирован протокол в текущей спецификации draft-ietf- quic-transport-34, создано клиент-серверное приложение в виде текстового чата с множеством пользователей, проанализирована сложность имплементации данного протокола, а также описаны пути решения тех или иных задач, возникших при использовании данного протокола.
Клиентская часть приложения написана на Reactjs и Typescript. На стороне клиента был реализован модуль для высокоуровневого взаимодействия с сервером с помощью двунаправленных потоков и модуль, инкапсулирующий однонаправленные потоки. Благодаря чему, взаимодействие с сервером было похоже на связь с помощью вебсокетов. Оба модуля используют WebTransport API. Серверная часть приложения написана на Python с использованием библиотеки Aioquic. Поддерживает протокол QUIC и WebTransport, имеет возможность расширения при добавлении новых конечных точек, сохраняет соединения и может отправлять сообщения всем пользователям по двунаправленным потокам.



1 Лора А. Чеппел, Эд Титтел. TCP/IP. Учебный курс. 1-е изд. СПб: БХВ- Петербург, 2003, 976 с.
2 Спецификация TCP. - URL: http://citforum.ru/nets/tcp/tcpspec.shtml(дата обращения: 15.04.2022).
3 Спецификация UDP. - URL: http://citforum.ru/nets/tcp/udpspec.shtml(дата обращения: 15.04.2022).
4 Фейт Сидни. TCP/IP Архитектура, протоколы, реализация. 2-е изд. Лори, 2014, 448 с.
5 Jung, J., An, D. Access Latency Reduction in the QUIC Protocol Based on Communication History. Electronics 2019, 8, 1204. DOI:
10.3390/electronics8101204
6 Gagliardi, E., Levillain, O. Analysis of QUIC Session Establishment and Its Implementations. In: Laurent, M., Giannetsos, T. (eds) Information Security Theory and Practice. WISTP 2019, 16 с. DOI: 10.1007/978-3-030-41702-4_11
7 Hypertext Transfer Protocol Version 3 (HTTP/3). - URL: https://quicwg.org/base-drafts/draft-ietf-quic-http.html(дата обращения: 18.05.2022)
8 HTTP/3: Performance Improvements. - URL:
https: //www.smashingmagazine.com/2021/08/http3 -performance-improvements- part2/
9 HTTP/3: Practical Deployment Options. - URL:
https://www.smashingmagazine.com/2021/09/http3-practical-deployment-options- part3/
10 Multipath QUIC: Design and Evaluation. - URL:
https://conferences2.sigcomm.org/co-next/2017/presentation/S4_2.pdf
11 QUIC IETF спецификация. - URL: https://datatracker.ietf.org/doc/html/draft- ietf-quic-transport-34(дата обращения: 22.04.2022)
12 Hasselquist, D., Lindstrom, C., QUIC Behavior over Dual Connectivity. IEEE MASCOTS 2021, 19 с. DOI: 10.48550/arXiv.2112.14328
13 Robert Morris. Scalable TCP Congestion Control. IEEE INFOCOM 2000, 8 с.
- URL: http://nil.lcs.mit.edu/rtm/papers/thesis.pdf
14 The WebSocket Protocol. - URL: https://datatracker.ietf.org/doc/html/rfc6455
15 Using WebTransport. - URL: https://web.dev/i18n/en/webtransport/
16 WebTransport specification. - URL: https://www.w3.org/TR/webtransport/
17 Кодовая база приложения. - URL: https://github.com/vladKrk/quic_chat


Работу высылаем на протяжении 30 минут после оплаты.




©2024 Cервис помощи студентам в выполнении работ