Оглавление
- Введение
- Технические основы QUIC и HTTP/3
- Почему стриминг и realtime‑инференс в AI‑API так чувствительны к сети
- Сценарии, где HTTP/3 дает заметный выигрыш для streaming и realtime
- Где эффект минимален или может стать отрицательным
- Метрики и методика измерения влияния HTTP/3 на AI‑API
- Архитектурные варианты внедрения HTTP/3 для AI‑API
- Пошаговая миграция, типовые грабли и решение “да/нет”
Введение
Стриминг токенов — штука коварная: если сеть “чихнула”, пользователь часто видит не потери пакетов, а “модель подвисла”. Пауза на секунду, потом токены прилетают пачкой — и ощущение, что система нестабильна, даже если inference работает идеально. Для глобальной аудитории (особенно mobile + public Wi‑Fi) это превращается в реальную бизнес‑метрику: больше ретраев, больше оборванных стримов, ниже конверсия в “подождать ответ до конца”.
HTTP/3 (поверх QUIC) появился как раз потому, что HTTP/2 упирается в свойства TCP в “плохих” сетях: один потерянный пакет может повлиять на все параллельные потоки на соединении. Для AI‑API это важно сильнее, чем для обычного REST: у вас длинные соединения, realtime‑UX и параллельные потоки (стрим, телеметрия, логи, загрузка контекста).
Ниже — техническая база и практический, измеримый взгляд: где HTTP/3 реально помогает AI‑стримингу и realtime‑инференсу, где эффект почти нулевой, какие метрики собирать, как мигрировать без “падалок” и как не попасть в типовые сетевые ловушки.

Технические основы QUIC и HTTP/3
HTTP/3 — это отображение семантики HTTP поверх транспорта QUIC (RFC 9114). QUIC — “UDP‑based multiplexed and secure transport” (RFC 9000): соединение‑ориентированный транспорт поверх UDP с надежной доставкой, контролем перегрузки и мультиплексированием потоков.
Ключевая разница для DevOps/NetOps не в заголовках HTTP, а в том, как ведет себя транспорт в момент проблем.
HTTP/2: мультиплексирование есть, но TCP диктует правила
HTTP/2 работает поверх TCP (RFC 9113). Он умеет держать много параллельных стримов в одном соединении, но TCP доставляет байтовый поток строго по порядку. Если один TCP‑сегмент потерялся, получатель будет ждать его ретрансмит, а “всё, что приехало после” может оказаться недоступным приложению до восстановления порядка. Это транспортный head‑of‑line blocking (HoL).
Для AI‑стриминга это особенно болезненно: вы отправляете маленькие куски данных (токены/ивенты), и один “неудачный” потерянный пакет может визуально превратиться в паузу.
HTTP/3: те же HTTP‑смыслы, но потоковая логика спускается в QUIC
В HTTP/3 надежная доставка и упорядочивание — per‑stream, то есть на уровне каждого QUIC‑стрима, а не всего соединения. RFC 9114 прямо фиксирует, что HTTP/3 полагается на QUIC для конфиденциальности/целостности, а также “reliable, in‑order, per‑stream delivery”.
Отсюда практический эффект: потеря пакета, затронувшая один поток (например, “основной” стрим токенов), не обязана замораживать другой поток (телеметрия/логирование/параллельный запрос на подгрузку контекста) так же жестко, как в TCP‑мире. Эту логику “сужения области in‑order delivery до стрима” как раз и описывает инженерная мотивация HTTP/3/QUIC в разборе Fastly, где отдельно подчеркивается проблема “TCP HoL” для HTTP/2 в плохих сетях.
Шифрование и рукопожатие: HTTP/3 “по умолчанию TLS”
QUIC использует TLS 1.3 как часть протокола (RFC 9001), включая ключи, защиту пакетов и политику ранних данных. Практический вывод для эксплуатации: HTTP/3 всегда идет поверх шифрованного QUIC, то есть “HTTP/3 = HTTPS‑семантика”, что подтверждает и техническая документация curl (HTTP/3 только для HTTPS).
Для сетевых команд это плюс (целостность/конфиденциальность), но и минус: часть привычной L7/L4‑наблюдаемости “уходит в шифр”. Операционные последствия и ограничения прямо разбираются в “Manageability of the QUIC Transport Protocol” (RFC 9312), ориентированном на операторов и вендоров сетевого оборудования.
QPACK: компрессия заголовков без “побочного HoL”
HTTP/3 использует QPACK (RFC 9204) — вариацию HPACK, сделанную так, чтобы уменьшать head‑of‑line blocking, характерный для некоторых схем компрессии заголовков при иных транспортных свойствах.
Для AI‑API это редко главный источник проблем (токены важнее заголовков), но для high‑RPS микросервисных сценариев и больших метаданных (трассировка, корреляционные заголовки) QPACK — часть “общего профиля” HTTP/3.

