From c1c94fdf78fbcf7140bf19c5875aefb69d463d68 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Wed, 25 Feb 2026 16:10:21 +0100 Subject: [PATCH] create macro for item with textbf --- .gitignore | 1 + Chapters/Methodology.tex | 50 ++++++++++++++++++++-------------------- main.tex | 2 ++ 3 files changed, 28 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index e1e2087..13a4ea1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # LaTeX intermediate and output files +CLAUDE.md result *.aux **/*.bak.* diff --git a/Chapters/Methodology.tex b/Chapters/Methodology.tex index 44c7cc4..ef651e8 100755 --- a/Chapters/Methodology.tex +++ b/Chapters/Methodology.tex @@ -21,11 +21,11 @@ All experiments were conducted on three bare-metal servers with identical specifications: \begin{itemize} - \item \textbf{CPU:} Intel Model 94, 4 cores / 8 threads - \item \textbf{Memory:} 64 GB RAM - \item \textbf{Network:} 1 Gbps Ethernet (e1000e driver; one machine + \bitem{CPU:} Intel Model 94, 4 cores / 8 threads + \bitem{Memory:} 64 GB RAM + \bitem{Network:} 1 Gbps Ethernet (e1000e driver; one machine uses r8169) - \item \textbf{Cryptographic acceleration:} AES-NI, AVX, AVX2, PCLMULQDQ, + \bitem{Cryptographic acceleration:} AES-NI, AVX, AVX2, PCLMULQDQ, RDRAND, SSE4.2 \end{itemize} @@ -85,13 +85,13 @@ for understanding the cost of mesh coordination and NAT traversal logic. VPNs were selected based on: \begin{itemize} - \item \textbf{NAT traversal capability:} All selected VPNs can establish + \bitem{NAT traversal capability:} All selected VPNs can establish connections between peers behind NAT without manual port forwarding. - \item \textbf{Decentralization:} Preference for solutions without mandatory + \bitem{Decentralization:} Preference for solutions without mandatory central servers, though coordinated-mesh VPNs were included for comparison. - \item \textbf{Active development:} Only VPNs with recent commits and + \bitem{Active development:} Only VPNs with recent commits and maintained releases were considered. - \item \textbf{Linux support:} All VPNs must run on Linux. + \bitem{Linux support:} All VPNs must run on Linux. \end{itemize} \subsection{Configuration Methodology} @@ -125,9 +125,9 @@ work that relied exclusively on iperf3. Measures round-trip latency and packet delivery reliability. \begin{itemize} - \item \textbf{Method:} 100 ICMP echo requests at 200 ms intervals, + \bitem{Method:} 100 ICMP echo requests at 200 ms intervals, 1-second per-packet timeout, repeated for 3 runs. - \item \textbf{Metrics:} RTT (min, avg, max, mdev), packet loss percentage, + \bitem{Metrics:} RTT (min, avg, max, mdev), packet loss percentage, per-packet RTTs. \end{itemize} @@ -147,7 +147,7 @@ TCP streams on all machines simultaneously in a circular pattern This simulates contention across the mesh. \begin{itemize} - \item \textbf{Metrics:} Throughput (bits/s), retransmits, congestion window, + \bitem{Metrics:} Throughput (bits/s), retransmits, congestion window, jitter (UDP), packet loss (UDP). \end{itemize} @@ -156,9 +156,9 @@ This simulates contention across the mesh. Measures connection-level performance rather than bulk throughput. \begin{itemize} - \item \textbf{Method:} One qperf instance per CPU core in parallel, each + \bitem{Method:} One qperf instance per CPU core in parallel, each running for 30 seconds. Bandwidth from all cores is summed per second. - \item \textbf{Metrics:} Total bandwidth (Mbps), CPU usage, time to first + \bitem{Metrics:} Total bandwidth (Mbps), CPU usage, time to first byte (TTFB), connection establishment time. \end{itemize} @@ -167,12 +167,12 @@ Measures connection-level performance rather than bulk throughput. Measures real-time multimedia streaming performance. \begin{itemize} - \item \textbf{Method:} The sender generates a 4K (3840$\times$2160) test + \bitem{Method:} The sender generates a 4K (3840$\times$2160) test pattern at 30 fps using ffmpeg with H.264 encoding (ultrafast preset, zerolatency tuning) at 25 Mbps target bitrate. The stream is transmitted over the RIST protocol to a receiver on the target machine for 30 seconds. - \item \textbf{Encoding metrics:} Actual bitrate, frame rate, dropped frames. - \item \textbf{Network metrics:} Packets dropped, packets recovered via + \bitem{Encoding metrics:} Actual bitrate, frame rate, dropped frames. + \bitem{Network metrics:} Packets dropped, packets recovered via RIST retransmission, RTT, quality score (0--100), received bitrate. \end{itemize} @@ -185,12 +185,12 @@ realistic test of VPN behavior under multimedia workloads. Measures sustained download performance using a real-world workload. \begin{itemize} - \item \textbf{Method:} A Harmonia Nix binary cache server on the target + \bitem{Method:} A Harmonia Nix binary cache server on the target machine serves the Firefox package. The client downloads it via \texttt{nix copy} through the VPN. Benchmarked with hyperfine: 1 warmup run followed by 2 timed runs. The local cache and Nix's SQLite metadata are cleared between runs. - \item \textbf{Metrics:} Mean duration (seconds), standard deviation, + \bitem{Metrics:} Mean duration (seconds), standard deviation, min/max duration. \end{itemize} @@ -267,9 +267,9 @@ be identified during analysis. Each metric is summarized as a statistics dictionary containing: \begin{itemize} - \item \textbf{min / max:} Extreme values observed - \item \textbf{average:} Arithmetic mean across samples - \item \textbf{p25 / p50 / p75:} Quartiles via \texttt{statistics.quantiles()} + \bitem{min / max:} Extreme values observed + \bitem{average:} Arithmetic mean across samples + \bitem{p25 / p50 / p75:} Quartiles via \texttt{statistics.quantiles()} \end{itemize} Multi-run tests (ping, nix-cache) aggregate across runs. Per-second @@ -345,12 +345,12 @@ cryptographic hashes (\texttt{narHash}) and commit SHAs for each input. Key pinned inputs include: \begin{itemize} - \item \textbf{nixpkgs:} Follows \texttt{clan-core/nixpkgs}, ensuring a + \bitem{nixpkgs:} Follows \texttt{clan-core/nixpkgs}, ensuring a single version across the dependency graph - \item \textbf{clan-core:} The Clan framework, pinned to a specific commit - \item \textbf{VPN sources:} Hyprspace, EasyTier, Nebula locked to + \bitem{clan-core:} The Clan framework, pinned to a specific commit + \bitem{VPN sources:} Hyprspace, EasyTier, Nebula locked to exact commits - \item \textbf{Build infrastructure:} flake-parts, treefmt-nix, disko, + \bitem{Build infrastructure:} flake-parts, treefmt-nix, disko, nixos-facter-modules \end{itemize} diff --git a/main.tex b/main.tex index 7e3cca1..eb31778 100644 --- a/main.tex +++ b/main.tex @@ -70,6 +70,8 @@ \usepackage[autostyle=true]{csquotes} % Required to generate % language-dependent quotes in the bibliography +\newcommand{\bitem}[1]{\item \textbf{#1}} + %---------------------------------------------------------------------------------------- % MARGIN SETTINGS %----------------------------------------------------------------------------------------