Firma Microsoft udostępniła kod źródłowy MsQuic, protokołu sieciowego używanego przez HTTP3

Logo Microsoft

Deweloperzy Microsoft ogłosiło wydanie kodu źródłowego biblioteki MsQuic z implementacją protokołu sieciowego QUIC. Biblioteka jest wieloplatformowa i może być używany nie tylko w systemie Windows, ale także w systemie Linux przy użyciu Schannel lub OpenSSL dla TLS 1.3Ponadto trwają prace nad rozszerzeniem obsługi innych platform w przyszłości.

Biblioteka jest oparta na kodzie sterownika msquic.sys dostępne w jądrze systemu Windows 10 (wewnętrzna wersja zapoznawcza) aby zagwarantować działanie protokołów HTTP i SMB przez QUIC. Dołączanie kodu służy do implementacji protokołu HTTP / 3 w wewnętrznym stosie systemu Windows i na platformie .NET Core.

Rozwój biblioteki MsQuic będzie odbywał się w całości w serwisie GitHub przy użyciu publicznego przeglądu, żądań ściągnięcia i problemów z GitHubem. Przygotowano infrastrukturę, która weryfikuje każde żądanie zatwierdzenia i ściągnięcia zestawu ponad 4000 testów. Po ustabilizowaniu środowiska deweloperskiego planowane jest przyjęcie zmian od zewnętrznych deweloperów.

O MsQuic

msquic może służyć do tworzenia serwerów i klientów, ale nie wszystkie funkcje zdefiniowane w specyfikacji IETF są obecnie dostępne. Na przykład nie ma obsługi 0-RTT, migracji klienta, wykrywania MTU ścieżki ani preferowanej kontroli adresów serwera.

Wśród zaimplementowanych funkcji podświetlona jest optymalizacja pod kątem maksymalnej wydajności i minimalnego opóźnienia, wsparcie dla I/ O asynchroniczny, RSS (Otrzymuj skalowanie boczne), możliwość łączą strumienie wejściowe i wyjściowe UDP. Implementacja MsQuic została przetestowana pod kątem zgodności z eksperymentalnymi gałęziami przeglądarki Chrome i Edge.

Plik możliwość nawiązania połączenia z natychmiastowyme (0-RTT, w około 75% przypadków dane mogą być przesłane natychmiast po wysłaniu pakietu konfiguracji połączenia) i gwarantują minimalne opóźnienia między wysłaniem żądania a otrzymaniem odpowiedzi (RTT, Round trip time).

Oprócz, posiada narzędzia do korekcji błędów które minimalizują opóźnienia spowodowane retransmisją utraconych pakietów.

Zastosowanie specjalnych kodów korekcji błędów na poziomie pakietów w celu ograniczenia sytuacji, które wymagają retransmisji utraconych danych pakietowych lubnauka techniki przewidywania przepustowości w każdym kierunku w celu zapewnienia optymalnej intensywności dostarczania paczek, uniemożliwiając mu osiągnięcie stanu przeciążenia, w którym obserwuje się utratę pakietów.

Z innych cech Klawisz QUIC:

  • Wysoki poziom bezpieczeństwa, podobny do TLS (w rzeczywistości QUIC zapewnia możliwość korzystania z TLS 1.3 przez UDP).
  • Kontrola integralności przepływu, która zapobiega utracie pakietów.
  • Nieużywanie tego samego numeru sekwencji podczas retransmisji pakietu, co pozwala uniknąć niejednoznaczności w określaniu odebranych pakietów i eliminuje przekroczenia czasu.
  • Utrata pakietu wpływa na dostarczenie tylko związanego z nim przepływu i nie zatrzymuje dostarczania danych w równoległych przepływach przesyłanych przez bieżące połączenie.
  • Granice bloków kryptograficznych są wyrównane z granicami pakietów QUIC, zmniejszając wpływ utraty pakietów na dekodowanie zawartości kolejnych pakietów.
  • Nie ma problemów z blokowaniem kolejki TCP.
  • Obsługa identyfikatorów połączeń, co skraca czas potrzebny na ponowne nawiązanie połączenia dla klientów mobilnych.
  • Posiada możliwość łączenia zaawansowanych mechanizmów kontrolujących przeciążenie łącza.
  • Oferuje niezwykłą wydajność i wzrost wydajności w porównaniu z TCP. W przypadku usług wideo, takich jak YouTube, QUIC wykazał 30% redukcję operacji ponownego buforowania podczas oglądania filmów.

W końcu dla tych, którzy chcą dowiedzieć się więcej na ten temat Jeśli chodzi o MsQuic lub chcesz rzucić okiem na jego kod źródłowy, powinieneś wiedzieć, że kod jest napisany w C, jest wieloplatformowy, ogólnego przeznaczenia, jest rozpowszechniany na licencji MIT, a wydany kod jest hostowany na GitHub.

źródło: https://techcommunity.microsoft.com


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: AB Internet Networks 2008 SL
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.