Почему стриминг и realtime‑инференс в AI‑API так чувствительны к сети
AI‑API часто живут в режиме “длинного дыхания”: запрос стартовал, модель думает, и сервер постепенно выдает результат. На практике это почти всегда реализуют либо через Server‑Sent Events (SSE), либо через похожие модели “chunked streaming”.
SSE — стандартный механизм “сервер пушит события в браузер/клиент по одному HTTP‑соединению”; формат и требования к text/event-stream описаны в документации MDN и спецификации HTML. На стороне AI‑платформ это действительно используется: например, документация entity["company","OpenAI","ai api provider"] прямо указывает, что при stream=true сервер эмитит server‑sent events по мере генерации ответа.
В таких системах пользователи “считывают качество” не по средней скорости, а по трем вещам:
TTFT: time to first token как психологический предел
TTFT — это “время до первого видимого кусочка результата”: первый токен, первый SSE‑ивент, первый байт body (“TTFB”, если упрощать под HTTP‑метрики). Для UX это критично: если первые ~200–500 мс кажутся “мгновенно”, 1–2 секунды часто воспринимаются как зависание, даже если полный ответ будет готов за 5–8 секунд.
HTTP/3 не ускорит inference‑ядро, но может сократить “сетевую часть” старта соединения/возобновления сессии и, что важнее, уменьшить шансы на сетевые провалы в начале стрима.
Jitter и “рваный” стрим токенов
Самый узнаваемый симптом транспортных проблем в AI‑стриминге — бурсты:
- токены не приходят 800–1500 мс,
- потом приходят пачкой за 50–100 мс,
- потом снова тишина.
Это почти всегда выглядит как “модель тупит”, хотя корень — задержка из‑за потери/переупорядочивания/ретрансмитов. В TCP‑мире потерянный сегмент способен удерживать последующие данные, потому что доставка приложению идет строго по порядку.
Чтобы было наглядно, вот упрощенная картинка “как это ощущается”:
Время →HTTP/2 поверх TCP: token: a b c (пауза) d e f g h сеть: OK OK LOSS -> retransmit -> OK OK OK OKHTTP/3 поверх QUIC: token: a b c d e (редкий провал локально на стриме) сеть: OK OK LOSS -> repair per-stream -> OK OK
Смысл: QUIC старается ограничивать “область ремонта” потерей конкретного стрима, а не всего соединения.
Стабильность соединений: “длинные ответы” и мобильность
AI‑клиент может сидеть в метро, менять Wi‑Fi → LTE, переезжать между NAT‑ами, ловить скачки RTT. QUIC поддерживает connection migration за счет Connection ID и описывает процесс миграции на новый адрес (RFC 9000, раздел про Connection Migration). Это не гарантирует магии “никогда не рвется”, но дает протокольный фундамент, который у TCP в такой форме отсутствует.
Сценарии, где HTTP/3 дает заметный выигрыш для streaming и realtime
HTTP/3 не “ускоряет интернет”, он делает систему менее хрупкой. Самый большой эффект появляется там, где сети плохие и непредсказуемые — как раз типичный “глобальный AI‑клиент”.
Потери пакетов и jitter: мобильные сети, перегруженный Wi‑Fi, публичные хот‑споты
Fastly в разборе причин появления HTTP/3 подчеркивает, что HTTP/2, хотя и улучшает параллелизм, “не так хорош на плохих соединениях — например, при высокой потере пакетов или сочетании небольшой потери и большой latency”, потому что TCP‑HoL начинает доминировать.
Для AI‑API это конвертируется в:
- меньше “ступенек” и пауз в стриминге токенов;
- меньше оборванных long‑poll/streaming‑ответов;
- меньше повторных запросов из‑за того, что приложение “решило” ретраить подвисший стрим.
Готовы перейти на современную серверную инфраструктуру?
В King Servers мы предлагаем серверы как на AMD EPYC, так и на Intel Xeon, с гибкими конфигурациями под любые задачи — от виртуализации и веб-хостинга до S3-хранилищ и кластеров хранения данных.
- S3-совместимое хранилище для резервных копий
- Панель управления, API, масштабируемость
- Поддержку 24/7 и помощь в выборе конфигурации
Результат регистрации
...
Создайте аккаунт
Быстрая регистрация для доступа к инфраструктуре
Быстрые переподключения и 0‑RTT: когда “сессия уже была”
QUIC допускает 0‑RTT данные при возобновлении сессии, но это зона, где сети встречаются с безопасностью.
- TLS 1.3 предупреждает: для 0‑RTT нет гарантий защиты от replay между соединениями; 0‑RTT слабее по “anti‑replay”.
- В QUIC аналогичный риск фиксируется напрямую: “use of 0‑RTT in QUIC is … vulnerable to replay attack”, и нужны replay protections; при этом признается, что они несовершенны (RFC 9001).
- HTTP/3 отдельно требует применять меры против replay для 0‑RTT (RFC 9114, раздел про Early Data с ссылкой на HTTP replay mitigations).
- Для HTTP есть отдельный стандарт по ранним данным и снижению replay‑рисков (RFC 8470).
Практический смысл для AI‑API:
- 0‑RTT потенциально улучшает “возврат пользователя” в чат/приложение, когда сессия и криптоконтекст уже есть.
- Но не все запросы безопасно отправлять как early data. Для AI‑API, где почти все запросы — POST с оплатой/квотами/созданием задач, нужно либо использовать идемпотентность (idempotency keys), либо отказывать ранним данным (например, механикой “Too Early” из RFC 8470), либо включать 0‑RTT выборочно на безопасных эндпоинтах.
На уровне инфраструктуры важно, что 0‑RTT — это не “включили и забыли”. Например, документация Nginx показывает, что 0‑RTT завязана на поддержку early data со стороны TLS‑библиотеки и включение ssl_early_data, при этом QUIC требует TLSv1.3.
Мобильность: Wi‑Fi ↔ LTE без “смерти” соединения
Если ваш AI‑клиент — мобильное приложение или веб‑клиент в телефоне, миграция сети — не редкость, а норма. QUIC описывает connection migration как нормальный сценарий: Connection ID позволяет переживать смену IP/порта, и протокол определяет процесс перехода.
Для realtime‑инференса (голос/мультимодал/интерактивный стрим) это часто важнее, чем +20 мс к медиане: пользователь скорее простит “чуть медленнее”, чем “оборвалось и начни заново”.
Параллельные потоки в AI‑клиентах: “основной стрим” плюс телеметрия/логирование/контекст
Типичный AI‑клиент делает не один поток данных:
- основной стрим SSE/чанков,
- параллельные вызовы инструментов/функций,
- отправка логов и трассировки,
- heartbeat/telemetry.
В HTTP/2 это мультиплексируется, но TCP‑HoL при потере может “замедлить всех”.
В HTTP/3 логика независимых стримов встроена в транспорт, и даже в материалах HAProxy это описано так: QUIC “solves the head of line blocking at the transport level by means of independently handled streams; when experiencing loss, an impacted stream does not affect the other streams”.
Для AI‑API это особенно полезно в “мульти‑стрим” UX: например, вы хотите, чтобы даже при деградации телеметрии токены продолжали идти ровно, а не “все вместе встали”.

