QUIC

QUIC (англ. Quick UDP Internet Connections) — транспортний мережевий протокол, який розвивається компанією 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 % випадках дані можна передавати відразу після відправлення пакета установки з'єднання) і забезпечити мінімальні затримки між відправленням запиту й одержанням відповіді (RTT, Round Trip Time);
  • Невикористання при повторній передачі пакета того ж номера послідовності, що дозволяє уникнути двозначності при визначенні отриманих пакетів і позбутися таймаутів;
  • Втрата пакету впливає на доставку тільки пов'язаного з ним потоку і не зупиняє доставку даних в паралельно переданих через поточне з'єднання потоках;
  • Засоби корекції помилок, які мінімізують затримки через повторну передачу втрачених пакетів. Використання спеціальних кодів корекції помилок на рівні пакета для скорочення ситуацій, що вимагають повторної передачі даних втраченого пакета;
  • Межі криптографічних блоків вирівняні з межами пакетів QUIC, що зменшує вплив втрат пакетів на декодування вмісту наступних пакетів;
  • Відсутність проблем з блокуванням черги TCP;
  • Підтримка ідентифікатора з'єднання, що дозволяє скоротити час на установку повторного з'єднання для мобільних клієнтів;
  • Можливість підключення розширених механізмів контролю перевантаження з'єднання;
  • Використання техніки прогнозування пропускної здатності в кожному напрямку для забезпечення оптимальної інтенсивності відправки пакетів, запобігаючи скочування в стан перевантаження, при якому спостерігається втрата пакетів;
  • Помітний приріст продуктивності і пропускної здатності, в порівнянні з TCP. Для відео-сервісів, таких як YouTube, застосування QUIC показало скорочення операцій повторної буферизації при перегляді відео на 30 %.

Див. також

Посилання

  1. Enabling QUIC in tip-of-tree. groups.google.com. Процитовано 23 серпня 2021.
  2. HTTP/3 protocol | Can I use... Support tables for HTML5, CSS3, etc. caniuse.com. Процитовано 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 (амер.). Процитовано 23 серпня 2021.
  4. Apple Developer Documentation. developer.apple.com. Процитовано 23 серпня 2021.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.