U noćnim izradama Firefoxa, kao i u beta verziji, podrška za HTTP/3 je uključena prema zadanim postavkama. U stabilnoj verziji, uključivanje HTTP/3 planirano je za izdanja Firefoxa 88, zakazanog za 20. travnja. U Chromeu, selektivno aktiviranje HTTP/3 započelo je u listopadu 2020. godine.
Podrška za HTTP/3 u Firefoxu temelji se na projektu neqo koji je razvila tvrtka Mozilla, koji osigurava implementaciju klijenta i poslužitelja za protokol QUIC. Kod komponenti za podršku HTTP/3 i QUIC napisan je na programskom jeziku Rust. Kako bi se upravljalo uključivanjem HTTP/3, u about:config dostupna je opcija „network.http.http3.enabled“. Eksperimentalna podrška za HTTP/3 također je već uključena u Chrome i curl, dok je poslužitelja dostupna u nginxu, kao i u obliku nginx modula i testnog servera od tvrtke Cloudflare. Za provjeru rada klijenata HTTP/3 pokrenuto je nekoliko testnih web stranica.
Protokol HTTP/3 još uvijek je u fazi skice specifikacije i nije konačno standardiziran u IETF-u. HTTP/3 definira korištenje protokola QUIC kao transporta za HTTP/2. Protokol QUIC (Quick UDP Internet Connections) razvija se od 2013. godine od strane tvrtke Google kao alternativa kombinaciji TCP+TLS za web, rješavajući probleme s vremenom uspostavljanja i dogovaranja konekcija u TCP-u i eliminirajući kašnjenja uzrokovana gubitkom paketa tijekom prijenosa podataka. QUIC je nadogradnja na UDP protokol koja podržava multiplexiranje više konekcija i osigurava metode šifriranja jednake TLS/SSL-u. Tijekom razvoja standarda u IETF-u, u protokol su unesene promjene, što je dovelo do stvaranja dvije paralelne grane, jedne za HTTP/3, a druge podržane od strane Googlea (Chrome podržava obje varijante).
Glavne značajke QUIC-a:
- Visoka sigurnost, slična TLS-u (u suštini QUIC pruža mogućnost korištenja TLS-a preko UDP-a);
- Kontrola cjelovitosti toka, koja sprječava gubitak paketa;
- Mogućnost trenutnog uspostavljanja veze (0-RTT, u otprilike 75% slučajeva podaci se mogu prenositi odmah nakon slanja paketa za uspostavljanje veze) i osiguranje minimalnih kašnjenja između slanja zahtjeva i primanja odgovora (RTT, Round Trip Time);
- Korištenje drugog broja sekvencijalnog paketa prilikom ponovnog slanja, što omogućava izbjegavanje nejasnoća prilikom određivanja primljenih paketa i eliminira vrijeme čekanja;
- Gubitak paketa utječe samo na isporuku povezane struje i ne zaustavlja isporuku podataka u paralelno prijenosima kroz trenutno uspostavljene struje;
- Sredstva za ispravak grešaka, koja minimiziraju kašnjenja uzrokovana ponovnim slanjem izgubljenih paketa. Korištenje specijalnih kodova za ispravak grešaka na razini paketa za smanjenje situacija koje zahtijevaju ponovno slanje podataka izgubljenog paketa.
- Granice kriptografskih blokova su poravnate s granicama QUIC paketa, što smanjuje utjecaj gubitaka paketa na dekodiranje sadržaja sljedećih paketa;
- Nema problema s blokiranjem TCP reda;
- Podrška za identifikator veze, koji omogućava smanjenje vremena potrebnog za ponovnu uspostavu veze za mobilne klijente;
- Mogućnost povezivanja s proširenim mehanizmima kontrole opterećenja veze;
- Korištenje tehnike predviđanja propusnosti u svakom smjeru za osiguranje optimalne intenziteta slanja paketa, sprječavajući povratak u stanje preopterećenja u kojem se primjećuje gubitak paketa;
- Primjetan porast performansi i propusnosti u usporedbi s TCP-om. Za video servise poput YouTubea, korištenje QUIC-a pokazalo je smanjenje operacija ponovnog predmemoriranja tijekom gledanja videa za 30%.
Izvor: opennet.ru