Где эффект минимален или может стать отрицательным
Инженерно честно: HTTP/3 не является универсальной оптимизацией. Иногда он почти ничего не меняет, а иногда добавляет сложность и новые виды проблем.
Когда доминирует latency inference, а не сеть
Если ваша p95 задержка в основном:
- очередь на GPU/CPU,
- холодные старты,
- тяжелая сериализация/десериализация,
- медленная БД/feature store,
то транспорт даст вторичный эффект. HTTP/3 здесь может улучшить “нервную систему” (меньше рывков), но не проедет по главному bottleneck.
Внутри датацентров и на “стерильных” линках
Внутри одного DC или между DC по выделенным каналам loss обычно низкий, RTT стабилен, middlebox’ы предсказуемы. Здесь HTTP/2 зачастую уже “достаточно хорош”, и ROI от HTTP/3 может быть нижним.
Этот тезис хорошо сочетается с логикой Fastly про “tail optimization”: HTTP/3 в первую очередь нацелен на длинный хвост плохих соединений; для “средних/хороших” он может почти не дать изменений.
Где UDP блокируют, режут или “душат”
HTTP/3 работает поверх QUIC/UDP. И это может стать проблемой в корпоративных сетях, некоторых VPN, старых NAT/фаерволах.
Что важно: отказ UDP не всегда выглядит как “сразу не работает”. Часто это выглядит как долгая попытка подключиться по QUIC, затем fallback — и именно этот тайм‑аут добавляет latency.
Операционно это очень четко сформулировано в документации Envoy: поскольку HTTP/3 идет по UDP, “не uncommon”, что девайсы блокируют UDP и тем самым блокируют HTTP/3; в таких случаях попытки уйдут в fallback на HTTP/2/HTTP/1.
Операционные минусы: наблюдаемость и новая “площадь атаки”
- Наблюдаемость и управление: RFC 9312 прямо обсуждает, как дизайн QUIC влияет на сетевые функции и измерения (операторам приходится менять инструменты).
- Безопасность/DoS‑профиль: QUIC вводит новые реализации и новые уязвимости на уровне библиотек/стека. Например, entity["company","Fastly","edge cloud company"] и другие крупные игроки не раз подчеркивали, что QUIC строит “TCP‑подобные сервисы поверх UDP”. В 2025 году Cloudflare описывала и исправляла ACK‑related DDoS‑уязвимости в QUIC‑реализации (quiche), что хорошо иллюстрирует: поверхность атак реальна и требует дисциплины патч‑менеджмента.
Плюс появляется чисто сетевой слой: UDP/443 нужно защищать и мониторить по PPS/packets, а не только по RPS.

