QUIC

Модель TCP/IP (RFC 1122)
Прикладний рівень
Транспортний рівень
Мережевий рівень
Канальний рівень
Цей шаблон:
  • переглянути
  • обговорити
  • редагувати

QUIC (англ. Quick UDP Internet Connections; вимовляється як quick) — транспортний мережевий протокол, який розвивається компанією Google з 2013 року як альтернатива зв'язці TCP + TLS для вебу. Він розв'язує проблеми з великим часом встановлення та узгодження з'єднань в TCP і усуває затримки при втраті пакетів в процесі передачі даних. QUIC є надбудовою над протоколом UDP, що підтримує мультиплексування декількох з'єднань і забезпечує методи шифрування, еквівалентні TLS/SSL. Протокол вже інтегрований в серверну інфраструктуру Google й активно застосовується для обслуговування запитів клієнтів на серверах Google, з квітня 2020[1] підтримується за замовчуванням Google Chrome, у Firefox 88 підтримується з квітня 2021[2][3], з Safari 14, який постачається з iOS 14 та macOS Big Sur, підтримка присутня, але вимкнена за замовчуванням[4].

Протокол HTTP/3 реалізує надбудову для забезпечення роботи HTTP поверх протоколу QUIC. Безпосередньо протокол QUIC був доданий в браузер Chrome у 2014 році та відтоді використовується для оптимізації роботи з сервісами Google. При цьому застосований в Chrome варіант QUIC від Google в деяких деталях відрізнявся від варіанта зі специфікацій IETF, але тепер[коли?] реалізації синхронізовані.

Особливості

Основні особливості QUIC:

  • Високий рівень безпеки, аналогічний TLS (по суті QUIC надає можливість використання TLS поверх UDP);
  • Контроль за цілісністю потоку, що запобігає втраті пакетів;
  • Можливість миттєво встановити з'єднання (0-RTT, приблизно в 75% випадках дані можна передавати відразу після відправлення пакета установки з'єднання) і забезпечити мінімальні затримки між відправленням запиту й одержанням відповіді (Round Trip Time, RTT);
  • Невикористання при повторній передачі пакета того ж номера послідовності, що дозволяє уникнути двозначності при визначенні отриманих пакетів і позбутися тайм-аутів;
  • Втрата пакету впливає на доставку тільки пов'язаного з ним потоку і не зупиняє доставку даних в паралельно переданих через поточне з'єднання потоках;
  • Засоби корекції помилок, які мінімізують затримки через повторну передачу втрачених пакетів. Використання спеціальних кодів корекції помилок на рівні пакета для скорочення ситуацій, що вимагають повторної передачі даних втраченого пакета;
  • Межі криптографічних блоків вирівняні з межами пакетів QUIC, що зменшує вплив втрат пакетів на декодування вмісту наступних пакетів;
  • Відсутність проблем з блокуванням черги TCP;
  • Підтримка ідентифікатора з'єднання, що дозволяє скоротити час на установку повторного з'єднання для мобільних клієнтів;
  • Можливість підключення розширених механізмів контролю перевантаження з'єднання;
  • Використання техніки прогнозування пропускної здатності в кожному напрямку для забезпечення оптимальної інтенсивності відправки пакетів, запобігаючи скочування в стан перевантаження, при якому спостерігається втрата пакетів;
  • Помітний приріст продуктивності і пропускної здатності, в порівнянні з TCP. Для відео-сервісів, таких як YouTube, застосування QUIC показало скорочення операцій повторної буферизації при перегляді відео на 30%.

Див. також

Посилання

  • Chromium: QUIC, a multiplexed stream transport over UDP [Архівовано 4 лютого 2021 у Wayback Machine.]
  • QUIC: Design Document and Specification Rationale [Архівовано 10 листопада 2014 у Wayback Machine.], Jim Roskind's original document (2012/2013)
  • Daniel Stenberg: HTTP/3 explained [Архівовано 5 лютого 2021 у Wayback Machine.]
  • Linux Weekly News: Connecting on the QUIC [Архівовано 16 жовтня 2020 у Wayback Machine.] (2013)
  • QUIC: [Архівовано 26 жовтня 2020 у Wayback Machine.], IETF-88 TSV Area Presentation (2013-11-07)
  • Chromium Blog: Experimenting with QUIC [Архівовано 5 лютого 2021 у Wayback Machine.] (2013)
  • QUIC: next generation multiplexed transport over UDP [Архівовано 18 листопада 2020 у Wayback Machine.] (Google Developers, 2014)
  • HTTP over UDP: an Experimental Investigation of QUIC [Архівовано 25 червня 2019 у Wayback Machine.]
  • Multipath QUIC [Архівовано 26 червня 2019 у Wayback Machine.] (extension to QUIC)
  • Innovating Transport with QUIC: Design Approaches and Research Challenges [Архівовано 16 вересня 2020 у Wayback Machine.] (2017)
  • п
  • о
  • р
Глобально
Локально
Види сайтів
і серівісів
Створення
та обслуговування
Типи макетів,
сторінок, сайтів

Статичний Динамічний Фіксований • Гумовий • Динамічно-еластичний • Адаптивний

Технічне

Вебсервер (порівняння) • Браузер (порівняння) • DNS CMF CMS HTTP (відповіді заголовки) • SPDY QUIC • CGI HTML XHTML CSS PHP JavaScript DHTML Cookie DOM XML AJAX JSON Flash RSS Atom Мікроформат favicon.ico • robots.txt Sitemaps Мапа сайту .htaccess

Маркетинг
Соціум і культура
  1. Enabling QUIC in tip-of-tree. groups.google.com. Архів оригіналу за 23 серпня 2021. Процитовано 23 серпня 2021.
  2. HTTP/3 protocol | Can I use... Support tables for HTML5, CSS3, etc. caniuse.com. Архів оригіналу за 31 серпня 2021. Процитовано 23 серпня 2021.
  3. QUIC and HTTP/3 Support now in Firefox Nightly and Beta – Mozilla Hacks - the Web developer blog. Mozilla Hacks – the Web developer blog (амер.). Архів оригіналу за 18 вересня 2021. Процитовано 23 серпня 2021.
  4. Apple Developer Documentation. developer.apple.com. Архів оригіналу за 14 травня 2021. Процитовано 23 серпня 2021.