Natte- og betaversioner af Firefox inkluderer understøttelse af HTTP/3-protokollen som standard. I den stabile gren er inkluderingen af HTTP/3 planlagt til udgivelsen af Firefox 88, planlagt til den 20. april. Chrome begyndte selektivt at aktivere HTTP/3 i oktober 2020.
Firefox' HTTP/3-understøttelse er baseret på Mozillas neqo-projekt, som leverer en klientimplementering og server til QUIC-protokollen. Koden til de komponenter, der understøtter HTTP/3 og QUIC, er skrevet i Rust. For at aktivere HTTP/3 er indstillingen "network.http.http3.enabled" tilgængelig i about:config. Eksperimentel HTTP/3-understøttelse er også blevet tilføjet til Chrome og curl til klientsoftware, og servere Den er tilgængelig i Nginx, såvel som et Nginx-modul og testserver fra Cloudflare. Adskillige testsider er blevet lanceret for at teste HTTP/3-klientfunktionalitet.
HTTP/3-protokollen er stadig på udkast til specifikationsstadiet og er endnu ikke fuldt standardiseret af IETF. HTTP/3 definerer brugen af QUIC-protokollen som en transport for HTTP/2. QUIC (Quick UDP Internet Connections)-protokollen er blevet udviklet af Google siden 2013 som et alternativ til TCP+TLS-kombinationen til nettet, der løser problemer med lange opsætnings- og forhandlingstider for forbindelser i TCP og eliminerer forsinkelser, når pakker går tabt under data. overførsel. QUIC er en udvidelse af UDP-protokollen, der understøtter multipleksing af flere forbindelser og giver krypteringsmetoder svarende til TLS/SSL. Under udviklingen af IETF-standarden blev der foretaget ændringer i protokollen, hvilket førte til fremkomsten af to parallelle grene, en til HTTP/3, og den anden understøttet af Google (Chrome understøtter begge muligheder).
Nøglefunktioner ved QUIC:
- Høj sikkerhed svarende til TLS (i det væsentlige giver QUIC mulighed for at bruge TLS over UDP);
- Flowintegritetskontrol, forhindrer pakketab;
- Evnen til øjeblikkeligt at etablere en forbindelse (0-RTT, i ca. 75 % af tilfældene kan data transmitteres umiddelbart efter afsendelse af forbindelsesopsætningspakken) og give minimale forsinkelser mellem afsendelse af en anmodning og modtagelse af et svar (RTT, Round Trip Time);
- Brug af et andet sekvensnummer ved gentransmission af en pakke, hvilket undgår tvetydighed i at identificere modtagne pakker og slipper af med timeouts;
- Tab af en pakke påvirker kun leveringen af den strøm, der er knyttet til den, og stopper ikke leveringen af data i parallelle strømme, der transmitteres gennem den aktuelle forbindelse;
- Fejlretningsfunktioner, der minimerer forsinkelser på grund af gentransmission af tabte pakker. Brug af specielle fejlkorrektionskoder på pakkeniveau for at reducere situationer, der kræver gentransmission af mistede pakkedata.
- Kryptografiske blokgrænser er tilpasset QUIC-pakkegrænser, hvilket reducerer virkningen af pakketab på afkodning af indholdet af efterfølgende pakker;
- Ingen problemer med blokering af TCP-køer;
- Understøttelse af forbindelsesidentifikator, som reducerer den tid, det tager at etablere en genforbindelse for mobile klienter;
- Mulighed for tilslutning af avancerede mekanismer til kontrol af forbindelsesoverbelastning;
- Bruger per-direction-gennemløbsprognoseteknikker for at sikre, at pakker sendes med optimale hastigheder, hvilket forhindrer dem i at blive overfyldte og forårsage pakketab;
- En mærkbar stigning i ydeevne og gennemløb sammenlignet med TCP. For videotjenester som f.eks. YouTube har QUIC vist sig at reducere tilbagesendelsesoperationer, når man ser videoer med 30 %.
Kilde: opennet.ru
