Název:
Implementace protokolu QUIC pro .NET
Překlad názvu:
QUIC protocol implementation for .NET
Autoři:
Zikmund, Radek ; Ježek, Pavel (vedoucí práce) ; Dingle, Adam Thomas (oponent) Typ dokumentu: Diplomové práce
Rok:
2021
Jazyk:
eng
Abstrakt: [eng][cze] QUIC is a general-purpose transport layer network protocol proposed as the replace- ment for TCP and TLS in HTTP/3. QUIC is based on UDP and provides always- encrypted connections able to transmit multiple streams of data in parallel. Compared to TCP, QUIC promises lower latency, better congestion control flexibility, and a solution to head-of-line blocking occurring in multiplexed HTTP/2 connections. The latest release of .NET - .NET 5 - has shipped with experimental support for QUIC based on the MsQuic C library. However, when implementing new features in stan- dard .NET libraries, purely .NET implementations are preferable to adding dependencies on native libraries because .NET implementations offer better maintainability and - in some cases - even better performance. This thesis explores the viability of a purely C# QUIC implementation as a future replacement for .NET 6 or later release. This thesis's result is a fork of the official .NET runtime repository with partial C# implementation of the QUIC protocol. We implemented a subset of the QUIC speci- fication, which is sufficient for a basic performance evaluation. As part of the thesis, we have benchmarked the throughput and latency of our and the MsQuic-based QUIC implementation and compared them to TCP's performance in two environments: LAN and...QUIC je general-purpose síťový protokol transportní vrstvy, který byl navržen jako náhrada TCP a TLS pro HTTP/3. QUIC je postaven nad UDP a poskytuje vždy zašif- rované spojení schopné paraleního přenosu vícero proudů dat. V porovnání s TCP, QUIC slibuje nižší dobu odezvy, větší flexibilitu congestion control a řešení head-of-line blocking problému, který se vyskytuje v multiplexovaných HTTP/2 spojeních. Nejnovější verze .NET - .NET 5 - byla vydána s experimentální podporou pro QUIC, která je založena na knihovně MsQuic napsané v jazyce C. Nicméně, při imple- mentování nových feature ve standartních knihovnách v .NET jsou preferovány vlastní implementace přímo v .NET místo přidávání závislostí na nativních knihovnách, protože implementace v .NET jsou snáze udržovatelné a v některých případech dokonce i více výkonné. Tato práce zkoumá proveditelnost implementace QUIC protokolu v jazyce C# jakožto budoucí náhrady stávajícího řešení pro vydání v .NET 6 nebo pozdější verzi. Výsledkem této práce je fork oficiálního repozitáře .NET runtime s částečnou imple- mentací QUIC protokolu v jazyce C#. Tato práce implementovala podmnožinu QUIC specifikace dostačující pro základní zhodnocení výkonu. Jako součást práce jsme provedli měření propustnosti a odezvy naší implementace a předchozí implementace založené na knihovně...
Klíčová slova:
QUIC|.NET|síťový protokol; QUIC|.NET|network protokol