QUIC

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

QUIC (англ. Quick UDP Internet Connections) — транспортний мережевий протокол, який розвивається компанією Google з 2013 року як альтернатива зв'язці TCP + TLS для веб. Він вирішує проблеми з великим часом установки і узгодження з'єднань в TCP і усуває затримки при втраті пакетів в процесі передачі даних. QUIC є надбудовою над протоколом UDP, що підтримує мультиплексування декількох з'єднань і забезпечує методи шифрування, еквівалентні TLS/SSL. Протокол вже інтегрований в серверну інфраструктуру Google, входить до складу Chrome, запланований для включення в Firefox і активно застосовується для обслуговування запитів клієнтів на серверах Google.

Протокол 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%.

Дивись також[ред. | ред. код]

Посилання[ред. | ред. код]