Увімкнення підтримки HTTP/3 у Firefox намічено на кінець травня

Компанія Mozilla повідомила про намір розпочати поетапне включення протоколів HTTP/3 і QUIC у випуску Firefox 88, наміченому на 19 квітня (спочатку реліз очікувався 20 квітня, але, судячи з графіка, зрушений на один день). Спочатку підтримка HTTP/3 буде активована лише для невеликого відсотка користувачів і, якщо не виникне непередбачених проблем, буде доведена до кінця травня. У нічних збірках та бета-версіях HTTP/3 був включений за замовчуванням наприкінці березня.

Нагадаємо, що реалізація HTTP/3 в Firefox заснована на проекті, що розвивається компанією Mozilla neqo, що надає реалізацію клієнта і сервера для протоколу QUIC. Код компонентів підтримки HTTP/3 і QUIC написаний мовою Rust. Для керування включенням HTTP/3 в about:config передбачено опцію "network.http.http3.enabled". З клієнтського програмного забезпечення експериментальна підтримка HTTP/3 також додана в Chrome і curl, а для серверів доступна в nginx, а також у формі nginx-модуля та тестового сервера від компанії Cloudflare. На стороні сайтів підтримка HTTP/3 вже забезпечена на серверах Google та Facebook.

Протокол HTTP/3 поки що знаходиться на стадії чорнової специфікації і остаточно не стандартизований в IETF. Для використання HTTP/3 потрібна підтримка на стороні клієнта та сервера однієї версії чорнового стандарту QUIC і HTTP/3, яка вказується в заголовку Alt-Svc (Firefox підтримує чернетки специфікації з 27 по 32).

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

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

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

Додати коментар або відгук