Performance analysis of modern QUIC implementations

Loading...
Thumbnail Image
Journal Title
Journal ISSN
Volume Title
Sähkötekniikan korkeakoulu | Master's thesis
Date
2021-05-17
Department
Major/Subject
Communications Engineering
Mcode
ELEC3029
Degree programme
CCIS - Master’s Programme in Computer, Communication and Information Sciences (TS2013)
Language
en
Pages
70
Series
Abstract
Originally entering development in 2012 by a Google engineer, QUIC is a secure general-purpose transport layer protocol currently developed by the IETF, finalized and awaiting the release of its first non-draft RFC. While QUIC is deployed on top of UDP, it is connection-oriented, provides reliable packet delivery, and congestion control. QUIC also integrates TLS for additional security. QUIC data transfer is based on data streams, transporting packets consisting of various types of predefined frames. This structure provides multiple advantages over TCP, such as stream multiplexing and no head-of-line blocking. In addition to background information, and an overview of the QUIC protocol, this thesis includes a performance analysis on three QUIC implementations, compared to a TCP implementation. The testing was done with a custom Python-based test framework developed for this thesis, using Mininet as a network emulator. The test scenarios consist of client applications downloading files of varying sizes from a server in increasingly poor network conditions. The results show that even in scenarios that don’t fully utilize QUIC’s more advantageous features, QUIC can match TCP in connection duration in certain circumstances, and even surpass it.

QUIC, jonka kehitystyö alkoi vuonna 2012 Googlen toimesta, on turvattu kuljetuskerroksen tiedonsiirtoprotokolla. QUIC:n kehitystyö on siirtynyt IETF:lle, ja protokolla odottaa tällä hetkellä ensimmäistä virallista RFC versiotaan. Vaikka QUIC on toteutettu UDP protokollan päälle, on se silti yhteysorientoitunut, luotettava, sekä tarjoaa ruuhkanhallintaa. QUIC integroi myös TLS protokollan saavuttaakseen korkeamman tietoturvatason. QUIC:n tiedonsiirto perustuu pakettivirtoihin, ja paketteihin, jotka koostuvat erilaisista ennalta määritetyistä kehyksistä. Tämä rakenne tarjoaa useita etuja TCP:hen nähden; useita tietovirtoja voidaan multipleksata yhteen yhteyteen, eikä pakettien hukkuminen aiheuta QUIC:ssä kaikkien muiden pakettien käsittelyn pysähtymistä. Taustatietojen, sekä QUIC protokollan yleiskatsauksen jälkeen tässä diplomityössä esitetään kolmen QUIC toteutuksen, sekä vastaavan TCP toteutuksen suorituskykyanalyysi. Analyysin vaatimat testit on toteutettu diplomityötä varten kehitetyssä Pythoniin pohjautuvassa testiympäristössä, hyödyntäen Mininet verkkoemulaattoria. Testiskenaarioissa asiakasohjelma lataa eri kokoisia tiedostoja palvelimelta muuttuvassa verkkoympäristössä. Tulosten perusteella voidaan todeta, että vaikka testiskenaariot eivät hyödynnä kaikkia QUIC:n hyödyllisimpiä ominaisuuksia, QUIC saavuttaa silti TCP:tä vastaavia, sekä jopa parempia tuloksia tietyissä tilanteissa.
Description
Supervisor
Sarolahti, Pasi
Thesis advisor
Sarolahti, Pasi
Keywords
AIOHTTP, aioquic, LSQUIC, ngtcp2, QUIC, performance
Other note
Citation