Kristofers Solo 76109356c0 feat: implement raw TCP benchmark protocol
- protocol: 8-byte LE u64 request -> N-byte deterministic response
- bench-server: TCP server with per-connection handlers
- bench-runner: benchmark loop with warmup, NDJSON output
- Integration tested: server and client communicate correctly
2026-01-25 16:37:05 +02:00
2026-01-25 15:57:47 +02:00
2026-01-25 15:57:47 +02:00

tls-pq-bench

Reproducible benchmarking harness for comparing TLS 1.3 key exchange configurations:

  • Classical: X25519
  • Hybrid PQ: X25519MLKEM768 (via rustls + aws_lc_rs)

Primary metrics:

  • Handshake latency
  • TTLB (Time-to-Last-Byte)

Secondary metrics:

  • CPU cycles (perf)
  • Memory behavior (optional: Valgrind/Massif)
  • Binary size (optional)

This repo is intended as the implementation for the empirical part of the bachelor thesis (following the course thesis methodology).

Non-goals

  • Not a general-purpose TLS load tester
  • Not a cryptographic audit tool
  • Not a middlebox compatibility test suite (can be added later)

Quick start (local dev)

  1. Install Rust stable and Linux tooling:
    • perf, tcpdump (optional), jq, python3
  2. Build:
    • cargo build --release

Reproducibility notes

All experiments should record:

  • commit hash
  • rustc version
  • CPU model and governor
  • kernel version
  • rustls and aws-lc-rs versions
  • exact CLI parameters and network profile
Description
No description provided
Readme 288 KiB
Languages
Rust 97%
Just 2.6%
Shell 0.4%