From 00be25af6f7697a77e11cd49c9d17b940962c6c6 Mon Sep 17 00:00:00 2001
From: jmuecke <48099698+jmuecke@users.noreply.github.com>
Date: Mon, 9 Sep 2024 12:42:35 +0200
Subject: [PATCH] Add ccds setup
---
05-instant-ack-ccds/Makefile | 127 +
05-instant-ack-ccds/README.md | 84 +
05-instant-ack-ccds/data/interim/.gitkeep | 0
05-instant-ack-ccds/data/raw/.gitkeep | 0
05-instant-ack-ccds/data/raw/Makefile | 174 +
.../aioquic_quic-go/handshake/client/keys.log | 4 +
.../aioquic_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6157 bytes
.../handshake/client/keys.log | 4 +
.../go-x-net_quic-go/handshake/sim/pcap.csv | 13 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 5791 bytes
.../haproxy_quic-go/handshake/client/keys.log | 4 +
.../haproxy_quic-go/handshake/sim/pcap.csv | 19 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6978 bytes
.../kwik_quic-go/handshake/client/keys.log | 4 +
.../kwik_quic-go/handshake/sim/pcap.csv | 21 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 12748 bytes
.../lsquic_quic-go/handshake/client/keys.log | 4 +
.../lsquic_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6295 bytes
.../msquic_quic-go/handshake/client/keys.log | 4 +
.../msquic_quic-go/handshake/sim/pcap.csv | 19 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 10760 bytes
.../mvfst_quic-go/handshake/client/keys.log | 4 +
.../mvfst_quic-go/handshake/sim/pcap.csv | 17 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6983 bytes
.../neqo_quic-go/handshake/client/keys.log | 4 +
.../neqo_quic-go/handshake/sim/pcap.csv | 24 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 11795 bytes
.../nginx_quic-go/handshake/client/keys.log | 4 +
.../nginx_quic-go/handshake/sim/pcap.csv | 14 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6152 bytes
.../ngtcp2_quic-go/handshake/client/keys.log | 4 +
.../ngtcp2_quic-go/handshake/sim/pcap.csv | 14 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 7672 bytes
.../handshake/client/keys.log | 4 +
.../picoquic_quic-go/handshake/sim/pcap.csv | 26 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 13272 bytes
.../quic-go_quic-go/handshake/client/keys.log | 4 +
.../quic-go_quic-go/handshake/sim/pcap.csv | 13 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6064 bytes
.../quiche_quic-go/handshake/client/keys.log | 4 +
.../quiche_quic-go/handshake/sim/pcap.csv | 11 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 5699 bytes
.../quinn_quic-go/handshake/client/keys.log | 4 +
.../quinn_quic-go/handshake/sim/pcap.csv | 21 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6514 bytes
.../handshake/client/keys.log | 4 +
.../s2n-quic_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 7677 bytes
.../xquic_quic-go/handshake/client/keys.log | 4 +
.../xquic_quic-go/handshake/sim/pcap.csv | 22 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 8196 bytes
.../aioquic_quic-go/handshake/client/keys.log | 4 +
.../aioquic_quic-go/handshake/sim/pcap.csv | 17 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6222 bytes
.../handshake/client/keys.log | 4 +
.../go-x-net_quic-go/handshake/sim/pcap.csv | 0
.../handshake/sim/trace_node_left.pcap | 0
.../haproxy_quic-go/handshake/client/keys.log | 4 +
.../haproxy_quic-go/handshake/sim/pcap.csv | 0
.../handshake/sim/trace_node_left.pcap | 0
.../kwik_quic-go/handshake/client/keys.log | 4 +
.../kwik_quic-go/handshake/sim/pcap.csv | 11 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 8313 bytes
.../lsquic_quic-go/handshake/client/keys.log | 4 +
.../lsquic_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6330 bytes
.../msquic_quic-go/handshake/client/keys.log | 4 +
.../msquic_quic-go/handshake/sim/pcap.csv | 22 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 11268 bytes
.../mvfst_quic-go/handshake/client/keys.log | 4 +
.../mvfst_quic-go/handshake/sim/pcap.csv | 17 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6980 bytes
.../nginx_quic-go/handshake/client/keys.log | 4 +
.../nginx_quic-go/handshake/sim/pcap.csv | 15 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6198 bytes
.../ngtcp2_quic-go/handshake/client/keys.log | 4 +
.../ngtcp2_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 7796 bytes
.../handshake/client/keys.log | 4 +
.../picoquic_quic-go/handshake/sim/pcap.csv | 26 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 13272 bytes
.../quic-go_quic-go/handshake/client/keys.log | 4 +
.../quic-go_quic-go/handshake/sim/pcap.csv | 13 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6065 bytes
.../quiche_quic-go/handshake/client/keys.log | 4 +
.../quiche_quic-go/handshake/sim/pcap.csv | 11 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 5699 bytes
.../quinn_quic-go/handshake/client/keys.log | 4 +
.../quinn_quic-go/handshake/sim/pcap.csv | 21 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6514 bytes
.../handshake/client/keys.log | 4 +
.../s2n-quic_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 7677 bytes
.../xquic_quic-go/handshake/client/keys.log | 4 +
.../xquic_quic-go/handshake/sim/pcap.csv | 37 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 10559 bytes
.../aioquic_quic-go/handshake/client/keys.log | 4 +
.../aioquic_quic-go/handshake/sim/pcap.csv | 17 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6222 bytes
.../handshake/client/keys.log | 4 +
.../go-x-net_quic-go/handshake/sim/pcap.csv | 13 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 5842 bytes
.../haproxy_quic-go/handshake/client/keys.log | 4 +
.../haproxy_quic-go/handshake/sim/pcap.csv | 19 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6978 bytes
.../kwik_quic-go/handshake/client/keys.log | 4 +
.../kwik_quic-go/handshake/sim/pcap.csv | 12 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 8359 bytes
.../lsquic_quic-go/handshake/client/keys.log | 4 +
.../lsquic_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6330 bytes
.../msquic_quic-go/handshake/client/keys.log | 4 +
.../msquic_quic-go/handshake/sim/pcap.csv | 19 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 10760 bytes
.../mvfst_quic-go/handshake/client/keys.log | 4 +
.../mvfst_quic-go/handshake/sim/pcap.csv | 0
.../handshake/sim/trace_node_left.pcap | 0
.../neqo_quic-go/handshake/client/keys.log | 4 +
.../neqo_quic-go/handshake/sim/pcap.csv | 24 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 11795 bytes
.../nginx_quic-go/handshake/client/keys.log | 4 +
.../nginx_quic-go/handshake/sim/pcap.csv | 15 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6198 bytes
.../ngtcp2_quic-go/handshake/client/keys.log | 4 +
.../ngtcp2_quic-go/handshake/sim/pcap.csv | 16 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 7796 bytes
.../handshake/client/keys.log | 4 +
.../picoquic_quic-go/handshake/sim/pcap.csv | 27 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 13343 bytes
.../quic-go_quic-go/handshake/client/keys.log | 4 +
.../quic-go_quic-go/handshake/sim/pcap.csv | 13 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 6064 bytes
.../quiche_quic-go/handshake/client/keys.log | 4 +
.../quiche_quic-go/handshake/sim/pcap.csv | 11 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 5699 bytes
.../quinn_quic-go/handshake/client/keys.log | 4 +
.../quinn_quic-go/handshake/sim/pcap.csv | 0
.../handshake/sim/trace_node_left.pcap | 0
.../handshake/client/keys.log | 4 +
.../s2n-quic_quic-go/handshake/sim/pcap.csv | 15 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 7588 bytes
.../xquic_quic-go/handshake/client/keys.log | 4 +
.../xquic_quic-go/handshake/sim/pcap.csv | 36 +
.../handshake/sim/trace_node_left.pcap | Bin 0 -> 10467 bytes
05-instant-ack-ccds/instant_ack/__init__.py | 22 +
05-instant-ack-ccds/instant_ack/config.py | 38 +
.../instant_ack/data/constants.py | 22 +
.../instant_ack/data/convenience.py | 231 +
.../instant_ack/data/preprocess_qlog.py | 535 +
.../instant_ack/data/preprocess_qscanner.py | 204 +
.../instant_ack/data/validation.py | 52 +
05-instant-ack-ccds/instant_ack/dataset.py | 332 +
.../instant_ack/visualization/helpers.py | 56 +
.../instant_ack/visualization/plot.py | 496 +
05-instant-ack-ccds/notebooks/.gitkeep | 0
.../01-pto-evolution.html | 7726 ++++++++++++++
.../01-pto-evolution.ipynb | 240 +
.../02-theoretical-pto-improvement.html | 7744 ++++++++++++++
.../02-theoretical-pto-improvement.ipynb | 288 +
.../notebooks/02-interop-runner/01-ttfb.html | 8972 ++++++++++++++++
.../notebooks/02-interop-runner/01-ttfb.ipynb | 1746 ++++
.../02-interop-runner/02-RTT-samples.html | 7916 ++++++++++++++
.../02-interop-runner/02-RTT-samples.ipynb | 501 +
.../03-first-PTO-improvement.html | 8497 +++++++++++++++
.../03-first-PTO-improvement.ipynb | 1300 +++
.../04-second-rtt-vs-first-rtt.html | 7787 ++++++++++++++
.../04-second-rtt-vs-first-rtt.ipynb | 368 +
.../03-toplist/01-first-payload.html | 9261 +++++++++++++++++
.../03-toplist/01-first-payload.ipynb | 2086 ++++
.../01-iack-timing-cloudflare.html | 8266 +++++++++++++++
.../01-iack-timing-cloudflare.ipynb | 885 ++
.../05-all-interop-servers/01-ack_delay.html | 7898 ++++++++++++++
.../05-all-interop-servers/01-ack_delay.ipynb | 457 +
05-instant-ack-ccds/pyproject.toml | 32 +
05-instant-ack-ccds/reports/.gitkeep | 0
05-instant-ack-ccds/reports/figures/.gitkeep | 0
05-instant-ack-ccds/requirements.txt | 156 +
05-instant-ack-ccds/setup.cfg | 4 +
05-instant-ack-ccds/tools/add-pto-info | Bin 0 -> 2951575 bytes
.../tools/tshark-extract-quic-fields.sh | 24 +
README.md | 15 +-
183 files changed, 85497 insertions(+), 6 deletions(-)
create mode 100644 05-instant-ack-ccds/Makefile
create mode 100644 05-instant-ack-ccds/README.md
create mode 100644 05-instant-ack-ccds/data/interim/.gitkeep
create mode 100644 05-instant-ack-ccds/data/raw/.gitkeep
create mode 100644 05-instant-ack-ccds/data/raw/Makefile
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/go-x-net_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/go-x-net_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/go-x-net_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/neqo_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/neqo_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/neqo_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/nginx_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/nginx_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/nginx_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/ngtcp2_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/ngtcp2_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/ngtcp2_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/picoquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/picoquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/picoquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quic-go_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quic-go_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quic-go_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quiche_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quiche_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quiche_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quinn_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quinn_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/quinn_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/s2n-quic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/s2n-quic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/s2n-quic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/xquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/xquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/xquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/aioquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/aioquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/aioquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/go-x-net_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/go-x-net_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/go-x-net_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/haproxy_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/haproxy_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/haproxy_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/kwik_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/kwik_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/kwik_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/lsquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/lsquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/lsquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/msquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/msquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/msquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/mvfst_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/mvfst_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/mvfst_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/nginx_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/nginx_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/nginx_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/ngtcp2_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/ngtcp2_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/ngtcp2_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/picoquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/picoquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/picoquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quic-go_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quic-go_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quic-go_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quiche_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quiche_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quiche_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quinn_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quinn_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/quinn_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/s2n-quic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/s2n-quic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/s2n-quic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/xquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/xquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-15T01:36/xquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/aioquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/aioquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/aioquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/go-x-net_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/go-x-net_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/go-x-net_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/haproxy_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/haproxy_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/haproxy_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/kwik_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/kwik_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/kwik_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/lsquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/lsquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/lsquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/msquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/msquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/msquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/mvfst_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/mvfst_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/mvfst_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/neqo_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/neqo_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/neqo_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/nginx_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/nginx_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/nginx_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/ngtcp2_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/ngtcp2_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/ngtcp2_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/picoquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/picoquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/picoquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quic-go_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quic-go_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quic-go_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quiche_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quiche_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quiche_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quinn_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quinn_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/quinn_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/s2n-quic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/s2n-quic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/s2n-quic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/xquic_quic-go/handshake/client/keys.log
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/xquic_quic-go/handshake/sim/pcap.csv
create mode 100644 05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-16T01:42/xquic_quic-go/handshake/sim/trace_node_left.pcap
create mode 100644 05-instant-ack-ccds/instant_ack/__init__.py
create mode 100644 05-instant-ack-ccds/instant_ack/config.py
create mode 100644 05-instant-ack-ccds/instant_ack/data/constants.py
create mode 100644 05-instant-ack-ccds/instant_ack/data/convenience.py
create mode 100644 05-instant-ack-ccds/instant_ack/data/preprocess_qlog.py
create mode 100644 05-instant-ack-ccds/instant_ack/data/preprocess_qscanner.py
create mode 100644 05-instant-ack-ccds/instant_ack/data/validation.py
create mode 100644 05-instant-ack-ccds/instant_ack/dataset.py
create mode 100644 05-instant-ack-ccds/instant_ack/visualization/helpers.py
create mode 100644 05-instant-ack-ccds/instant_ack/visualization/plot.py
create mode 100644 05-instant-ack-ccds/notebooks/.gitkeep
create mode 100644 05-instant-ack-ccds/notebooks/01-numerical_analysis/01-pto-evolution.html
create mode 100644 05-instant-ack-ccds/notebooks/01-numerical_analysis/01-pto-evolution.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/01-numerical_analysis/02-theoretical-pto-improvement.html
create mode 100644 05-instant-ack-ccds/notebooks/01-numerical_analysis/02-theoretical-pto-improvement.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/01-ttfb.html
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/01-ttfb.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/02-RTT-samples.html
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/02-RTT-samples.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/03-first-PTO-improvement.html
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/03-first-PTO-improvement.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/04-second-rtt-vs-first-rtt.html
create mode 100644 05-instant-ack-ccds/notebooks/02-interop-runner/04-second-rtt-vs-first-rtt.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/03-toplist/01-first-payload.html
create mode 100644 05-instant-ack-ccds/notebooks/03-toplist/01-first-payload.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/04-cloudflare/01-iack-timing-cloudflare.html
create mode 100644 05-instant-ack-ccds/notebooks/04-cloudflare/01-iack-timing-cloudflare.ipynb
create mode 100644 05-instant-ack-ccds/notebooks/05-all-interop-servers/01-ack_delay.html
create mode 100644 05-instant-ack-ccds/notebooks/05-all-interop-servers/01-ack_delay.ipynb
create mode 100644 05-instant-ack-ccds/pyproject.toml
create mode 100644 05-instant-ack-ccds/reports/.gitkeep
create mode 100644 05-instant-ack-ccds/reports/figures/.gitkeep
create mode 100644 05-instant-ack-ccds/requirements.txt
create mode 100644 05-instant-ack-ccds/setup.cfg
create mode 100755 05-instant-ack-ccds/tools/add-pto-info
create mode 100755 05-instant-ack-ccds/tools/tshark-extract-quic-fields.sh
diff --git a/05-instant-ack-ccds/Makefile b/05-instant-ack-ccds/Makefile
new file mode 100644
index 0000000..737c67e
--- /dev/null
+++ b/05-instant-ack-ccds/Makefile
@@ -0,0 +1,127 @@
+#################################################################################
+# GLOBALS #
+#################################################################################
+
+PROJECT_NAME = instant-ack
+PYTHON_VERSION = 3.10
+PYTHON_INTERPRETER = python
+
+#################################################################################
+# COMMANDS #
+#################################################################################
+
+
+## Install Python Dependencies
+.PHONY: requirements
+requirements:
+ $(PYTHON_INTERPRETER) -m pip install -U pip
+ $(PYTHON_INTERPRETER) -m pip install -r requirements.txt
+
+## Delete all compiled Python files
+.PHONY: clean
+clean:
+ find . -type f -name "*.py[co]" -delete
+ find . -type d -name "__pycache__" -delete
+
+## Lint using flake8 and black (use `make format` to do formatting)
+.PHONY: lint
+lint:
+ flake8 instant_ack
+ isort --check --diff --profile black instant_ack
+ black --check --config pyproject.toml instant_ack
+
+## Format source code with black
+.PHONY: format
+format:
+ black --config pyproject.toml instant_ack
+
+## Convert notebooks to html
+notebooks=$(shell ls notebooks/0*/*.ipynb)
+notebooks_html:=$(subst .ipynb,.html,$(notebooks))
+
+%.html: %.ipynb
+ jupyter nbconvert $(NBCONVERT_PARAMS) --to html $<
+
+nbconvert: $(notebooks_html)
+
+nbconvert-execute: NBCONVERT_PARAMS=--execute
+nbconvert-execute: $(notebooks_html)
+
+python_env:
+ python -m venv .venv && source .venv/bin/activate && pip install -r requirements.txt
+
+#################################################################################
+# PROJECT RULES #
+#################################################################################
+
+
+## Make Dataset
+.PHONY: data
+data: requirements cloudflare toplist qlog interop interop-servers pyasn
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py
+clean_cloudflare:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py clean-cloudflare
+
+cloudflare:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py cloudflare
+
+toplist:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py toplist --refresh
+
+clean_toplist:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py clean-toplist
+
+interop:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py interop
+
+clean_interop:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py clean-interop
+
+interop-servers:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py interop-servers --refresh
+
+clean_interop-servers:
+ $(PYTHON_INTERPRETER) instant_ack/dataset.py clean-interop-servers
+
+pyasn:
+ pyasn_util_convert.py --single data/raw/rib.20240807.0600.bz2 data/interim/rib.20240807.0600.pyasn
+
+## Extract and transform qlog in raw data
+MAKEFILE_FOR_EXTRACTION:=$(CURDIR)/data/raw/Makefile
+
+INTEROP_FOLDERS:=$(shell ls --quoting-style=shell-always -d ~+/data/raw/interop-runner/*/logs_delay=*)
+INTEROP_FOLDERS_SELECTION:=$(shell ls --quoting-style=shell-always -d ~+/data/raw/interop-runner/*/logs_delay=*$(SELECTION)*)
+qlog:
+ -rm interop.jl
+ parallel -j3 --bar --joblog interop.jl 'cd {} && make -j 6 -f $(MAKEFILE_FOR_EXTRACTION) qlog_extraction' ::: $(INTEROP_FOLDERS)
+
+qlog_selection:
+ -rm interop.jl
+ parallel -j3 --bar --joblog interop.jl 'cd {} && make -j 6 -f $(MAKEFILE_FOR_EXTRACTION) qlog_extraction' ::: $(INTEROP_FOLDERS_SELECTION)
+
+clean_qlog:
+ -rm interop.jl
+ parallel -j20 --bar --joblog interop.jl 'cd {} && make -f $(MAKEFILE_FOR_EXTRACTION) clean_qlog_extraction' ::: $(INTEROP_FOLDERS)
+
+clean_qlog_selection:
+ -rm interop.jl
+ parallel -j20 --bar --joblog interop.jl 'cd {} && make -f $(MAKEFILE_FOR_EXTRACTION) clean_qlog_extraction' ::: $(INTEROP_FOLDERS_SELECTION)
+
+
+#################################################################################
+# Self Documenting Commands #
+#################################################################################
+
+.DEFAULT_GOAL := help
+
+define PRINT_HELP_PYSCRIPT
+import re, sys; \
+lines = '\n'.join([line for line in sys.stdin]); \
+matches = re.findall(r'\n## (.*)\n[\s\S]+?\n([a-zA-Z_-]+):', lines); \
+print('Available rules:\n'); \
+print('\n'.join(['{:25}{}'.format(*reversed(match)) for match in matches]))
+endef
+export PRINT_HELP_PYSCRIPT
+
+help:
+ @$(PYTHON_INTERPRETER) -c "${PRINT_HELP_PYSCRIPT}" < $(MAKEFILE_LIST)
diff --git a/05-instant-ack-ccds/README.md b/05-instant-ack-ccds/README.md
new file mode 100644
index 0000000..fecb4c9
--- /dev/null
+++ b/05-instant-ack-ccds/README.md
@@ -0,0 +1,84 @@
+# instant-ack
+
+
+
+
+
+Analysis of instant ACK in QUIC
+
+## Project Organization
+
+```
+├── Makefile <- Makefile with convenience commands like `make data`. See section below.
+├── README.md <- The top-level README for developers using this project.
+├── data
+│ ├── interim <- Data that has been transformed into parquet files.
+│ └── raw <- The original data and slight preprocessed data.
+│
+├── notebooks <- Jupyter notebooks. Structurd by topic.
+│ ├── 01-numerical_analysis/ <- Numerical analysis.
+│ ├── 02-interop-runner/ <- Analysis of QIR emulations, i.e., TTFB, First PTO improvement, # of RTT samples.
+│ ├── 03-toplist/ <- Analysis of QScanner connections to Tranco Top 1M.
+│ ├── 04-cloudflare/ <- Analysis of Cloudflare hosted otherwise unused domains.
+│ └── 05-all-interop-servers/ <- Analysis of ACK delay in QUIC server implementations of public QIR.
+│
+├── pyproject.toml <- Project configuration file with package metadata for instant_ack
+│ and configuration for tools like black
+│
+├── reports
+│ └── figures <- Generated graphics and figures to be used in reporting
+│
+├── requirements.txt <- The requirements file for reproducing the analysis environment, e.g.
+│ generated with `pip freeze > requirements.txt`
+│
+├── setup.cfg <- Configuration file for flake8
+│
+└── instant_ack <- Source code for use in this project.
+ │
+ ├── __init__.py <- Makes instant_ack a Python module
+ ├── data/ <- Scripts to preprocess, load, store and validate data.
+ ├── dataset.py <- Scripts to transform raw data into parquet files.
+ └── visualization/ <- Scripts to create exploratory and results oriented visualizations
+```
+
+--------
+
+## Requirements
+```
+python3.10
+tshark 4.0.15
+```
+
+## Makefile
+> [!IMPORTANT]
+> Make sure you downloaded the required data from: [https://doi.org/10.25532/OPARA-615](https://doi.org/10.25532/OPARA-615).
+> Use `tar -xvf $FILENAME` and for compressed files: `tar -xvzf $FILENAME`
+
+The Makefile is used for convenience, the following commands are available:
+```
+# Python env
+make python_env # Example of python env creation, use source .venv/bin/activate to activate the python environment.
+
+# Data preprocessing
+make cloudflare # Preprocess Cloudflare hosted domain interactions.
+ # -> requires raw-cloudflare.tar (140 GB) extracted into data/raw
+make toplist # Preprocess data from Tranco Top 1M QUIC connection attempts.
+ # -> requires raw-toplist.tar (182 GB) extracted into data/raw
+make interop # Preprocess data from QIR emulations. (Run make qlog before)
+ # -> requires raw-interop-runner.tar.gz (200 GB) extracted into data/raw
+make interop-servers # Preprocess data from public QIR.
+make qlog # Preprocess qlog files.
+ # -> requires raw-interop-runner.tar (200 GB) extracted into data/raw
+make pyasn # Preprocess RIB dump
+ # -> requires rib.20240807.0600.bz2 (98 MB) extracted into data/raw
+make data # Wrapper for all above.
+
+# Reproducing jupyter notebook output
+# -> requires either extraction of interim-qlog.tar (572 MB), interim-cloudflare.tar (43 GB), all-interop-servers.pq.zst (300 KB)
+# and download of rib.20240807.0600.pyasn (22 MB), toplist.pq.zst(3 GB) into data/interim
+ or data preprocessing as described above
+make nbconvert # Convert jupyter notebooks to HTML.
+make nbconvert-execute # Convert jupyter notebooks to HTML but run them before.
+```
+
+
diff --git a/05-instant-ack-ccds/data/interim/.gitkeep b/05-instant-ack-ccds/data/interim/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/05-instant-ack-ccds/data/raw/.gitkeep b/05-instant-ack-ccds/data/raw/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/05-instant-ack-ccds/data/raw/Makefile b/05-instant-ack-ccds/data/raw/Makefile
new file mode 100644
index 0000000..cb73308
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/Makefile
@@ -0,0 +1,174 @@
+### PCAP processing for verification
+
+PCAPS:=$(shell ls */*/*/sim/*.pcap | sort)
+PCAPS_CSV:=$(subst .pcap,.pcap.csv,$(PCAPS))
+
+### Existing extracted files
+FIND_QLOG_EXTRACTED:=$(shell ls */*/*/client/qlog/*.qlog.extracted | sort)
+### QLOG in incorrect folder
+CLIENT_QLOG_OTHER_FOLDER:=$(shell ls */*/*/client/*.qlog | sort )
+CLIENT_QLOG_OTHER_MOVED:=$(subst /client/,/client/qlog/,$(CLIENT_QLOG_OTHER_FOLDER))
+
+### QLOG with different file extensions
+CLIENT_SQLOG:=$(shell ls */*/*/client/qlog/*.sqlog | sort)
+CLIENT_SQLOG_RENAMED:=$(patsubst %.sqlog,%.qlog,$(CLIENT_SQLOG))
+
+### Chrome netlog to qlog
+CLIENT_NETLOG=$(shell ls */*/*/client/chrome.json | sort)
+CLIENT_NETLOG_CONVERTED=$(subst .json,.qlog,$(subst /client/,/client/qlog/,$(CLIENT_NETLOG)))
+
+
+### All qlog files
+CLIENT_QLOG:=$(shell ls */*/*/client/qlog/*.qlog | sort)
+CLIENT_QLOG_EXTRACTED:=$(subst .qlog,.qlog.extracted,$(CLIENT_QLOG) $(CLIENT_QLOG_OTHER_MOVED) $(CLIENT_SQLOG_RENAMED))
+
+SERVER=quic-go-instant-ack
+
+echo:
+ echo $(PCAPS)
+ echo $(CLIENT_QLOG)
+ echo $(CLIENT_QLOG_EXTRACTED)
+
+
+all: tshark_pcaps qlog_extraction
+
+clean: clean_tshark_pcaps clean_qlog_extracted
+
+clean_tshark_pcaps:
+ rm -f $(PCAPS_CSV)
+clean_qlog_extraction:
+ rm -f $(FIND_QLOG_EXTRACTED)
+
+debug: debug_pcaps debug_pcaps_csv debug_client_qlog debug_client_qlog_extracted debug_client_sqlog_renamed
+debug_pcaps:
+ echo ########## PCAPS ###########
+ echo $(PCAPS)
+debug_pcaps_csv:
+ echo ########## PCAPS_CSV ###########
+ echo $(PCAPS_CSV)
+debug_client_qlog:
+ echo ########## QLOG ###########
+ echo $(CLIENT_QLOG)
+debug_client_qlog_extracted:
+ echo ########## QLOG_EXTRACTED ###########
+ echo $(CLIENT_QLOG_EXTRACTED)
+debug_client_sqlog_renamed:
+ echo ########## QLOG_RENAMED ##########
+ echo $(CLIENT_SQLOG_RENAMED)
+
+qlog_extraction: netlog_to_qlog qlog_move $(CLIENT_QLOG_EXTRACTED)
+
+qlog_move: $(CLIENT_SQLOG_RENAMED) $(CLIENT_QLOG_OTHER_MOVED)
+
+%.qlog: %.sqlog
+ mv "$<" "$@"
+
+netlog_to_qlog: $(CLIENT_NETLOG_CONVERTED)
+
+$(CLIENT_NETLOG_CONVERTED): SOURCE=$(subst .qlog,.json,$(subst /client/qlog/,/client/,$@))
+$(CLIENT_NETLOG_CONVERTED): QLOG_DIR=$(subst chrome.qlog,,$@)
+$(CLIENT_NETLOG_CONVERTED):
+ -docker run --rm --mount "type=bind,\"source=$${PWD}/$(QLOG_DIR)\",destination=/data" --mount "type=bind,\"source=$${PWD}/$(SOURCE)\",destination=/data/netlog.netlog" netlog-to-qlog
+
+$(CLIENT_QLOG_OTHER_MOVED):
+ mv "$(subst /client/qlog/,/client/,$@)" "$@"
+
+tshark_pcaps: $(PCAPS_CSV)
+
+# convert to csv with tshark
+%.pcap.csv: keyfile=$(subst sim/trace_node_right.pcap,client/keys.log,$(subst sim/trace_node_left.pcap,server/keys.log,$<))
+%.pcap.csv: %.pcap
+ tshark -2 -d udp.port==443,quic -Y "quic" -r "$<" -T fields \
+ -o tls.keylog_file:$(keyfile)\
+ -e _ws.col.Time -t ud \
+ -e ip.src -e ip.dst \
+ -e ipv6.src -e ipv6.dst \
+ -e ip.len \
+ -e ipv6.plen \
+ -e udp.srcport -e udp.dstport \
+ -e quic.long.packet_type \
+ -e quic.long.packet_type_v2 \
+ -e quic.header_form \
+ -e quic.scid -e quic.dcid \
+ -e quic.packet_number \
+ -e quic.frame \
+ -e quic.ack.largest_acknowledged \
+ -e quic.ack.ack_delay \
+ -e quic.version -e quic.token_length \
+ -e quic.frame_type -e tls.handshake.type -e tls.handshake.extensions_server_name \
+ -e quic.retry_token \
+ -e quic.decryption_failed \
+ -e _ws.expert \
+ -E separator=\| > "$@.tmp"
+ mv "$@.tmp" "$@"
+ rm -f "$@.tmp"
+
+# Filter for specific events
+EVENT_FILTER=.name == "recovery:metric_update" or .name == "recovery:metrics_updated" or .name == "transport:packet_sent" or .name == "transport:packet_received" or .name == "recovery:congestion_state_updated" or .name == "transport:parameters_set" or .name == "security:key_updated" or .name == "security:key_discarded" or .name == "recovery:loss_timer_updated" or .name == "recovery:ecn_state_updated" or .name == "connectivity:spin_bit_updated"
+# flatten frame information
+FRAME_INFO=["frame_type", "length", "id", "offset", "ack_delay", "reset_token", "connection_id", "retire_prior_to", "sequence_number", "acked_ranges", "fin", "stream_id", "maximum", "raw_error_code", "error_code", "error_space", "reason", "token"]
+REMAP_FRAMES=map(del(.data.frames) +(.data.frames as $$frames| $(FRAME_INFO) as $$info | reduce ($$info|.[]) as $$k ({}; . +{"frame_\($$k)": [($$frames|.[]?[$$k]|tostring|sub("null"; ""; "g"))] | join(",")})))
+# Flatten remaining information
+FLATTEN_REMAINDER=map([leaf_paths as $$path | { "key": $$path | join("_"), "value": getpath($$path)}] | from_entries)
+
+$(SERVER)_quiche/%.qlog.extracted: $(SERVER)_quiche/%.qlog
+ cat "$<" | jq --slurp '[{meta: .[0], events: .[1:]}] | map(.events[] + del(.events)) | map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+
+# Same Qlog format
+$(SERVER)_quic-go/%.qlog.extracted: $(SERVER)_quic-go/%.qlog
+ cat "$<" | jq --slurp '.' |jq 'map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+$(SERVER)_go-x-net/%.qlog.extracted: $(SERVER)_go-x-net/%.qlog
+ cat "$<" | jq --slurp '.' |jq 'map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+
+# Same Qlog format
+$(SERVER)_neqo/%.qlog.extracted: $(SERVER)_neqo/%.qlog
+ cat "$<" | jq '.traces | to_entries | map_values(.value + {index: .key}) | map(.events[] + [del(.events)]) | map(.) | map({time: .[0], name: (.[1]+":"+.[2]), data: .[3]} + .[4])| map(.data.header.packet_type=.data.packet_type | del(.data.packet_type)) | map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+$(SERVER)_picoquic/%.qlog.extracted: $(SERVER)_picoquic/%.qlog
+ cat "$<" | jq '.traces | to_entries | map_values(.value + {index: .key}) | map(.events[] + [del(.events)]) | map(.) | map({time: .[0], name: (.[1]+":"+.[2]), data: .[3]} + .[4])| map(.data.header.packet_type=.data.packet_type | del(.data.packet_type)) | map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+$(SERVER)_mvfst/%.qlog.extracted: $(SERVER)_mvfst/%.qlog
+ cat "$<" | jq '.traces | to_entries | map_values(.value + {index: .key}) | map(.events[] + [del(.events)]) | map(.) | map({time: .[0], name: (.[1]+":"+.[2]), data: .[3]} + .[4])| map(.data.header.packet_type=.data.packet_type | del(.data.packet_type)) | map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+$(SERVER)_chrome/%.qlog.extracted: $(SERVER)_chrome/%.qlog
+ cat "$<" | jq '.traces | to_entries | map_values(.value + {index: .key}) | map(.events[] + [del(.events)]) | map(.) | map({time: .[0], name: (.[1]+":"+.[2]), data: .[3]} + .[4])| map(select($(EVENT_FILTER))) | map(.data.frames[]?.acked_ranges[]?[]? |= tonumber )| $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+
+$(SERVER)_ngtcp2/%.qlog.extracted: $(SERVER)_ngtcp2/%.qlog
+ cat "$<" | jq --slurp '[{meta: .[0], events: .[1:]}] | map(.events[] + (.meta)) | map(.trace + del(.trace)) | map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
+
+# aioquic
+%.qlog.extracted: %.qlog
+ cat "$<" | jq '.traces | to_entries | map_values(.value + {index: .key}) | map(.events[] + del(.events)) | map(select($(EVENT_FILTER))) | $(REMAP_FRAMES) | $(FLATTEN_REMAINDER)' -c > $@.temp ;
+ add-pto-info -i $@.temp -o $@.temp2
+ # Fix edge case where uint64 maximum value is interpreted as float64
+ sed 's/18446744073709552000/18446744073709551615/g' $@.temp2 > $@
+ rm -f $@.temp $@.temp2
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/client/keys.log b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/client/keys.log
new file mode 100644
index 0000000..6c10ee7
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/client/keys.log
@@ -0,0 +1,4 @@
+CLIENT_HANDSHAKE_TRAFFIC_SECRET fb6d359d0d184731468456dd11de2f3fb5ddc673277bec8c431853cd1b28b202 bbe47bea5c9c8109bdafcea8e1234e31d95dca47cad5005a7d5acff7cc643fcf25ee2fa22addf8dbb23ee5121f5787af
+SERVER_HANDSHAKE_TRAFFIC_SECRET fb6d359d0d184731468456dd11de2f3fb5ddc673277bec8c431853cd1b28b202 d4272c0318eec4fa7993701c341bb8f92eb8f14d4b2e5fb6d0eca3fa7efdcfaaa3501a308ff72397bbbfe98e9a074dc6
+CLIENT_TRAFFIC_SECRET_0 fb6d359d0d184731468456dd11de2f3fb5ddc673277bec8c431853cd1b28b202 654a732ca7db8b886e66f67e0ffaa2f8197963db332f1824bfe2b306f30c53d02f7bcac9013a39d7b47422064a9c7be5
+SERVER_TRAFFIC_SECRET_0 fb6d359d0d184731468456dd11de2f3fb5ddc673277bec8c431853cd1b28b202 a591e96c577204389c42cdfb4983770b59e271608384a5623e337309a24cb366fd26b538d0795729b467480059d0e1a1
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/pcap.csv b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/pcap.csv
new file mode 100644
index 0000000..605c74b
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/pcap.csv
@@ -0,0 +1,16 @@
+1970-01-01 00:00:00.000000|||||||||||||||||
+1970-01-01 00:00:00.008000|||||||||||||||||
+1970-01-01 00:00:00.016059|||||||||||||||||
+1970-01-01 00:00:00.023059|||||||||||||||||
+1970-01-01 00:00:00.180447|193.167.0.100|193.167.100.100|1288|42538|443|0x00000001|0||36748849a9bca70c1c914973|0,6|||||1|server4|63
+1970-01-01 00:00:00.221511|193.167.100.100|193.167.0.100|1208|443|42538|0x00000001,0x00000001|0,2|a398936628d0e156,a398936628d0e156||2,6,6|411||0|3|2,8,11,15,20||63
+1970-01-01 00:00:00.222751|193.167.0.100|193.167.100.100|1288|42538|443|0x00000001,0x00000001|0,2||a398936628d0e156,a398936628d0e156,a398936628d0e156|2,0,6,9|0||0||20||63
+1970-01-01 00:00:00.223799|193.167.0.100|193.167.100.100|48|42538|443|0x00000001|2||a398936628d0e156|2|0||0||||63
+1970-01-01 00:00:00.255387|193.167.100.100|193.167.0.100|118|443|42538||||||||||||63
+1970-01-01 00:00:00.255899|193.167.0.100|193.167.100.100|42|42538|443||||||||||||63
+1970-01-01 00:00:00.262633|193.167.100.100|193.167.0.100|1055|443|42538||||||||||||63
+1970-01-01 00:00:00.263086|193.167.0.100|193.167.100.100|38|42538|443||||||||||||63
+1970-01-01 00:00:00.286586|193.167.100.100|193.167.0.100|55|443|42538||||||||||||63
+1970-01-01 00:00:00.286737|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|55|443|42538||||||||||||63,62
+1970-01-01 00:00:00.287884|193.167.100.100|193.167.0.100|33|443|42538||||||||||||63
+1970-01-01 00:00:00.287995|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|33|443|42538||||||||||||63,62
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/trace_node_left.pcap b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/aioquic_quic-go/handshake/sim/trace_node_left.pcap
new file mode 100644
index 0000000000000000000000000000000000000000..362db4ea4240190d5fe298565bf12e1b34e2b110
GIT binary patch
literal 6157
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
W*#KKDo4gQd5!Kw`QSY27#(x2Nk|T5g
literal 0
HcmV?d00001
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/client/keys.log b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/client/keys.log
new file mode 100644
index 0000000..b3b823e
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/client/keys.log
@@ -0,0 +1,4 @@
+CLIENT_HANDSHAKE_TRAFFIC_SECRET 9e7bd6c4132f8417094132325f7111fa36491b1fc5a01438c1905e926c4a67c3 72db35e614e2c8fe1790a6dc69a0dc987051391d4a791c10a9783b5d30908d554a79a31e8ec1b45cbdf7ff26dfd1088a
+SERVER_HANDSHAKE_TRAFFIC_SECRET 9e7bd6c4132f8417094132325f7111fa36491b1fc5a01438c1905e926c4a67c3 0115d205840047c94f5f0ad395192d8af5534d1839d7ea9e75757fde5cb64a5d2f684f8f5c87bfdf610ef78ec76769ed
+CLIENT_TRAFFIC_SECRET_0 9e7bd6c4132f8417094132325f7111fa36491b1fc5a01438c1905e926c4a67c3 7591ec644c7cbb3bd7d3ef0344069c692b794456b9e64ef718bb0fcb7b4d58b485f5bd0eaa5f30f313d7ee154fd20be1
+SERVER_TRAFFIC_SECRET_0 9e7bd6c4132f8417094132325f7111fa36491b1fc5a01438c1905e926c4a67c3 67e446d65098ceaff6c7fd51c67eb715d7947dd6c142e42bcea4763c78f1c6417f53a6480a94b678691b5c8f09f43247
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/pcap.csv b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/pcap.csv
new file mode 100644
index 0000000..81b15e0
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/pcap.csv
@@ -0,0 +1,19 @@
+1970-01-01 00:00:00.000000|||||||||||||||||
+1970-01-01 00:00:00.008000|||||||||||||||||
+1970-01-01 00:00:00.016059|||||||||||||||||
+1970-01-01 00:00:00.023059|||||||||||||||||
+1970-01-01 00:00:00.211333|193.167.0.100|193.167.100.100|1288|37167|443|0x00000001|0||0ee7df06e4e6dd6dc6ebfb|0,6|||||1|server4|63
+1970-01-01 00:00:00.250526|193.167.100.100|193.167.0.100|1208|443|37167|0x00000001,0x00000001|0,2|eb5f6407ccc61d5c,eb5f6407ccc61d5c||2,6,6,0|125||0||2,8,11,15,20||63
+1970-01-01 00:00:00.251476|193.167.0.100|193.167.100.100|1288|37167|443|0x00000001,0x00000001|0,2||eb5f6407ccc61d5c,eb5f6407ccc61d5c|2,0,6|0||0||20||63
+1970-01-01 00:00:00.252524|193.167.0.100|193.167.100.100|48|37167|443|0x00000001|2||eb5f6407ccc61d5c|2|0||0||||63
+1970-01-01 00:00:00.252580|193.167.0.100|193.167.100.100|54|37167|443||||eb5f6407ccc61d5c|9|||||||63
+1970-01-01 00:00:00.285185|193.167.100.100|193.167.0.100|614|443|37167|0x00000001|2|eb5f6407ccc61d5c||2,6|0||1||4,4||63
+1970-01-01 00:00:00.285605|193.167.0.100|193.167.100.100|40|37167|443||||eb5f6407ccc61d5c|2|21||0||||63
+1970-01-01 00:00:00.285830|193.167.100.100|193.167.0.100|116|443|37167|||||2,30,24,24,24|0||0||||63
+1970-01-01 00:00:00.286229|193.167.0.100|193.167.100.100|42|37167|443||||3ef4d3da05e2b3fa|2,25|17||1||||63
+1970-01-01 00:00:00.287614|193.167.100.100|193.167.0.100|1054|443|37167|||||11|||||||63
+1970-01-01 00:00:00.287973|193.167.0.100|193.167.100.100|38|37167|443||||3ef4d3da05e2b3fa|29|||||||63
+1970-01-01 00:00:00.317776|193.167.100.100|193.167.0.100|59|443|37167|||||2,24|0||1||||63
+1970-01-01 00:00:00.317949|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|59|443|37167|||||2,24|0||1||||63,62
+1970-01-01 00:00:00.318754|193.167.100.100|193.167.0.100|30|443|37167|||||28|||||||63
+1970-01-01 00:00:00.318878|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|30|443|37167|||||28|||||||63,62
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/trace_node_left.pcap b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/haproxy_quic-go/handshake/sim/trace_node_left.pcap
new file mode 100644
index 0000000000000000000000000000000000000000..b8cd56aa339eeea65280db12d194f0cce3cf17bd
GIT binary patch
literal 6978
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
literal 0
HcmV?d00001
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/client/keys.log b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/client/keys.log
new file mode 100644
index 0000000..3a60791
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/client/keys.log
@@ -0,0 +1,4 @@
+CLIENT_HANDSHAKE_TRAFFIC_SECRET 55276cdcc8bd12013601635a323ca0a8e9e67ebbe3add77758c23dc4338070c0 25b8765455c4b40d0982990fff575394931b273a1194a0db99c3b7f7421840e0
+SERVER_HANDSHAKE_TRAFFIC_SECRET 55276cdcc8bd12013601635a323ca0a8e9e67ebbe3add77758c23dc4338070c0 5216b476abc9562ef797e34980ecc9c10aaf8c7f3f32286468f49bd8b18c9369
+CLIENT_TRAFFIC_SECRET_0 55276cdcc8bd12013601635a323ca0a8e9e67ebbe3add77758c23dc4338070c0 2038530d37871c59c564621125f5b5c00358f4a3b5939692aea7cc7ddb6fef02
+SERVER_TRAFFIC_SECRET_0 55276cdcc8bd12013601635a323ca0a8e9e67ebbe3add77758c23dc4338070c0 41fb13d49e32c006a95f550abd98489cc0e1338d27d6826fe041db7019de1165
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/pcap.csv b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/pcap.csv
new file mode 100644
index 0000000..0ddd3d2
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/pcap.csv
@@ -0,0 +1,21 @@
+1970-01-01 00:00:00.000000|||||||||||||||||
+1970-01-01 00:00:00.008000|||||||||||||||||
+1970-01-01 00:00:00.016059|||||||||||||||||
+1970-01-01 00:00:00.023059|||||||||||||||||
+1970-01-01 00:00:00.175124|193.167.0.100|193.167.100.100|1288|37738|443|0x00000001|0||208e752a8654f3e3|0,6|||||1|server4|63
+1970-01-01 00:00:00.375680|193.167.0.100|193.167.100.100|1288|37738|443|0x00000001|0||208e752a8654f3e3|0,6|||||||63
+1970-01-01 00:00:00.376728|193.167.0.100|193.167.100.100|1288|37738|443|0x00000001|0||208e752a8654f3e3|0,6|||||||63
+1970-01-01 00:00:00.394946|193.167.100.100|193.167.0.100|1208|443|37738|0x00000001,0x00000001|0,2|01544cd2ea7dffb4,01544cd2ea7dffb4||2,6,0,6|0||0|3|2,8,11,15,20||63
+1970-01-01 00:00:00.396998|193.167.0.100|193.167.100.100|1288|37738|443|0x00000001,0x00000001|0,2||01544cd2ea7dffb4,01544cd2ea7dffb4|2,0,6|0||0||20||63
+1970-01-01 00:00:00.398046|193.167.0.100|193.167.100.100|94|37738|443|0x00000001|2||01544cd2ea7dffb4,01544cd2ea7dffb4|2,9|0||0||||63
+1970-01-01 00:00:00.412803|193.167.100.100|193.167.0.100|1209|443|37738|0x00000001|0|01544cd2ea7dffb4||2,0|0||1||||63
+1970-01-01 00:00:00.413788|193.167.100.100|193.167.0.100|1209|443|37738|0x00000001|0|01544cd2ea7dffb4||2,0|0||2||||63
+1970-01-01 00:00:00.454477|193.167.100.100|193.167.0.100|111|443|37738|||||30,24,24,24|||||||63
+1970-01-01 00:00:00.455005|193.167.0.100|193.167.100.100|1374|37738|443||||729695da6ef68866|0,1|||||||63
+1970-01-01 00:00:00.456122|193.167.0.100|193.167.100.100|42|37738|443||||729695da6ef68866|2,25|28||0||||63
+1970-01-01 00:00:00.491457|193.167.100.100|193.167.0.100|60|443|37738|||||2,24|125||1||||63
+1970-01-01 00:00:00.491856|193.167.0.100|193.167.100.100|59|37738|443||||729695da6ef68866|2,9|18||0||||63
+1970-01-01 00:00:00.531431|193.167.100.100|193.167.0.100|1064|443|37738|||||15,2,18|125||0||||63
+1970-01-01 00:00:00.531842|193.167.0.100|193.167.100.100|38|37738|443||||729695da6ef68866|29|||||||63
+1970-01-01 00:00:00.566460|193.167.100.100|193.167.0.100|35|443|37738|||||28,2|0||1||||63
+1970-01-01 00:00:00.566630|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|35|443|37738|||||28,2|0||1||||63,62
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/trace_node_left.pcap b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/kwik_quic-go/handshake/sim/trace_node_left.pcap
new file mode 100644
index 0000000000000000000000000000000000000000..8d11e1a00dddb559519924f20d292075f42c97c1
GIT binary patch
literal 12748
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
literal 0
HcmV?d00001
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/client/keys.log b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/client/keys.log
new file mode 100644
index 0000000..1987d68
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/client/keys.log
@@ -0,0 +1,4 @@
+CLIENT_HANDSHAKE_TRAFFIC_SECRET 65a582c07176ee34521a2bc50ec46726a7477948e46204334a3a47e1a1e514f5 50c7ba7f965c2d0a55110076e0cf0f6c3afdd5e9a25788eb14d2f92b51bc9f7b
+SERVER_HANDSHAKE_TRAFFIC_SECRET 65a582c07176ee34521a2bc50ec46726a7477948e46204334a3a47e1a1e514f5 5e0926196304f2f4f0b07be870d7b64c82332f6d8d95721b3882e24b501537e6
+CLIENT_TRAFFIC_SECRET_0 65a582c07176ee34521a2bc50ec46726a7477948e46204334a3a47e1a1e514f5 5cc0cb84bda41e841e7ae966eed0962b421d9b1235efd2e2d363c4f7ed4e74de
+SERVER_TRAFFIC_SECRET_0 65a582c07176ee34521a2bc50ec46726a7477948e46204334a3a47e1a1e514f5 f19d2d731bf814c3c66dad7feedb415658eeee34b077eaffbf322dd94fef0e8f
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/pcap.csv b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/pcap.csv
new file mode 100644
index 0000000..3cc71d9
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/pcap.csv
@@ -0,0 +1,16 @@
+1970-01-01 00:00:00.000000|||||||||||||||||
+1970-01-01 00:00:00.008000|||||||||||||||||
+1970-01-01 00:00:00.016059|||||||||||||||||
+1970-01-01 00:00:00.023059|||||||||||||||||
+1970-01-01 00:00:00.210415|193.167.0.100|193.167.100.100|1288|39581|443|0x00000001|0||a8277a6148037395783125a148d2aa70901b062f|0,6|||||1|server4|63
+1970-01-01 00:00:00.249190|193.167.100.100|193.167.0.100|1260|443|39581|0x00000001,0x00000001|0,2|10f27be1e4b1208d,10f27be1e4b1208d||2,6,6,0|148||0||2,8,11,15,20||63
+1970-01-01 00:00:00.250496|193.167.0.100|193.167.100.100|1288|39581|443|0x00000001,0x00000001|0,2||10f27be1e4b1208d,10f27be1e4b1208d|3,0,6|0||0||20||63
+1970-01-01 00:00:00.251544|193.167.0.100|193.167.100.100|51|39581|443|0x00000001|2||10f27be1e4b1208d|3|0||0||||63
+1970-01-01 00:00:00.251602|193.167.0.100|193.167.100.100|54|39581|443||||10f27be1e4b1208d|9|||||||63
+1970-01-01 00:00:00.282676|193.167.100.100|193.167.0.100|29|443|39581|||||30,0|||||||63
+1970-01-01 00:00:00.282848|193.167.100.100|193.167.0.100|193|443|39581|0x00000001|2|10f27be1e4b1208d||2,24,24,24,7|28||0||||63
+1970-01-01 00:00:00.283245|193.167.0.100|193.167.100.100|47|39581|443||||db3afcb8d47ec70c|3,25|15|0|0||||63
+1970-01-01 00:00:00.283970|193.167.100.100|193.167.0.100|1059|443|39581|||||2,11|11||0||||63
+1970-01-01 00:00:00.284362|193.167.0.100|193.167.100.100|38|39581|443||||db3afcb8d47ec70c|29|||||||63
+1970-01-01 00:00:00.314072|193.167.100.100|193.167.0.100|60|443|39581|||||2,24|18||1||||63
+1970-01-01 00:00:00.314263|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|60|443|39581|||||2,24|18||1||||63,62
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/trace_node_left.pcap b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/lsquic_quic-go/handshake/sim/trace_node_left.pcap
new file mode 100644
index 0000000000000000000000000000000000000000..1c0229b626dfa490b44c268f011c1d1e75c6b7d8
GIT binary patch
literal 6295
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
literal 0
HcmV?d00001
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/client/keys.log b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/client/keys.log
new file mode 100644
index 0000000..77add5d
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/client/keys.log
@@ -0,0 +1,4 @@
+CLIENT_HANDSHAKE_TRAFFIC_SECRET b0405e90254701a39963a06f74bd6fe126475814dea4ae52b9a535cd8cc20128 65a5a5ed48c0125f50f35c0d898027c3666d879306dc7fe51198918dab15839b290127fc63ace8f9c2315423d89e3bb0
+SERVER_HANDSHAKE_TRAFFIC_SECRET b0405e90254701a39963a06f74bd6fe126475814dea4ae52b9a535cd8cc20128 7e9f2cbe0823398b906aebd14ae4bfc811f7f5ae916a971886d8711b56809b3a30dc3a62cc0963f8ffcfa34047c7db97
+CLIENT_TRAFFIC_SECRET_0 b0405e90254701a39963a06f74bd6fe126475814dea4ae52b9a535cd8cc20128 63f25611cacf6c1d04eaa4d8b367f00c6061a673fe35897491188143fa763c20cbc59fd5179c824363b896fdae06ff72
+SERVER_TRAFFIC_SECRET_0 b0405e90254701a39963a06f74bd6fe126475814dea4ae52b9a535cd8cc20128 2373891a7e91fa8dfa91196289e8bd74cb0c30f8a48d1a63909081fe26e45ce9b6bea982b83ee5d8d4491efa18a20a6d
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/pcap.csv b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/pcap.csv
new file mode 100644
index 0000000..c5c8b50
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/pcap.csv
@@ -0,0 +1,19 @@
+1970-01-01 00:00:00.000000|||||||||||||||||
+1970-01-01 00:00:00.008000|||||||||||||||||
+1970-01-01 00:00:00.016059|||||||||||||||||
+1970-01-01 00:00:00.023059|||||||||||||||||
+1970-01-01 00:00:00.187879|193.167.0.100|193.167.100.100|1288|39787|443|0x00000001|0||978bc91a2d33ccad5c4a11bfa7c308cb94da31|0,6|||||1|server4|63
+1970-01-01 00:00:00.376222|193.167.100.100|193.167.0.100|1228|443|39787|0x00000001,0x00000001|0,2|31d9e697768fe1febc,31d9e697768fe1febc||6,6,0||||8|2,8,11,15,20||63
+1970-01-01 00:00:00.377509|193.167.0.100|193.167.100.100|1288|39787|443|0x00000001,0x00000001|0,2||31d9e697768fe1febc,31d9e697768fe1febc|2,0,6|0||0||20||63
+1970-01-01 00:00:00.378557|193.167.0.100|193.167.100.100|96|39787|443|0x00000001|2||31d9e697768fe1febc,31d9e697768fe1febc|2,9|0||0||||63
+1970-01-01 00:00:00.410057|193.167.100.100|193.167.0.100|1228|443|39787|||||2,30,24,24,24,24,24,24,24,0|0||0||||63
+1970-01-01 00:00:00.410571|193.167.0.100|193.167.100.100|49|39787|443||||7b8b676ff65a36c6b3|2,25,25,25,25|24||0||||63
+1970-01-01 00:00:00.411057|193.167.100.100|193.167.0.100|1228|443|39787|||||1,0|||||||63
+1970-01-01 00:00:00.411345|193.167.100.100|193.167.0.100|338|443|39787|||||6|||||4||63
+1970-01-01 00:00:00.411643|193.167.0.100|193.167.100.100|41|39787|443||||7b8b676ff65a36c6b3|2|10||2||||63
+1970-01-01 00:00:00.412208|193.167.100.100|193.167.0.100|1057|443|39787|||||11|||||||63
+1970-01-01 00:00:00.412580|193.167.0.100|193.167.100.100|39|39787|443||||7b8b676ff65a36c6b3|29|||||||63
+1970-01-01 00:00:00.443018|193.167.100.100|193.167.0.100|1260|443|39787|||||1,0|||||||63
+1970-01-01 00:00:00.443068|193.167.100.100|193.167.0.100|41|443|39787|||||3,28|0||2||||63
+1970-01-01 00:00:00.443232|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|1260|443|39787||||||||||||63,62
+1970-01-01 00:00:00.443694|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|41|443|39787|||||3,28|0||2||||63,62
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/trace_node_left.pcap b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/msquic_quic-go/handshake/sim/trace_node_left.pcap
new file mode 100644
index 0000000000000000000000000000000000000000..fd1d66bdf1b4cdc168fc9e54dbb026c1a4e892d0
GIT binary patch
literal 10760
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≤}SqnP)aMfAv{#=>fNm%O%2bfY`}}n?IrQ}>CP-taJL16BfhybNNg|w95UID
zDXjY`{S$Lam!;D~WPkAHc(T=U{NW%*)Ln=bkKl)hhH*mYf+BsfIe931VGAwZ>CR<%
zaUkPMw|oa{-8KrG>IPHU$&%c`2u#C(3H-g;;@GX`N?r3QG)}T|Pr|nnSlE;JTKVF5
z)nH$3pBCA0WQktBpzw$}yj?CRE;^<$M#1xhdb)5TF3kfE$o^kGcxJS0sKb!ZM;M!r
z^Z;atI9+##RXj_~|yrjWIjl`(qgm!IpR?V|wx((>Wb`mWJ{+
zm^9p7!G#3{L|*r$z3COOU64XfOs^3o1WC(3XblCW
zH22o>AMh2xQ20Oi{vUk*Tll_>6Q+JxfYxjIrneCV&~RdY8&PCA|23kv<=-k_^KE~v
NSOhRs{{IK>{{#5ejV1s9
literal 0
HcmV?d00001
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/client/keys.log b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/client/keys.log
new file mode 100644
index 0000000..a26c582
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/client/keys.log
@@ -0,0 +1,4 @@
+CLIENT_HANDSHAKE_TRAFFIC_SECRET 94e8c7d4343b4ff8d5132f020ed9a45ec98ca564076786b34b90cae2e3ad9107 cc0e9012488472ff01b2267d062e560f79d35470eae564349ede9cafd3949682
+SERVER_HANDSHAKE_TRAFFIC_SECRET 94e8c7d4343b4ff8d5132f020ed9a45ec98ca564076786b34b90cae2e3ad9107 202675d3391edc2961ec18120ed4bc4e16a49644633a3a08cce4464486382a0f
+CLIENT_TRAFFIC_SECRET_0 94e8c7d4343b4ff8d5132f020ed9a45ec98ca564076786b34b90cae2e3ad9107 f5cee54651efedc68d24616a3fbfdfc464881eaeea84a76648eb21703c3c5fb7
+SERVER_TRAFFIC_SECRET_0 94e8c7d4343b4ff8d5132f020ed9a45ec98ca564076786b34b90cae2e3ad9107 0dcc73119b6e0cf99303e4730a64871746daf91bd3abe93471538f1012e3b5e5
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/pcap.csv b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/pcap.csv
new file mode 100644
index 0000000..3117fd1
--- /dev/null
+++ b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/pcap.csv
@@ -0,0 +1,17 @@
+1970-01-01 00:00:00.000000|||||||||||||||||
+1970-01-01 00:00:00.008000|||||||||||||||||
+1970-01-01 00:00:00.016059|||||||||||||||||
+1970-01-01 00:00:00.023059|||||||||||||||||
+1970-01-01 00:00:00.168734|193.167.0.100|193.167.100.100|1288|43567|443|0x00000001|0||474085364468c31a03a0f5624295aaadcc|0,6|||||1|server4|63
+1970-01-01 00:00:00.206894|193.167.100.100|193.167.0.100|1240|443|43567|0x00000001|0|400000911b2791c0||6,2,0|104||0||2||63
+1970-01-01 00:00:00.207434|193.167.0.100|193.167.100.100|1288|43567|443|0x00000001|0||400000911b2791c0|2,0|0||0||||63
+1970-01-01 00:00:00.207529|193.167.100.100|193.167.0.100|772|443|43567|0x00000001|2|400000911b2791c0||6||||3|8,11,15,20||63
+1970-01-01 00:00:00.208482|193.167.0.100|193.167.100.100|90|43567|443|0x00000001|2||400000911b2791c0|2,6|0||0||20||63
+1970-01-01 00:00:00.208571|193.167.0.100|193.167.100.100|54|43567|443||||400000911b2791c0|9|||||||63
+1970-01-01 00:00:00.238904|193.167.100.100|193.167.0.100|46|443|43567|0x00000001|2|400000911b2791c0||2|23||0||||63
+1970-01-01 00:00:00.238966|193.167.100.100|193.167.0.100|56|443|43567|||||30,0|||||||63
+1970-01-01 00:00:00.239331|193.167.0.100|193.167.100.100|43|43567|443||||400000911b2791c0|2|17||0||||63
+1970-01-01 00:00:00.240161|193.167.100.100|193.167.0.100|1080|443|43567|||||2,11,0|60||0||||63
+1970-01-01 00:00:00.240500|193.167.0.100|193.167.100.100|38|43567|443||||400000911b2791c0|29|||||||63
+1970-01-01 00:00:00.270855|193.167.100.100|193.167.0.100|41|443|43567|||||28|||||||63
+1970-01-01 00:00:00.271011|193.167.0.100,193.167.100.100|193.167.100.100,193.167.0.100|41|443|43567|||||28|||||||63,62
diff --git a/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/trace_node_left.pcap b/05-instant-ack-ccds/data/raw/all-interop-servers/2024-08-14T01:43/mvfst_quic-go/handshake/sim/trace_node_left.pcap
new file mode 100644
index 0000000000000000000000000000000000000000..9eb7a06e2e6aec6b6e00dd0c17b8d7bbf1cce723
GIT binary patch
literal 6983
zcmbW5bxBj)*9su~i
zoLhwc183N9fEOmz@qanP{x#=6>A}+a&z!d8PtRb}}$_f=Q92a|0&GdG(s`>9E3noZDUD8Z60YWE;;k|6DJ7
zcE8uD7)PbX4ueX2F`gP^m_hE=A|{)}2p>}HaTDX!0H+f;me@#6wS=wst%$`rYt4Z5Vz@cP
z{JQN({Nwj@;shl^e~%(`V3Lf#XdrqQstov{csaZSwNhwru{h{WCWQ{=1V
z3c<91!b}T1m=~Je&Jjz_a!rG{X<3H3Mhu`P#yZ)HCr#Nz2
zjf}GF;1g#>sP>I8wb}E-ZsJc$&H+it48aQq$|Kod<}dQxeYSM-e8IXg|B~4L(II(+gYWlN3h`OK*N$lAEqeghL)!$u
zaD>wdKLhh}Ebk5YPR?_W#Hh7znaxJNnSP;))y(RXlLR(Z-f#n|ifX>@Ev=v84m9Y6
zYrkp)r6uib$N9M{#o$h2n5?a>xp;!X6F#{8gl04~!N0T;v48F^6BnFfG5;K)BQQJc
zSw