Oczekuje się, że Firefox uruchomi obsługę protokołu HTTP/3 pod koniec maja.

Mozilla ogłosiła zamiar rozpoczęcia stopniowego wdrażania protokołów HTTP/3 i QUIC wraz z wydaniem przeglądarki Firefox 88 zaplanowanej na 19 kwietnia (pierwotnie planowano, że premiera nastąpi 20 kwietnia, ale sądząc po harmonogramie, zostanie ona przesunięta o jeden dzień). Obsługa protokołu HTTP/3 zostanie początkowo włączona tylko dla niewielkiego odsetka użytkowników i, o ile nie pojawią się nieoczekiwane problemy, zostanie udostępniona wszystkim do końca maja. W kompilacjach nocnych i wersjach beta protokół HTTP/3 został domyślnie włączony pod koniec marca.

Przypomnijmy, że implementacja HTTP/3 w przeglądarce Firefox opiera się na projekcie neqo opracowanym przez Mozillę, który zapewnia implementację klienta i serwera dla protokołu QUIC. Kod komponentu obsługujący HTTP/3 i QUIC jest napisany w języku Rust. Aby kontrolować, czy protokół HTTP/3 jest włączony, about:config udostępnia opcję „network.http.http3.enabled”. Z oprogramowania klienckiego eksperymentalna obsługa HTTP/3 została dodana także do Chrome i curl, a dla serwerów jest dostępna w nginx, a także w postaci modułu nginx i serwera testowego od Cloudflare. Po stronie internetowej obsługa protokołu HTTP/3 jest już zapewniona na serwerach Google i Facebooka.

Protokół HTTP/3 znajduje się wciąż na etapie projektu specyfikacji i nie został jeszcze w pełni ustandaryzowany przez IETF. HTTP/3 wymaga obsługi przez klienta i serwer tej samej wersji projektu standardu QUIC i protokołu HTTP/3, który jest określony w nagłówku Alt-Svc (Firefox obsługuje wersje robocze specyfikacji od 27 do 32).

HTTP/3 definiuje użycie protokołu QUIC jako środka transportu dla HTTP/2. Protokół QUIC (Quick UDP Internet Connections) jest rozwijany przez Google od 2013 roku jako alternatywa dla kombinacji TCP+TLS w Internecie, rozwiązując problemy związane z długimi czasami konfiguracji i negocjacji połączeń w protokole TCP oraz eliminując opóźnienia w przypadku utraty pakietów podczas transmisji danych przenosić. QUIC jest rozszerzeniem protokołu UDP, które obsługuje multipleksowanie wielu połączeń i zapewnia metody szyfrowania równoważne TLS/SSL. Podczas opracowywania standardu IETF wprowadzono zmiany w protokole, co doprowadziło do powstania dwóch równoległych gałęzi, jednej dla HTTP/3 i drugiej obsługiwanej przez Google (Chrome obsługuje obie opcje).

Kluczowe cechy QUIC:

  • Wysokie bezpieczeństwo podobne do TLS (zasadniczo QUIC zapewnia możliwość korzystania z TLS przez UDP);
  • Kontrola integralności przepływu, zapobiegająca utracie pakietów;
  • Możliwość błyskawicznego nawiązania połączenia (0-RTT, w około 75% przypadków dane mogą zostać przesłane natychmiast po wysłaniu pakietu konfigurującego połączenie) i zapewnienia minimalnych opóźnień pomiędzy wysłaniem żądania a otrzymaniem odpowiedzi (RTT, Round Trip Time);
  • Używanie innego numeru sekwencyjnego podczas retransmisji pakietu, co pozwala uniknąć niejednoznaczności w identyfikacji odebranych pakietów i pozbyć się przekroczeń limitu czasu;
  • Utrata pakietu wpływa jedynie na dostarczanie powiązanego z nim strumienia i nie wstrzymuje dostarczania danych w równoległych strumieniach przesyłanych bieżącym połączeniem;
  • Funkcje korekcji błędów minimalizujące opóźnienia spowodowane retransmisją utraconych pakietów. Zastosowanie specjalnych kodów korekcji błędów na poziomie pakietu w celu ograniczenia sytuacji wymagających retransmisji utraconych danych pakietowych.
  • Granice bloków kryptograficznych są wyrównane z granicami pakietów QUIC, co zmniejsza wpływ utraty pakietów na dekodowanie zawartości kolejnych pakietów;
  • Brak problemów z blokowaniem kolejek TCP;
  • Obsługa identyfikatora połączenia, co skraca czas potrzebny na nawiązanie ponownego połączenia dla klientów mobilnych;
  • Możliwość podłączenia zaawansowanych mechanizmów kontroli przeciążenia łączy;
  • Wykorzystuje techniki prognozowania przepustowości w poszczególnych kierunkach, aby zapewnić, że pakiety są wysyłane z optymalną szybkością, zapobiegając ich przeciążeniu i powodując utratę pakietów;
  • Znaczący wzrost wydajności i przepustowości w porównaniu do protokołu TCP. Wykazano, że w przypadku usług wideo, takich jak YouTube, QUIC zmniejsza liczbę operacji ponownego buforowania podczas oglądania filmów o 30%.
  • Źródło: opennet.ru

Dodaj komentarz