У нічних збірках Firefox з'явилася підтримка HTTP/3

В нічні зборки Firefox, які ляжуть в основу випуску Firefox 72, запланованого на 7 січня додано підтримка протоколу HTTP/3. За замовчуванням HTTP/3 вимкнено та вимагає активації опції «network.http.http3.enabled» в about:config.

Підтримка HTTP/3 у Firefox заснована на проекті Mozilla, що розвивається. neqo, що надає реалізацію клієнта та сервера для протоколу QUIC. Код компонентів підтримки HTTP/3 і QUIC написаний мовою Rust.
З клієнтського програмного забезпечення експериментальна підтримка HTTP/3 також вже додано у Chrome та curl, а для серверів доступна у формі модуля для nginx та тестового сервера на базі бібліотеки пиріг із заварним кремом (реалізація QUIC та HTTP/3 на мові Rust від компанії Cloudflare). Для перевірки роботи клієнтів HTTP/3 запущено кілька тестових сайтів, більша частина з яких поки що коректно не відкривається в Firefox (HTTP/3 знаходиться на стадії чорнової специфікації та остаточно не стандартизований).

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

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

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

Джерело: opennet.ru

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