Сайт использует сервис веб-аналитики Яндекс Метрика с помощью технологии «cookie». Пользуясь сайтом, вы даете согласие на использование данной технологии.
Чего ожидать от HTTP/3 + Go? - Нина Пакшина | TechMeetup #5 Go
Нина Пакшина, организатор Московского клуба программистов ( , расскажет о том, как работать с протоколом HTTP/3 в среде языка программирования Go. Посмотрим на ключевые отличия в реализации сервера и клиента на библиотеках для HTTP/2 и HTTP/3. episods (auto): 00:00 Введение • Доклад посвящен новой версии протокола и реализации сервера и клиента на Go. 01:42 Структура доклада • Доклад состоит из трех частей: предубеждения, мифы и подводные камни. 02:10 История создания протокола • История создания протокола TCP/IP. • Использование TCP для надежной передачи данных. 03:05 Развитие протокола • Вторая версия протокола TCP/IP добавила заголовки, коды статусов и метод HTTP. • Третья версия протокола TCP/IP добавила поддержку HTTP/2. • HTTP/2 позволяет передавать несколько файлов через одно соединение. 04:57 Проблемы и решения • Проблемы с транспортным уровнем в HTTP/2. • Третья версия использует протокол QUIC поверх UDP. 07:09 Реализация сервера и клиента • Пример реализации сервера на Go для третьей версии протокола. • Создание мультиплексора и настройка конфигов для TLS и QUIC. 08:41 Безопасность и надежность • QUIC обеспечивает контроль перегрузок и гарантию доставки сообщений. • QUIC гарантирует доставку и порядок сообщений, несмотря на ненадежность базового протокола UDP. 10:00 QUIC и его особенности • Квик дублирует функционал надежности TCP, но с улучшениями. • Квик использует ретрансляцию для пересылки потерянных пакетов. 10:59 Контроль перегрузок • Квик реализует контроль перегрузок для оптимизации скорости передачи. • В отличие от TCP, использует новый алгоритм NEYRO. 11:55 Различия между QUIC и TCP • В TCP используется устаревший протокол ARENA, в Квик рекомендуется использовать NEYRO. • Квик более эффективен в сложных средах передачи данных. 12:32 Контроль перегрузок в Квик • В TCP контроль перегрузок медленный, в Квик более эффективный. • Квик может быть реализован на уровне приложения для быстрого старта. 13:32 Настройка Квик • Можно задать начальный размер для стримов и соединений. • Разрешить увеличение размера входного потока. 14:15 Сравнение скорости соединения • Квик не всегда быстрее, чем TCP. • В локальной сети TCP может быть быстрее. • Квик может сразу передавать данные после установления соединения. 17:28 Безопасность и шифрование • Квик интегрирует TLS в транспортный уровень. • Зашифрованы все данные, кроме заголовка и некоторых флагов. • Устраняет уязвимости и улучшает производительность. 20:10 Преимущества QUIC • Квик поддерживает долгоживущие стримы, в отличие от TCP. • Стримы могут быть инициированы клиентом или сервером. 23:36 Создание стрима • Создание объекта Roundship для настройки TLS и QUIC. • Создание нового запроса с методом и указанием ресурса. • Предотвращение закрытия стрима со стороны клиента. 24:31 Управление стримом • Сохранение стрима в сессии для управления. • Запись сообщения в стрим. • Открытие стрима только со стороны клиента. 24:58 Перехват управления стримом • Сигнализирование клиенту о доступности ресурса. • Перехват управления стримом со стороны сервера. • Чтение данных и закрытие стрима. 26:29 Типы фреймов и датаграммы • Типы фреймов: дата, сеттингс, кастомные фреймы. • Использование датаграмм для передачи видео и аудио. 29:16 Поддержка миграции соединения • Поддержка миграции соединения между сетями. • Использование уникального коннекшна для каждого соединения. 30:50 Преимущества QUIC • Реализация QUIC на уровне ОС. • Возможность доработать протокол для новых версий. • Шифрование сообщений для защиты от анализа. 32:57 Подводные камни и рекомендации • Не устоявшийся стандарт и мало документации. • Рекомендации по использованию усовершенствованных протоколов. 35:12 Заключение • QUIC занимает около 30% трафика. • Будущее за QUIC из-за нестабильных сетевых подключений. 37:07 Протокол QUIC и его преимущества • Протокол QUIC укоренится как замена TCP. • QUIC предлагает улучшенные настройки и гарантии доставки файлов. 37:56 Механизм доставки файлов в QUIC • QUIC сам считает пакеты и окноледжменты, что обеспечивает надежность доставки. • Транспортный протокол TCP не гарантирует доставку файлов, в отличие от QUIC. 41:35 Обратная совместимость QUIC • Для версий 2 и 1 есть совместимость, но для версии 3 совместимость отсутствует. • Для плавного перехода нужно будет использовать два экземпляра сервиса. 43:00 Будущее QUIC и его сравнение с другими технологиями • QUIC дублирует функционал других технологий, таких как gRPC. • QUIC эффективен для быстрой загрузки через нестабильные сети. • QUIC для минимизации трафика. 46:52 Практическое применение QUIC • QUIC позволяет заменить незащищенные соединения на защищенные. 49:07 Поддержка веб-сокетов в QUIC • Веб-сокеты могут быть реализованы поверх QUIC. • Веб-транспорт поддерживает стримы и сообщения, аналогичен веб-сокетам. 50:41 Завершение и благодарность #tech_meetup #go #tech_meetup5 --- TechCommon/Go ( 👈