Performance analysis of modern QUIC implementations

Loading...
Thumbnail Image

URL

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