QUIC protocol implementation for .NET
Název práce v češtině: | Implementace protokolu QUIC pro .NET |
---|---|
Název v anglickém jazyce: | QUIC protocol implementation for .NET |
Klíčová slova: | QUIC|.NET|síťový protokol |
Klíčová slova anglicky: | QUIC|.NET|network protokol |
Akademický rok vypsání: | 2019/2020 |
Typ práce: | diplomová práce |
Jazyk práce: | angličtina |
Ústav: | Katedra distribuovaných a spolehlivých systémů (32-KDSS) |
Vedoucí / školitel: | Mgr. Pavel Ježek, Ph.D. |
Řešitel: | Mgr. Radek Zikmund - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 06.04.2020 |
Datum zadání: | 06.04.2020 |
Datum potvrzení stud. oddělením: | 29.04.2020 |
Datum a čas obhajoby: | 04.02.2021 09:00 |
Datum odevzdání elektronické podoby: | 05.01.2021 |
Datum odevzdání tištěné podoby: | 05.01.2021 |
Datum proběhlé obhajoby: | 04.02.2021 |
Oponenti: | Adam Dingle, M.Sc. |
Zásady pro vypracování |
QUIC is a general-purpose transport layer network protocol proposed as the replacement for TCP and TLS in HTTP/3. QUIC combines UDP and TLS and provides abstraction of always-encrypted multiplexed streams of data. 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 goal of this thesis is to provide a partial C# implementation of the QUIC protocol for .NET. The implementation should replace the current experimental QUIC support based on the msquic native library. Thesis implementation should target improving portability, maintainability, and simplifying experiments with QUICs loss detection and congestion control algorithms. While TLS is an integral part of the QUIC protocol, the goal of this thesis is not to reimplement TLS but to choose an appropriate existing implementation and incorporate it into the solution. The resulting pilot implementation of the protocol should support at least reliably sending data through a controlled testing environment between a demo client and server applications on at least one platform supported by .NET Core. However, the implementation should be extensible to cover the entire QUIC specification. The student should closely cooperate with the Microsoft development team to ensure eventual mergeability into the master .NET Core branch. |
Seznam odborné literatury |
* QUIC RFCs:
+ https://datatracker.ietf.org/doc/draft-ietf-quic-transport/ + https://datatracker.ietf.org/doc/draft-ietf-quic-tls/ + https://datatracker.ietf.org/doc/draft-ietf-quic-recovery/ * Books: + Learning HTTP/2: a practical guide for beginners, Stephen Ludin-Javier Garza, O'Reilly, 2017 (ISBN 978-1-4919-6244-2) |