Mozilla har meddelt, at de planlægger at begynde en trinvis aktivering af HTTP/3- og QUIC-protokollerne i Firefox 88, der er planlagt til den 19. april (oprindeligt forventedes udgivelsen den 20. april, men ifølge tidsplanen er den blevet flyttet en dag). I starten vil HTTP/3-understøttelsen kun være aktiveret for en lille procentdel af brugerne, og hvis der ikke opstår uforudsete problemer, vil den blive udrullet til alle inden slutningen af maj. I natbyggene og beta-versionerne blev HTTP/3 aktiveret som standard i slutningen af marts.
Vi minder om, at implementeringen af HTTP/3 i Firefox er baseret på Mozillas udviklingsprojekt neqo, som giver en klientimplementering og server for QUIC-protokollen. Koden til komponenterne, der understøtter HTTP/3 og QUIC, er skrevet i Rust. For at styre aktiveringen af HTTP/3 i about:config er der en indstilling kaldet «network.http.http3.enabled». Den eksperimentelle understøttelse af HTTP/3 er også blevet tilføjet i Chrome og curl, samt for servere tilgængelig i nginx, samt i form af et nginx-modul og en testserver fra Cloudflare. På serverne understøttes HTTP/3 allerede af Google og Facebook.
HTTP/3 befinder sig stadig på stadiet af et udkastsspecifikation og er endnu ikke standardiseret i IETF. For at bruge HTTP/3 kræves det, at både klienten og serveren har støtte for den samme version af udkaststandarden QUIC og HTTP/3, som angives i Alt-Svc-headeren (Firefox understøtter udkastsspecifikationer fra 27 til 32).
HTTP/3 definerer brugen af QUIC-protokollen som transportmiddel for HTTP/2. QUIC (Quick UDP Internet Connections) er siden 2013 blevet udviklet af Google som et alternativ til TCP+TLS-kombinationen for web, der løser problemer med lang oprettelsestid og aftale af forbindelser i TCP og eliminerer forsinkelser ved tab af pakker under dataoverførsel. QUIC udgør et lag oven på UDP-protokollen, som understøtter multiplexing af flere forbindelser og leverer krypteringsmetoder, der svarer til TLS/SSL. Under udviklingen af standarden i IETF er der foretaget ændringer i protokollen, hvilket har ført til at der eksisterer to parallelle versioner, en for HTTP/3 og en anden støttet af Google (Chrome understøtter begge versioner).
Hovedfunktionerne ved QUIC:
- Høj sikkerhed svarende til TLS (faktisk giver QUIC mulighed for brug af TLS oven på UDP);
- Overvågning af strømmens integritet, der forhindrer tab af pakker;
- Mulighed for straks at etablere en forbindelse (0-RTT, i cirka 75% af tilfældene kan data overføres umiddelbart efter, at forbindelsespakken er sendt) og sikre minimale forsinkelser mellem anmodningens afsendelse og modtagelsen af svar (RTT, Round Trip Time);
- Brug af et andet sekvensnummer ved genoverførsel af pakken, hvilket gør det muligt at undgå tvetydighed ved bestemmelse af modtagne pakker og eliminere timeouts;
- Pakketab påvirker kun leveringen af den tilknyttede strøm og stopper ikke dataoverførslen i parallelt overførte strømme gennem den aktuelle forbindelse;
- Fejlkorrektionsmidler, der minimerer forsinkelser på grund af genoverførsel af tabte pakker. Brug af specialiserede fejlkorrektionskoder på pakkeniveau for at reducere situationer, der kræver genoverførsel af data fra en tabt pakke.
- Grænserne for kryptografiske blokke er justeret med grænserne for QUIC-pakker, hvilket reducerer tabspakkernes indvirkning på afkodningen af indholdet i efterfølgende pakker;
- Ingen problemer med TCP-køblokering;
- Understøttelse af forbindelsesidentifikatoren, der reducerer tiden til at etablere en genforbindelse for mobile klienter;
- Mulighed for at tilslutte udvidede mekanismer til overvågning af forbindelsesoverbelastning;
- Brug af kapacitetsprognoseteknikker i hver retning for at sikre optimal intensitet i pakkeafsendelsen, hvilket forhindrer at glide ind i en overbelastningssituation, hvor pakkemister forekommer;
- Bemærkelsesværdige præstations- og kapacitetsforøgelser sammenlignet med TCP. For videotjenester såsom YouTube har anvendelsen af QUIC vist sig at reducere genbufferingsoperationer med 30% under videovisning.
Kilde: opennet.ru
