Tvrtka Mozilla najavila je plan za postupno uključivanje protokola HTTP/3 i QUIC u izdanju Firefox 88, koje je zakazano za 19. travnja (izvorno, izdanje se očekivalo 20. travnja, ali, sudeći prema rasporedu, pomaknut je za jedan dan). U početku će podrška za HTTP/3 biti omogućena samo malom postotku korisnika, a ako ne dođe do nepredviđenih problema, bit će dostupna svim korisnicima do kraja svibnja. U noćnim izgradnjama i beta verzijama HTTP/3 je uključen prema zadanim postavkama krajem ožujka.
Podsjećamo da je implementacija HTTP/3 u Firefoxu temeljena na projektu neqo koji razvija tvrtka Mozilla, a koji pruža klijentsku implementaciju i poslužitelja za protokol QUIC. Kod komponenti za podršku HTTP/3 i QUIC pisan je na jeziku Rust. Za upravljanje omogućavanjem HTTP/3 u about:config predviđena je opcija „network.http.http3.enabled“. U klijentskom softveru, eksperimentalna podrška za HTTP/3 također je dodana u Chrome i curl, a za poslužitelja dostupna je u nginx-u, kao i u obliku nginx modula i testnog servera od tvrtke Cloudflare. S obzirom na strane web stranice, podrška za HTTP/3 već je osigurana na serverima Googlea i Facebooka.
Protokol HTTP/3 još uvijek je u fazi nacrta specifikacije i nije konačno standardiziran u IETF-u. Za korištenje HTTP/3 potrebna je podrška na strani klijenta i servera za istu verziju nacrtnog standarda QUIC i HTTP/3, koja se navodi u zaglavlju Alt-Svc (Firefox podržava nacrte specifikacije od 27 do 32).
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, koja rješava probleme s duljim vremenom uspostave i dogovora veza u TCP-u te uklanja kašnjenja zbog gubitka paketa tijekom prijenosa podataka. QUIC predstavlja nadogradnju na protokol UDP, koja podržava multipleksiranje više veza i osigurava metode šifriranja, koje su ekvivalentne TLS/SSL-u. Tijekom razvoja standarda od strane IETF-a, u protokol su unesene izmjene, što je dovelo do postojanja dviju paralelno postojećih grana, jedne za HTTP/3 i druge koju podržava Google (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 trenutne uspostave veze (0-RTT, podaci se u približno 75% slučajeva mogu prenositi odmah nakon slanja paketa za uspostavu 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;
- Značajan porast performansi i propusnosti u odnosu na TCP. Za videusluge poput YouTubea, primjena QUIC-a pokazala je smanjenje ponovnog buferiranja prilikom gledanja videa za 30%.
Izvor: opennet.ru
