dc.contributor.advisor | Ježek, Pavel | |
dc.creator | Zikmund, Radek | |
dc.date.accessioned | 2021-02-25T09:08:35Z | |
dc.date.available | 2021-02-25T09:08:35Z | |
dc.date.issued | 2021 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/124659 | |
dc.description.abstract | 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ě... | cs_CZ |
dc.description.abstract | 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... | en_US |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | QUIC|.NET|network protokol | en_US |
dc.subject | QUIC|.NET|síťový protokol | cs_CZ |
dc.title | QUIC protocol implementation for .NET | en_US |
dc.type | diplomová práce | cs_CZ |
dcterms.created | 2021 | |
dcterms.dateAccepted | 2021-02-04 | |
dc.description.department | Department of Distributed and Dependable Systems | en_US |
dc.description.department | Katedra distribuovaných a spolehlivých systémů | cs_CZ |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.identifier.repId | 224048 | |
dc.title.translated | Implementace protokolu QUIC pro .NET | cs_CZ |
dc.contributor.referee | Dingle, Adam Thomas | |
thesis.degree.name | Mgr. | |
thesis.degree.level | navazující magisterské | cs_CZ |
thesis.degree.discipline | Software and Data Engineering | en_US |
thesis.degree.discipline | Softwarové a datové inženýrství | cs_CZ |
thesis.degree.program | Informatika | cs_CZ |
thesis.degree.program | Computer Science | en_US |
uk.thesis.type | diplomová práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra distribuovaných a spolehlivých systémů | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Distributed and Dependable Systems | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Softwarové a datové inženýrství | cs_CZ |
uk.degree-discipline.en | Software and Data Engineering | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Výborně | cs_CZ |
thesis.grade.en | Excellent | en_US |
uk.abstract.cs | 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ě... | cs_CZ |
uk.abstract.en | 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... | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra distribuovaných a spolehlivých systémů | cs_CZ |
thesis.grade.code | 1 | |
uk.publication-place | Praha | cs_CZ |
uk.thesis.defenceStatus | O | |