This project aims at providing a performance comparison between TCP
and the newer QUIC
protocol of the Transport layer.
Make sure to have Go installed and environment variables setup correctly. Check by calling
go version
from the command line, which should output something likego version go1.12 windows/amd64
depending on your OS and Go version. If the commandgo
is not found, check your installation or install it (if you haven't yet) from here.
First and foremost you'll have to fetch all needed dependencies of the project. Simply run go get
from the command line.
Before obtaining a runnable executable file you'll have to run go build qtm.go
to build the program.
A main.exe
file will be created right next to the qtm.go
file in the root of the repository.
qtm
is the name of the tool, which is short for "QUIC / TCP measurement".
Try executing it from the command line: qtm.exe
or qtm
on the command line!
You can start the command line measurement tool in either server or client mode.
To start the tool in server mode append the flag --server
on startup. If you omit the --server
flag the tool is started in client mode by default.
qtm
qtm --server
Tool syntax:
qtm <flag 1> <flag 2> ... <flag n>
The flags can be in the format
-server
or--server
There are two connection types available:
- TCP
- QUIC
Set the connection type either if you configure nothing (The used connection type is QUIC) or if you provide the --type
flag with the connection type. Example: qtm --type=TCP
.
In order to measure the throughput, you can either use:
--bytes
(Example:qtm --bytes=10000000
) to send the set amount of bytes--duration
with--buffer-size
where you'll send for the set duration in chunks of the set buffer-size. (Example:qtm --duration=5s --buffer-size=1024
)
Start the server with:
qtm --server --type=TCP
Start the client with:
qtm --type=TCP --bytes=100000000
... and see what happens!