Метрики и методика измерения влияния HTTP/3 на AI‑API
Чтобы решить “стоит ли переходить”, вам нужны метрики, которые отражают ощущение стрима, а не только средний RPS.
TTFT: время до первого токена/ивента
Практически измеряется на клиенте:
- t_request_start: момент отправки запроса;
- t_first_event: момент прихода первого SSE‑ивента/первого чанка.
Почти всегда полезно хранить p50/p95/p99 и сегментировать по:
- географии (страна/регион),
- ASN/провайдер,
- тип сети (mobile/wi‑fi, если можете детектировать),
- протокол (h2 vs h3).
Почему это честно относится к “реальному” UX: даже документация OpenAI по streaming подчеркивает, что события эмитятся “as the Response is generated” — то есть пользовательское восприятие начинается с первого ивента.
Jitter стриминга: “ровность” выдачи
Для AI‑стрима полезны две метрики:
- inter_event_gap_ms: распределение интервалов между соседними чанками/ивентами;
- max_gap_per_stream_ms: максимальная пауза внутри одного ответа.
Если max‑gap падает заметно на HTTP/3 — это почти всегда прямой UX‑профит (меньше “подвисаний”), даже если средняя скорость та же.
Доля ретраев и обрывов стрима
Две практичные метрики, которые легко автоматизировать:
- stream_abort_rate: доля стримов, завершившихся ошибкой/разрывом (client disconnect, upstream reset, QUIC errors, timeout);
- retry_rate: доля повторных запросов “того же действия”.
Для Envoy, например, документация прямо рекомендует мониторить QUIC/UDP статистику, включая дропы UDP‑датаграмм и QUIC error codes, потому что приемный UDP‑буфер ядра может стать узким местом.
Как сравнивать корректно: избежать “ошибки одного прогона”
Три правила, которые спасают от ложных выводов:
1) сравнивайте распределения (p50/p95/p99), а не “разовый тест”;2) сравнивайте на одинаковой аудитории/маршрутах (канарейка + контроль);3) учитывайте warm/cold‑эффект и задержку на fallback.
Это особенно важно, потому что клиенты часто применяют “eyeballing” логику: пытаются HTTP/3, а параллельно “через небольшую задержку” инициируют попытку более раннего HTTP, чтобы не проигрывать в latency, если QUIC не взлетел. Так прямо описано в curl: --http3 делает попытку HTTP/3, но при проблемах/медленном установлении параллельно пробует более ранние версии с небольшой задержкой.

