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
|
# LaTeX intermediate and output files
|
||||||
|
CLAUDE.md
|
||||||
result
|
result
|
||||||
*.aux
|
*.aux
|
||||||
**/*.bak.*
|
**/*.bak.*
|
||||||
|
|||||||
@@ -21,11 +21,11 @@ All experiments were conducted on three bare-metal servers with
|
|||||||
identical specifications:
|
identical specifications:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{CPU:} Intel Model 94, 4 cores / 8 threads
|
\bitem{CPU:} Intel Model 94, 4 cores / 8 threads
|
||||||
\item \textbf{Memory:} 64 GB RAM
|
\bitem{Memory:} 64 GB RAM
|
||||||
\item \textbf{Network:} 1 Gbps Ethernet (e1000e driver; one machine
|
\bitem{Network:} 1 Gbps Ethernet (e1000e driver; one machine
|
||||||
uses r8169)
|
uses r8169)
|
||||||
\item \textbf{Cryptographic acceleration:} AES-NI, AVX, AVX2, PCLMULQDQ,
|
\bitem{Cryptographic acceleration:} AES-NI, AVX, AVX2, PCLMULQDQ,
|
||||||
RDRAND, SSE4.2
|
RDRAND, SSE4.2
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -85,13 +85,13 @@ for understanding the cost of mesh coordination and NAT traversal logic.
|
|||||||
|
|
||||||
VPNs were selected based on:
|
VPNs were selected based on:
|
||||||
\begin{itemize}
|
\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.
|
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.
|
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.
|
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}
|
\end{itemize}
|
||||||
|
|
||||||
\subsection{Configuration Methodology}
|
\subsection{Configuration Methodology}
|
||||||
@@ -125,9 +125,9 @@ work that relied exclusively on iperf3.
|
|||||||
Measures round-trip latency and packet delivery reliability.
|
Measures round-trip latency and packet delivery reliability.
|
||||||
|
|
||||||
\begin{itemize}
|
\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.
|
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.
|
per-packet RTTs.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -147,7 +147,7 @@ TCP streams on all machines simultaneously in a circular pattern
|
|||||||
This simulates contention across the mesh.
|
This simulates contention across the mesh.
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{Metrics:} Throughput (bits/s), retransmits, congestion window,
|
\bitem{Metrics:} Throughput (bits/s), retransmits, congestion window,
|
||||||
jitter (UDP), packet loss (UDP).
|
jitter (UDP), packet loss (UDP).
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -156,9 +156,9 @@ This simulates contention across the mesh.
|
|||||||
Measures connection-level performance rather than bulk throughput.
|
Measures connection-level performance rather than bulk throughput.
|
||||||
|
|
||||||
\begin{itemize}
|
\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.
|
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.
|
byte (TTFB), connection establishment time.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -167,12 +167,12 @@ Measures connection-level performance rather than bulk throughput.
|
|||||||
Measures real-time multimedia streaming performance.
|
Measures real-time multimedia streaming performance.
|
||||||
|
|
||||||
\begin{itemize}
|
\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,
|
pattern at 30 fps using ffmpeg with H.264 encoding (ultrafast preset,
|
||||||
zerolatency tuning) at 25 Mbps target bitrate. The stream is transmitted
|
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.
|
over the RIST protocol to a receiver on the target machine for 30 seconds.
|
||||||
\item \textbf{Encoding metrics:} Actual bitrate, frame rate, dropped frames.
|
\bitem{Encoding metrics:} Actual bitrate, frame rate, dropped frames.
|
||||||
\item \textbf{Network metrics:} Packets dropped, packets recovered via
|
\bitem{Network metrics:} Packets dropped, packets recovered via
|
||||||
RIST retransmission, RTT, quality score (0--100), received bitrate.
|
RIST retransmission, RTT, quality score (0--100), received bitrate.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -185,12 +185,12 @@ realistic test of VPN behavior under multimedia workloads.
|
|||||||
Measures sustained download performance using a real-world workload.
|
Measures sustained download performance using a real-world workload.
|
||||||
|
|
||||||
\begin{itemize}
|
\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
|
machine serves the Firefox package. The client downloads it via
|
||||||
\texttt{nix copy} through the VPN. Benchmarked with hyperfine:
|
\texttt{nix copy} through the VPN. Benchmarked with hyperfine:
|
||||||
1 warmup run followed by 2 timed runs. The local cache and Nix's
|
1 warmup run followed by 2 timed runs. The local cache and Nix's
|
||||||
SQLite metadata are cleared between runs.
|
SQLite metadata are cleared between runs.
|
||||||
\item \textbf{Metrics:} Mean duration (seconds), standard deviation,
|
\bitem{Metrics:} Mean duration (seconds), standard deviation,
|
||||||
min/max duration.
|
min/max duration.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@@ -267,9 +267,9 @@ be identified during analysis.
|
|||||||
Each metric is summarized as a statistics dictionary containing:
|
Each metric is summarized as a statistics dictionary containing:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \textbf{min / max:} Extreme values observed
|
\bitem{min / max:} Extreme values observed
|
||||||
\item \textbf{average:} Arithmetic mean across samples
|
\bitem{average:} Arithmetic mean across samples
|
||||||
\item \textbf{p25 / p50 / p75:} Quartiles via \texttt{statistics.quantiles()}
|
\bitem{p25 / p50 / p75:} Quartiles via \texttt{statistics.quantiles()}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
Multi-run tests (ping, nix-cache) aggregate across runs. Per-second
|
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:
|
Key pinned inputs include:
|
||||||
|
|
||||||
\begin{itemize}
|
\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
|
single version across the dependency graph
|
||||||
\item \textbf{clan-core:} The Clan framework, pinned to a specific commit
|
\bitem{clan-core:} The Clan framework, pinned to a specific commit
|
||||||
\item \textbf{VPN sources:} Hyprspace, EasyTier, Nebula locked to
|
\bitem{VPN sources:} Hyprspace, EasyTier, Nebula locked to
|
||||||
exact commits
|
exact commits
|
||||||
\item \textbf{Build infrastructure:} flake-parts, treefmt-nix, disko,
|
\bitem{Build infrastructure:} flake-parts, treefmt-nix, disko,
|
||||||
nixos-facter-modules
|
nixos-facter-modules
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|||||||
2
main.tex
2
main.tex
@@ -70,6 +70,8 @@
|
|||||||
\usepackage[autostyle=true]{csquotes} % Required to generate
|
\usepackage[autostyle=true]{csquotes} % Required to generate
|
||||||
% language-dependent quotes in the bibliography
|
% language-dependent quotes in the bibliography
|
||||||
|
|
||||||
|
\newcommand{\bitem}[1]{\item \textbf{#1}}
|
||||||
|
|
||||||
%----------------------------------------------------------------------------------------
|
%----------------------------------------------------------------------------------------
|
||||||
% MARGIN SETTINGS
|
% MARGIN SETTINGS
|
||||||
%----------------------------------------------------------------------------------------
|
%----------------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user