În Firefox, care va sta la baza versiunii Firefox 72, programată pentru 7 ianuarie, suportă protocolul HTTP/3. În mod implicit, HTTP/3 este dezactivat și necesită activarea opțiunii „network.http.http3.enabled” în about:config.
Suportul HTTP/3 în Firefox se bazează pe un proiect dezvoltat de compania Mozilla , care oferă o implementare a clientului și serverului pentru protocolul QUIC. Codul componentelor pentru suportul HTTP/3 și QUIC este scris în limbajul Rust.
Din software-ul client, suportul experimental HTTP/3 este deja disponibil în Chrome și curl, iar pentru servere este disponibil sub formă de pentru nginx și bazat pe biblioteca ( QUIC și HTTP/3 în limbajul Rust de către Cloudflare). Pentru a verifica funcționarea clienților HTTP/3, mai multe site-uri de test, dintre care majoritatea nu se deschid corect în Firefox (HTTP/3 este în stadiul și nu este standardizat complet).
Reamintim că HTTP/3 standardizează utilizarea protocolului QUIC ca transport pentru HTTP/2. Protocolul (Quick UDP Internet Connections) evoluează din 2013 de către compania Google ca o alternativă la combinația TCP+TLS pentru Web, rezolvând problemele cu timpi mari de stabilire și negociere a conexiunilor în TCP și eliminând întârzierile cauzate de pierderea pachetelor în timpul transferului de date. QUIC este o suprastructură peste protocolul UDP, care suportă multiplexarea mai multor conexiuni și oferă metode de criptare echivalente cu TLS/SSL.
Principalele QUIC:
- Securitate înaltă, similară cu TLS (în esență, QUIC oferă posibilitatea utilizării TLS peste UDP);
- Controlul integrității fluxului, prevenind pierderea pachetelor;
- Posibilitatea de a stabili instantaneu o conexiune (0-RTT, în aproximativ 75% din cazuri, datele pot fi transmise imediat după trimiterea pachetului de stabilire a conexiunii) și de a asigura întârzieri minime între trimiterea cererii și primirea răspunsului (RTT, Round Trip Time);
- Neutilizarea la retransmiterea pachetului cu același număr de secvență, ceea ce permite evitarea ambiguităților în determinarea pachetelor primite și eliminarea timeout-urilor;
- Pierderea unui pachet afectează livrarea doar a fluxului asociat și nu oprește livrarea datelor în fluxurile transmise în paralel prin conexiunea curentă;
- Mijloace de corectare a erorilor, care minimizează întârzierile cauzate de retransmisia pachetelor pierdute. Utilizarea unor coduri speciale de corectare a erorilor la nivel de pachet pentru a reduce situațiile care necesită retransmiterea datelor din pachetul pierdut.
- Limitele blocurilor criptografice sunt aliniate cu limitele pachetelor QUIC, ceea ce reduce impactul pierderilor de pachete asupra decodificării conținutului pachetelor următoare;
- Lipsa problemelor cu blocarea cozii TCP;
- Suport pentru identificatorul de conexiune, care permite reducerea timpului de reinstaurare a conexiunii pentru clienți mobile;
- Posibilitatea de a activa mecanisme extinse de control al supraîncărcării conexiunii;
- Utilizarea tehnicii de previzionare a capacității de transmisie în fiecare direcție pentru a asigura o intensitate optimă a trimiterii pachetelor, prevenind astfel ajungerea într-o stare de supraîncărcare, în care se observă pierderi de pachete;
- Un salt semnificativ și lățime de bandă, comparativ cu TCP. Pentru serviciile video, cum ar fi YouTube, utilizarea QUIC a arătat o reducere a operațiunilor de rebuffering în timpul vizionării video cu 30%.
Sursa: opennet.ro