Архитектурные варианты внедрения HTTP/3 для AI‑API
Внедрение HTTP/3 почти всегда начинается с вопроса: где терминировать QUIC.
Терминация на edge/CDN
Самый частый путь для глобальных AI‑API:
- клиент ↔ edge: HTTP/3/QUIC,
- edge ↔ origin: HTTP/2 или HTTP/1.1 (или gRPC поверх h2).
Плюсы:
- максимальный выигрыш “на последней миле” (там, где мобильность/потери);
- меньше риск для origin‑инфры;
- проще DDoS‑профиль: UDP/443 принимает CDN.
Минусы:
- не получаете end‑to‑end QUIC‑семантику до origin (хотя чаще она и не нужна).
Прямая терминация на L7‑прокси/балансировщике
Подходит, если вы хотите контролировать всё сами или у вас “инференс‑эндпоинт” публичный без CDN.
Практика сводится к двум задачам: поднять UDP listener и корректно рекламировать HTTP/3.
- В Nginx поддержка QUIC/HTTP/3 доступна с версии 1.25.0 (включая пакеты для Linux), а включение делается через listen ... quic плюс настройка модуля ngx_http_v3_module.
- Реклама HTTP/3 обычно идет через Alt-Svc (стандарт “HTTP Alternative Services”, RFC 7838). В примере конфигурации Nginx прямо используется add_header Alt-Svc 'h3=":8443"; ma=86400'.
- Альтернативный (и все более важный) механизм — HTTPS/SVCB DNS records (RFC 9460), которые позволяют клиенту узнать параметры подключения до установления соединения.
Для Envoy в официальной документации отмечается, что downstream HTTP/3 “ready for production”, но upstream HTTP/3 — alpha, и для production‑производительности при нескольких worker threads “strongly advised” использовать BPF. Это хороший пример того, как протокол и реализация связаны: HTTP/3 может быть “правильным”, но неправильная терминация UDP на многопоточном прокси способна “съесть” весь профит.
Для HAProxy в актуальной документации (по состоянию на январь 2026) описано, что HTTP/3 реализован поверх QUIC/UDP и решает transport‑HoL; при этом отдельно сказано, что connection migration QUIC “currently haproxy does not support”. Это важно учитывать, если вы воспринимаете “мобильность” как ключевое преимущество: оно может зависеть от конкретного датаплана и режима балансировки.
End‑to‑end HTTP/3 до бэкенда inference
Это чаще всего “дорого и сложно” без явной необходимости:
- upstream стек должен быть готов;
- observability сложнее;
- риск UDP‑блокировок между сегментами;
- выигрыш часто ниже, чем при edge‑терминации.
Документация Envoy прямо описывает, что для controlled environment можно настроить explicit HTTP/3 upstream, а для интернета есть auto‑режим, который опирается на рекламу через alt-svc и умеет fallback на TCP, если QUIC не поднимается. Это хороший ориентир: end‑to‑end имеет смысл там, где вы контролируете сеть (DC), но в DC обычно и так нет “плохой последней мили”.

Пошаговая миграция, типовые грабли и решение “да/нет”
План миграции для DevOps/NetOps
Ниже — практический план, который обычно дает “безболезненный” rollout и понятные цифры.
1) Снимите baseline под AI‑стримингСначала измерения, потом протокол: TTFT p50/p95/p99, max‑gap внутри стрима, доля abort/retry. Сегментируйте минимум по регионам и ASN.
2) Проверьте UDP‑готовность периметраНужно понимать, что QUIC = UDP: вам понадобится UDP/443 и нормальная политика на stateful firewall/conntrack. QUIC — транспорт поверх UDP (RFC 9000). Если инфраструктура “любит TCP”, именно здесь всплывает большинство сюрпризов.
3) Включайте HTTP/3 как additive‑фичу с fallback на HTTP/2Делайте так, чтобы отсутствие UDP/443 у клиента не превращалось в outage. В реальности fallback — норма: Envoy прямо говорит, что UDP часто блокируют, и тогда будет fallback на HTTP/2/HTTP/1. Со стороны клиента полезно иметь “eyeballing” режим: curl --http3 именно так и устроен — с отложенной попыткой старого HTTP.
4) Рекламируйте HTTP/3 корректноЕсли вы рассчитываете на браузеры и “обычных” клиентов, им нужно сообщить про альтернативный протокол: - Alt-Svc стандартизован в RFC 7838. - Nginx показывает типовой паттерн Alt-Svc: h3=":порт"; ma=....
5) Тестируйте не только “подключается ли”, но и “как ведет себя стрим”Минимальный набор: - curl --http3 и curl --http3-only для проверки fallback‑логики. - тесты под искусственным loss/jitter (netem) и под сменой сети (Wi‑Fi → LTE).- проверка, что при “плохом UDP” TTFT не ухудшается из‑за долгого ожидания QUIC перед fallback (это частый скрытый регресс).
6) Наблюдаемость: QUIC‑ошибки, UDP‑дропы, буферыДля Envoy официально рекомендуют следить за downstream_rx_datagram_dropped (симптом маленького UDP receive buffer) и QUIC error codes. В Nginx есть прямые подсказки по оптимизациям (например, GSO) и по включению reuseport для корректной работы с несколькими воркерами.
7) Канареечный rollout и расширение по “самым больным” регионамHTTP/3 особенно эффективно “подрезает хвост” плохих соединений. Логично начинать rollout там, где больше мобильных клиентов и выше loss/jitter (часто это дальняя география и public networks). Идеология “tail matters” хорошо описана Fastly.

