Microsoft heeft de implementatie van het QUIC-protocol dat in HTTP/3 wordt gebruikt, opengesteld

Microsoft kondigde het over het openen van de bibliotheekcode msquic met de implementatie van het netwerkprotocol QUIC. De code is geschreven in C en gedistribueerd door onder MIT-licentie. De bibliotheek is platformonafhankelijk en kan niet alleen op Windows, maar ook op Linux worden gebruikt s kanaal of OpenSSL voor TLS 1.3. In de toekomst is het de bedoeling om andere platforms te ondersteunen.

De bibliotheek is gebaseerd op de stuurprogrammacode msquic.sys die wordt geleverd in de Windows 10-kernel (Insider Preview) om de HTTP- en SMB bovenop QUIC. De code wordt ook gebruikt om HTTP/3 te implementeren in de interne Windows-stack en in .NET Core. De ontwikkeling van de MsQuic-bibliotheek zal volledig op GitHub worden uitgevoerd met behulp van openbare peer review, pull-requests en GitHub Issues. Er is een infrastructuur voorbereid die elke commit- en pull-request controleert in een reeks van meer dan 4000 tests. Na het stabiliseren van de ontwikkelomgeving is het de bedoeling om wijzigingen van externe ontwikkelaars te accepteren.

MsQuic kan al worden gebruikt om servers en clients te maken, maar niet alle functionaliteit die in de IETF-specificatie is gedefinieerd, is momenteel beschikbaar. Er is bijvoorbeeld geen ondersteuning voor 0-RTT, clientmigratie, Path MTU Discovery of Server Preferred Address-beheer. Onder de geïmplementeerde functies wordt opgemerkt dat er sprake is van optimalisatie om maximale doorvoer en minimale vertragingen te bereiken, ondersteuning voor asynchrone invoer/uitvoer, RSS (Receive Side Scaling) en de mogelijkheid om invoer- en uitvoer-UDP-streams te combineren. De MsQuic-implementatie is getest op compatibiliteit met experimentele versies van de Chrome- en Edge-browsers.

Bedenk dat HTTP/3 het gebruik van het QUIC-protocol als transportmiddel voor HTTP/2 standaardiseert. Protocol QUIC (Quick UDP Internet Connections) is sinds 2013 door Google ontwikkeld als alternatief voor de TCP+TLS-combinatie voor het web, waardoor problemen met lange installatie- en onderhandelingstijden voor verbindingen in TCP worden opgelost en vertragingen worden geëlimineerd wanneer pakketten verloren gaan tijdens de gegevensoverdracht. QUIC is een uitbreiding van het UDP-protocol dat multiplexing van meerdere verbindingen ondersteunt en coderingsmethoden biedt die gelijkwaardig zijn aan TLS/SSL.

De belangrijkste kenmerken SNEL:

  • Hoge beveiliging vergelijkbaar met TLS (in wezen biedt QUIC de mogelijkheid om TLS 1.3 via UDP te gebruiken);
  • Streamintegriteitscontrole om pakketverlies te voorkomen;
  • De mogelijkheid om direct een verbinding tot stand te brengen (0-RTT, in ongeveer 75% van de gevallen kunnen gegevens direct worden verzonden na het verzenden van een verbindingssetuppakket) en zorgen voor minimale vertragingen tussen het verzenden van een verzoek en het ontvangen van een antwoord (RTT, Round Trip Time) ;
    Microsoft heeft de implementatie van het QUIC-protocol dat in HTTP/3 wordt gebruikt, opengesteld

  • Gebruik niet hetzelfde volgnummer bij het opnieuw verzenden van een pakket, waardoor u dubbelzinnigheid bij het bepalen van de ontvangen pakketten kunt voorkomen en time-outs kunt verwijderen;
  • Pakketverlies heeft alleen invloed op de bezorging van de bijbehorende stream en stopt niet de bezorging van gegevens in streams die parallel worden verzonden via de huidige verbinding;
  • Foutcorrectietools die vertragingen minimaliseren als gevolg van het opnieuw verzenden van verloren pakketten. Gebruik van speciale foutcorrectiecodes op pakketniveau om situaties te verminderen waarbij verloren pakketgegevens opnieuw moeten worden verzonden.
  • Cryptografische blokgrenzen zijn uitgelijnd met QUIC-pakketgrenzen, waardoor de impact van pakketverliezen op het decoderen van de inhoud van volgende pakketten wordt verminderd;
  • Geen problemen met het blokkeren van de TCP-wachtrij;
  • Verbindings-ID-ondersteuning om de herverbindingstijd voor mobiele clients te verkorten;
  • Mogelijkheid om geavanceerde mechanismen aan te sluiten voor controle over overbelasting van verbindingen;
  • Het gebruik van bandbreedtevoorspellingstechnieken in elke richting om te zorgen voor optimale verzendsnelheden van pakketten, waardoor wordt voorkomen dat er congestie ontstaat waarbij pakketten verloren gaan;
  • Waarneembaar groei prestaties en doorvoer in vergelijking met TCP. Voor videoservices zoals YouTube is aangetoond dat QUIC het opnieuw bufferen van video's met 30% vermindert.

Bron: opennet.ru

Voeg een reactie