All Projects → rbruenig → qperf

rbruenig / qperf

Licence: GPL-3.0 License
qperf is a performance measurement tool for QUIC similar to iperf

Programming Languages

c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to qperf

sflow-collector
A Python class for parsing sFlow packets.
Stars: ✭ 16 (-48.39%)
Mutual labels:  network-analysis
signnet
R package for signed networks
Stars: ✭ 19 (-38.71%)
Mutual labels:  network-analysis
xquic
XQUIC Library released by Alibaba is a cross-platform implementation of QUIC and HTTP/3 protocol.
Stars: ✭ 943 (+2941.94%)
Mutual labels:  quic
aera-workshop
This workshop introduces participants to the Learning Analytics (LA), and provides a brief overview of LA methodologies, literature, applications, and ethical issues as they relate to STEM education.
Stars: ✭ 14 (-54.84%)
Mutual labels:  network-analysis
network-pipeline
Network traffic data pipeline for real-time predictions and building datasets for deep neural networks
Stars: ✭ 36 (+16.13%)
Mutual labels:  network-analysis
gost
GO Simple Tunnel - a simple tunnel written in golang
Stars: ✭ 8,395 (+26980.65%)
Mutual labels:  quic
Causal-Deconvolution-of-Networks
Causal Deconvolution of Networks by Algorithmic Generative Models
Stars: ✭ 25 (-19.35%)
Mutual labels:  network-analysis
SocMap
Social Mapping Framework for Twitter
Stars: ✭ 16 (-48.39%)
Mutual labels:  network-analysis
QuicPlayer
media player using QUIC protocol
Stars: ✭ 17 (-45.16%)
Mutual labels:  quic
flownetwork
A python package for flow network analysis
Stars: ✭ 22 (-29.03%)
Mutual labels:  network-analysis
opensnitch
OpenSnitch is a GNU/Linux application firewall
Stars: ✭ 398 (+1183.87%)
Mutual labels:  network-analysis
kubernetes-iperf3
Simple wrapper around iperf3 to measure network bandwidth from all nodes of a Kubernetes cluster
Stars: ✭ 80 (+158.06%)
Mutual labels:  network-analysis
arpwitch
A modern arpwatch replacement with JSON formatted outputs and easy options to exec commands when network changes are observed.
Stars: ✭ 20 (-35.48%)
Mutual labels:  network-analysis
infomap ecology package
Package with functions to handle network data and run Infomap, inspired by ecological networks
Stars: ✭ 14 (-54.84%)
Mutual labels:  network-analysis
LNTopology
A tool to analyze the topology of Bitcoin's Lightning Network
Stars: ✭ 19 (-38.71%)
Mutual labels:  network-analysis
awesome-networking
A curated inexhaustive list of network utilities
Stars: ✭ 36 (+16.13%)
Mutual labels:  network-analysis
CANopen-monitor
An NCurses-based TUI application for tracking activity over the CAN bus and decoding messages with provided EDS/OD files.
Stars: ✭ 15 (-51.61%)
Mutual labels:  network-analysis
dynetx
Dynamic Network Analysis library
Stars: ✭ 75 (+141.94%)
Mutual labels:  network-analysis
go-libp2p-quic-transport
An implementation of a libp2p transport using QUIC
Stars: ✭ 102 (+229.03%)
Mutual labels:  quic
Zeek-Network-Security-Monitor
A Zeek Network Security Monitor tutorial that will cover the basics of creating a Zeek instance on your network in addition to all of the necessary hardware and setup and finally provide some examples of how you can use the power of Zeek to have absolute control over your network.
Stars: ✭ 38 (+22.58%)
Mutual labels:  network-analysis

qperf

A performance measurement tool for QUIC similar to iperf. Uses https://github.com/h2o/quicly

basic usage and example output

Usage: ./qperf [options]

Options:
  -c target             run as client and connect to target server
  --cc [reno,cubic]     congestion control algorithm to use (default reno)
  -e                    measure time for connection establishment and first byte only
  -g                    enable UDP generic segmentation offload
  --iw initial-window   initial window to use (default 10)
  -l log-file           file to log tls secrets
  -p                    port to listen on/connect to (default 18080)
  -s                    run as server
  -t time (s)           run for X seconds (default 10s)
  -h                    print this help

server

./qperf -s
starting server with pid 5624 on port 18080
got new connection
request received, sending data
connection 0 second 0 send window: 1112923 packets sent: 364792 packets lost: 373
connection 0 second 1 send window: 1238055 packets sent: 377515 packets lost: 123
connection 0 second 2 send window: 583352 packets sent: 355482 packets lost: 862
connection 0 second 3 send window: 275563 packets sent: 367538 packets lost: 607
connection 0 second 4 send window: 1100261 packets sent: 366005 packets lost: 20
connection 0 second 5 send window: 633010 packets sent: 356021 packets lost: 857
connection 0 second 6 send window: 1266610 packets sent: 367866 packets lost: 0
connection 0 second 7 send window: 1668530 packets sent: 360649 packets lost: 0
connection 0 second 8 send window: 1994930 packets sent: 364087 packets lost: 0
connection 0 second 9 send window: 1779683 packets sent: 374804 packets lost: 80
connection 0 total packets sent: 3654759 total packets lost: 2922

Note: The server looks for a TLS certificate and key in the current working dir named "server.crt" and "server.key" respectively. You can use a self signed certificate; the client doesn't validate it.

client

./qperf -c 127.0.0.1
running client with host=127.0.0.1 and runtime=10s
connection establishment time: 6ms
time to first byte: 7ms
second 0: 3.144 gbit/s (422030372 bytes received)
second 1: 3.444 gbit/s (462189378 bytes received)
second 2: 3.184 gbit/s (427337822 bytes received)
second 3: 3.333 gbit/s (447304096 bytes received)
second 4: 2.996 gbit/s (402100242 bytes received)
second 5: 3.274 gbit/s (439462608 bytes received)
second 6: 3.083 gbit/s (413746021 bytes received)
second 7: 3.336 gbit/s (447686682 bytes received)
second 8: 3.034 gbit/s (407235597 bytes received)
second 9: 3.02 gbit/s (405314061 bytes received)

how to build

git clone --recurse-submodules [email protected]:rbruenig/qperf.git
mkdir build-qperf
cd build-qperf
cmake ../qperf
make
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].