Типовые грабли и как их обходить
UDP DDoS и амплификацияQUIC содержит анти‑амплификационные механизмы, в том числе требования к размерам initial пакетов и адрес‑валидацию; RFC 9000 требует, чтобы клиент дополнял Initial датаграммы как минимум до 1200 байт. На стороне сервера широко применяются Retry/validation токены (в Nginx это quic_retry, “QUIC Address Validation”). Но реальность остается: QUIC‑стек — сложный, и уязвимости бывают. Примером служит разбор Cloudflare об ACK‑based DDoS‑уязвимостях в QUIC‑библиотеке и патчинге. Практический вывод: обновления QUIC‑реализаций и контроль лимитов (streams, connections, request sizes) — обязательны. (Даже у CoreDNS в январе 2026 появлялись advisories про отсутствие resource‑limiting в HTTP/3/gRPC/HTTPS серверных реализациях.)
MTU и фрагментация UDPQUIC плохо переносит IP fragmentation: в практических разборках APNIC отмечает, что QUIC пакеты “cannot be fragmented”, а минимально допустимый max packet size — 1200 байт; при проблемах с MTU соединение может не установиться и уйдет в fallback. Если у вас клиенты через VPN/туннели/нестандартные MTU, это может быть главным “почему HTTP/3 хуже”. Здесь важны PLPMTUD/DPLPMTUD и аккуратные лимиты размеров пакетов (операционные рекомендации по manageability и PMTU обсуждаются в QUIC‑опс‑документах).
Ошибочная интерпретация производительности: “соединение не прогрето” и “долго ждали QUIC”Два честных анти‑паттерна:
- сравнивать один запрос “до/после” без распределений и без одинакового трафика;
- включить HTTP/3 без “умного fallback” и получить хуже TTFT, потому что QUIC попытка “висит”, пока клиент не решит уйти на TCP.
Curl и Envoy прямо документируют, что “параллельные попытки” и тайминги fallback — часть нормальной стратегии, чтобы не проигрывать в latency при проблемах HTTP/3.
Чек‑лист решения: когда HTTP/3 для AI‑API — это “да”
Если хочется коротко и прикладно, решение почти всегда укладывается в несколько вопросов.
HTTP/3 стоит включать в приоритет, если:
- у вас есть streaming SSE/чанки и вы видите паузы/бурсты токенов (симптомы TCP‑HoL при loss);
- аудитория глобальная, много мобильных клиентов и “длинный хвост” плохих соединений;
- вы готовы держать UDP/443 как first‑class‑гражданина (защита, мониторинг, буферы, PPS‑метрики);
- вы внедряете через edge/CDN или умеете грамотно терминировать QUIC на прокси (BPF/reuseport/буферы).
Отложить (или включать точечно), если:
- p95/p99 определяются inference‑очередью, а сеть “не при чем”;
- ваш трафик в основном DC‑to‑DC / внутри одной сети;
- существенная доля клиентов сидит в сетях, где UDP режут и попытка QUIC добавит задержку до fallback (тут нужен особенно аккуратный “eyeballing” и метрики).