create macro for item with textbf
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
||||
# LaTeX intermediate and output files
|
||||
CLAUDE.md
|
||||
result
|
||||
*.aux
|
||||
**/*.bak.*
|
||||
|
||||
@@ -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}
|
||||
|
||||
|
||||
2
main.tex
2
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
|
||||
%----------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user