Сети и протоколы
QUIC внутри: тест с множественным выбором
Шесть вопросов через весь юнит. Каждый отражает реальное решение — когда выигрывает QUIC, когда TCP и что эта конструкция даёт и чего стоит, — а не определение для зубрёжки.
Убедись, что связываешь части: зачем QUIC живёт в user space, что на самом деле дают независимость stream’ов и Connection ID, где экономят рукопожатия 1-RTT и 0-RTT и где 0-RTT кусается, и почему тот же протокол, что выигрывает на мобильном, проигрывает на быстром LAN.
Два сервиса отдают HTTP. Один — межконтинентальный API (мелкие payload'ы, RTT 120 мс, ~1% мобильных потерь); другой стримит статику на 1 Gbps клиентам в LAN. На каждом можно запустить HTTP/3 (QUIC) или HTTP/2 (TCP). Какая раскладка верна и почему?
Сервис на HTTP/2-over-TCP и сервис на HTTP/3-over-QUIC мультиплексируют по три параллельных ответа. При 0.5% потерь и RTT 100 мс теряется один пакет с ответом B. Что происходит с ответами A и C и почему?
Пользователь выходит из офиса; телефон переключается с WiFi на LTE посреди скачивания. Соединение QUIC выживает, а TCP бы умер. Что переносит соединение через смену IP и что сервер делает, прежде чем довериться новому адресу?
Команда включает 0-RTT-resumption, чтобы срезать round-trip на переподключениях. Через неделю финансы сообщают об изредка дублирующихся переводах средств. В чём механизм и каков корректный фикс?
После перехода на HTTP/3 сетевая команда жалуется, что их пакетные дашборды (счётчики запросов по flow, гистограммы RTT, детект медленных клиентов) погасли, и они больше не могут вбросить RST, чтобы убить плохой flow на middlebox. Как это читать?
Коллега утверждает, что QUIC строго лучше TCP, потому что «он работает в user space, значит быстрее». Где ошибка в рассуждении и что на самом деле даёт размещение в user space?
Юнит сводится к одному взвешенному решению: QUIC меняет CPU на задержку и устойчивость. Размещение в user space даёт эволюционируемость (подключаемый CC, отсутствие ossification) ценой 15–30% CPU на байт; независимость stream’ов убивает head-of-line-блокировку при потерях; Connection ID переживают миграцию сети с валидацией пути и защитой 3x anti-amplification; объединённое рукопожатие 1-RTT экономит round-trip, а 0-RTT — ещё один ценой replay (только идемпотентное, 425 Too Early); почти полное шифрование блокирует RST-инъекции и сниффинг, но ослепляет пакетный мониторинг. Бери QUIC на путях, ограниченных round-trip’ами, потерями и мобильностью, — оставляй TCP там, где быстрый чистый линк делает CPU узким местом.