QUIC protocol implementation for .NET
Thesis title in Czech: | Implementace protokolu QUIC pro .NET |
---|---|
Thesis title in English: | QUIC protocol implementation for .NET |
Key words: | QUIC|.NET|síťový protokol |
English key words: | QUIC|.NET|network protokol |
Academic year of topic announcement: | 2019/2020 |
Thesis type: | diploma thesis |
Thesis language: | angličtina |
Department: | Department of Distributed and Dependable Systems (32-KDSS) |
Supervisor: | Mgr. Pavel Ježek, Ph.D. |
Author: | Mgr. Radek Zikmund - assigned and confirmed by the Study Dept. |
Date of registration: | 06.04.2020 |
Date of assignment: | 06.04.2020 |
Confirmed by Study dept. on: | 29.04.2020 |
Date and time of defence: | 04.02.2021 09:00 |
Date of electronic submission: | 05.01.2021 |
Date of submission of printed version: | 05.01.2021 |
Date of proceeded defence: | 04.02.2021 |
Opponents: | Adam Dingle, M.Sc. |
Guidelines |
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. |
References |
* 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) |