From bbb5c6e8869eb71fec16b2e6027cbd2dea0b8518 Mon Sep 17 00:00:00 2001 From: Qubasa Date: Tue, 14 Apr 2026 11:36:11 +0200 Subject: [PATCH] improve mycelium argument --- Chapters/Background.tex | 77 +++ Chapters/Results.tex | 496 ++++++++++-------- .../ping/Zerotier_RTT Metrics Comparison.png | Bin 0 -> 29242 bytes Figures/baseline/quic/CPU Usage.png | Bin 0 -> 43577 bytes Figures/baseline/quic/QUIC Bandwidth.png | Bin 0 -> 42474 bytes Figures/baseline/tcp/Max TCP Window Size.png | Bin 0 -> 54113 bytes Figures/baseline/tcp/TCP CPU Utilization.png | Bin 0 -> 54674 bytes Listings/mycelium_find_best_route.rs | 29 + Listings/mycelium_route_constants.rs | 9 + Listings/nebula_conntrack.go | 39 ++ example.bib | 0 main.tex | 10 + master_citations.bib | 22 + 13 files changed, 454 insertions(+), 228 deletions(-) create mode 100644 Figures/baseline/ping/Zerotier_RTT Metrics Comparison.png create mode 100644 Figures/baseline/quic/CPU Usage.png create mode 100644 Figures/baseline/quic/QUIC Bandwidth.png create mode 100644 Figures/baseline/tcp/Max TCP Window Size.png create mode 100644 Figures/baseline/tcp/TCP CPU Utilization.png create mode 100644 Listings/mycelium_find_best_route.rs create mode 100644 Listings/mycelium_route_constants.rs create mode 100644 Listings/nebula_conntrack.go create mode 100644 example.bib diff --git a/Chapters/Background.tex b/Chapters/Background.tex index 94d4517..03e1b88 100644 --- a/Chapters/Background.tex +++ b/Chapters/Background.tex @@ -37,6 +37,83 @@ the 80\% success rate sets a baseline expectation, while the 55-second timeout informs analysis of each implementation's keep-alive behavior during source code review. +\subsection{The Babel routing protocol} +\label{sec:babel} + +Babel~\cite{chroboczek_babel_2021} is a distance-vector routing +protocol designed for both wired and wireless mesh networks. Each +node periodically sends \emph{Hello} messages to discover neighbours +and \emph{Update} messages to advertise reachable prefixes along with +a numeric cost metric. A node selects the route with the lowest +cumulative metric for each destination, subject to a +\emph{feasibility condition} that prevents routing loops. Because +Babel is distance-vector rather than link-state, nodes only know the +cost of their own best path, not the full topology. + +Two properties of Babel matter for the benchmarks in +Chapter~\ref{Results}. First, route advertisements are periodic: a +node will not learn about a new path until the next Update interval, +which can be on the order of minutes depending on the implementation's +timer settings. Second, Babel intentionally resists frequent route +changes to avoid flapping; a node may continue using a suboptimal path +until a significantly better alternative is advertised. Both +properties can cause the selected route for a given destination to +differ across consecutive benchmark runs, even when the physical +topology has not changed. + +\subsection{TCP flow control and congestion control} +\label{sec:tcp_windows} + +TCP uses two window mechanisms to regulate how much unacknowledged data +a sender may have in flight. The \emph{receive window} +(\texttt{rwnd}), also called the \emph{send window} in +\texttt{iperf3} output, is advertised by the receiver and reflects how +much buffer space it has available. The \emph{congestion window} +(\texttt{cwnd}) is maintained locally by the sender and tracks the +network's estimated capacity. At any point, the sender may transmit +up to $\min(\texttt{rwnd}, \texttt{cwnd})$ bytes beyond the last +acknowledged byte \cite{rfc5681}. + +The congestion window starts small (typically a few segments) and +grows during the \emph{slow-start} phase, doubling each round trip +until it reaches a threshold or triggers a loss event. After that, +\emph{congestion avoidance} takes over and the window grows linearly. +When the sender detects a loss (through duplicate ACKs or a +retransmission timeout), it treats the loss as a signal of congestion: +the window is reduced, often halved, and the sender enters a recovery +phase before resuming growth. Each retransmission therefore has a +direct mechanical cost: it shrinks the congestion window and reduces +the instantaneous sending rate. + +The \emph{bandwidth-delay product} (BDP) determines how large the +window must be to fully utilize a link. It is the product of the +link's bandwidth and the round-trip time: +\begin{equation} + \text{BDP} = \text{bandwidth} \times \text{RTT} + \label{eq:bdp} +\end{equation} +A 1\,Gbps link with a 1\,ms RTT has a BDP of 125\,KB: the sender +must keep at least 125\,KB of unacknowledged data in flight to +saturate the link. If the congestion window is smaller than the BDP, +the sender will finish transmitting its window and then wait idle for +acknowledgements, leaving bandwidth unused. High-latency paths make +this problem worse because the BDP grows linearly with RTT. A +34\,ms RTT on the same 1\,Gbps link raises the BDP to 4.25\,MB, well +beyond the default congestion window of most TCP stacks. One common +workaround is to run multiple TCP flows in parallel: each flow +maintains its own congestion window, and their aggregate in-flight +data can approach the BDP even when no single flow could. + +In VPN benchmarks these two windows appear as distinct bottlenecks. A +small receive window means the receiver (or the tunnel endpoint in +front of it) cannot absorb data fast enough. A small congestion +window means the path between sender and receiver is experiencing +loss, forcing TCP into repeated recovery cycles. Comparing congestion +windows across VPNs with different maximum segment sizes requires +care, because the window is measured in bytes: a VPN with jumbo +segments will report a larger byte-valued window for the same number +of in-flight segments. + \subsection{An Overview of Packet Reordering in TCP} TODO \cite{leung_overview_2007} diff --git a/Chapters/Results.tex b/Chapters/Results.tex index 9da7ac8..529c818 100644 --- a/Chapters/Results.tex +++ b/Chapters/Results.tex @@ -132,87 +132,77 @@ VpnCloud, while Hyprspace, Tinc, and Mycelium occupy the bottom tier at under 40\,\% of baseline. Figure~\ref{fig:tcp_throughput} visualizes this hierarchy. -Raw throughput alone is incomplete, however. The retransmit column -reveals that not all high-throughput VPNs get there cleanly. -ZeroTier, for instance, reaches 814\,Mbps but accumulates -1\,163~retransmits per test, over 1\,000$\times$ what WireGuard -needs. ZeroTier compensates for tunnel-internal packet loss by -repeatedly triggering TCP congestion-control recovery, whereas -WireGuard delivers data with negligible in-tunnel loss. The -bare-metal Internal reference sits at 1.7~retransmits per test, -essentially noise, and the VPNs split into three groups around -it: \emph{clean} ($<$110: WireGuard, Yggdrasil, Headscale), -\emph{stressed} (200--900: Tinc, EasyTier, Mycelium, VpnCloud), -and \emph{pathological} ($>$950: Nebula, ZeroTier, Hyprspace). +\begin{figure}[H] + \centering + \includegraphics[width=\textwidth]{{Figures/baseline/tcp/TCP + Throughput}.png} + \caption{Average single-stream TCP throughput} + \label{fig:tcp_throughput} +\end{figure} -% TODO: Is this naming scheme any good? +Raw throughput alone is incomplete. The retransmit rate +(Figure~\ref{fig:tcp_retransmits}) normalizes raw retransmit counts +by estimated packet count, accounting for the different segment sizes +each VPN negotiates (1\,228 to 32\,731 bytes). WireGuard and +Headscale are effectively loss-free ($<$\,0.01\,\%). Tinc, EasyTier, +Nebula, and VpnCloud form a moderate band (0.03--0.06\,\%). +Yggdrasil, ZeroTier, and Mycelium cluster between 0.09\,\% and +0.13\,\%, and Hyprspace is the clear outlier at 0.49\,\%. ZeroTier +reaches 814\,Mbps despite a 0.10\,\% retransmit rate by compensating +for tunnel-internal loss through repeated TCP congestion-control +recovery; WireGuard delivers comparable throughput with effectively +zero loss. \begin{figure}[H] \centering - \begin{subfigure}[t]{\textwidth} - \centering - \includegraphics[width=\textwidth]{{Figures/baseline/tcp/TCP - Throughput}.png} - \caption{Average single-stream TCP throughput} - \label{fig:tcp_throughput} - \end{subfigure} - - \vspace{1em} - - \begin{subfigure}[t]{\textwidth} - \centering - \includegraphics[width=\textwidth]{{Figures/baseline/tcp/TCP - Retransmit Rate}.png} - % TODO: Caption says "retransmits" (counts) but the plot axis shows - % "Retransmit Rate (\%)." Align the caption with the plot. - \caption{TCP retransmit rate (\%)} - \label{fig:tcp_retransmits} - \end{subfigure} - % TODO: This parent caption still says "retransmit count" but the - % subfigure axis and caption were corrected to "retransmit rate (%)." - % Align the parent caption terminology (counts vs rates). - \caption{TCP throughput and retransmit rate at baseline. WireGuard - leads at 864\,Mbps with 1 retransmit. Hyprspace has nearly 5000 - retransmits per test. The retransmit count does not always track - inversely with throughput: ZeroTier achieves high throughput - \emph{despite} high retransmits.} - \label{fig:tcp_results} + \includegraphics[width=\textwidth]{{Figures/baseline/tcp/TCP + Retransmit Rate}.png} + \caption{TCP retransmit rate at baseline. WireGuard and Headscale + are effectively loss-free ($<$\,0.01\,\%). Hyprspace is the clear + outlier at 0.49\,\%.} + \label{fig:tcp_retransmits} \end{figure} Retransmits have a direct mechanical relationship with TCP congestion control: each one triggers a reduction in the congestion window (\texttt{cwnd}) and throttles the sender. -Figure~\ref{fig:retransmit_correlations} shows the relationship: -Hyprspace, with 4965 -retransmits, maintains the smallest max congestion window in the -dataset (205\,KB), while Yggdrasil's 75 retransmits allow a 4.3\,MB -window, the largest of any VPN. At first glance this suggests a -clean inverse correlation between retransmits and congestion window -size, but the picture is misleading. Yggdrasil's outsized window is -largely an artifact of its jumbo overlay MTU (32\,731 bytes): each -segment carries far more data, so the window in bytes is inflated -relative to VPNs using a standard ${\sim}$1\,400-byte MTU. Comparing -congestion windows across different MTU sizes is not meaningful -without normalizing for segment size. The reliable conclusion is -simpler: high retransmit rates force TCP to spend more time in -congestion recovery than in steady-state transmission, and that -caps throughput regardless of available bandwidth. ZeroTier -illustrates the opposite extreme: brute-force retransmission can -still yield high throughput (814\,Mbps with 1\,163 retransmits), at -the cost of wasted bandwidth and unstable flow behavior. +Figure~\ref{fig:tcp_window} shows the raw window sizes, and +Figure~\ref{fig:retransmit_correlations} plots them against retransmit +rate. Hyprspace, with a 0.49\,\% retransmit rate, maintains the +smallest max congestion window in the dataset (200\,KB), while +Yggdrasil's 0.09\,\% rate allows a 4.2\,MB window, the largest of +any VPN. At +first glance this suggests a clean inverse correlation between +retransmit rate and congestion window size, but the picture is +misleading. Yggdrasil's outsized window is largely an artifact of +its jumbo overlay MTU (32\,731 bytes): each segment carries far more +data, so the window in bytes is inflated relative to VPNs using a +standard ${\sim}$1\,400-byte MTU. Comparing congestion windows +across different MTU sizes is not meaningful without normalizing for +segment size. The reliable conclusion is simpler: high retransmit +rates force TCP to spend more time in congestion recovery than in +steady-state transmission, and that caps throughput regardless of +available bandwidth. ZeroTier illustrates the opposite extreme: +brute-force retransmission can still yield high throughput +(814\,Mbps at a 0.10\,\% rate), at the cost of wasted bandwidth and +unstable flow behavior. + +\begin{figure}[H] + \centering + \includegraphics[width=\textwidth]{{Figures/baseline/tcp/Max TCP + Window Size}.png} + \caption{Maximum TCP window sizes (send and congestion) at baseline. + Yggdrasil's congestion window (4\,219\,KB) dwarfs all others but + is inflated by its 32\,KB jumbo overlay MTU. Hyprspace has the + smallest congestion window (200\,KB).} + \label{fig:tcp_window} +\end{figure} VpnCloud stands out: its sender reports 538.8\,Mbps but the receiver measures only 413.4\,Mbps, a 23\,\% gap and the largest in the dataset. This points to significant in-tunnel packet loss -or buffering at the VpnCloud layer that the retransmit count (857) -alone does not fully explain. -% TODO: Clarify whether the headline TCP table -% (Table~\ref{tab:tcp_baseline}, 539\,Mbps for VpnCloud) reports -% sender or receiver throughput. The prose here cites sender -% 538.8 vs.\ receiver 413.4 --- the 539 figure matches the sender -% column, so the table caption should say so explicitly. Same -% clarification needed for Hyprspace (368 in table vs.\ sender -% 367.9 / receiver 419.8 in the pathological-cases paragraph). +or buffering at the VpnCloud layer that the retransmit rate +(0.06\,\%) alone does not fully explain. Variability, whether stochastic across runs or systematic across links, also differs substantially. WireGuard's three link @@ -243,14 +233,14 @@ on every direction. \caption{Retransmits vs.\ max congestion window} \label{fig:retransmit_cwnd} \end{subfigure} - \caption{Retransmit correlations (log scale on x-axis). High - retransmits do not always mean low throughput (ZeroTier: 1\,163 - retransmits, 814\,Mbps), but extreme retransmits do (Hyprspace: - 4\,965 retransmits, 368\,Mbps). The apparent inverse correlation - between retransmits and congestion window size is dominated by + \caption{Retransmit correlations (log scale on x-axis). A high + retransmit rate does not always mean low throughput (ZeroTier: + 0.10\,\%, 814\,Mbps), but an extreme rate does (Hyprspace: + 0.49\,\%, 368\,Mbps). The apparent inverse correlation between + retransmit rate and congestion window size is dominated by Yggdrasil's outlier (4.3\,MB \texttt{cwnd}), which is inflated - by its 32\,KB jumbo overlay MTU rather than by low retransmits - alone.} + by its 32\,KB jumbo overlay MTU rather than by a low retransmit + rate alone.} \label{fig:retransmit_correlations} \end{figure} @@ -258,29 +248,35 @@ on every direction. Sorting by latency rearranges the rankings considerably. Table~\ref{tab:latency_baseline} lists the average ping round-trip -times, which cluster into three distinct ranges. +times, which cluster into three distinct ranges. The table also +reports the average maximum RTT observed across test runs and the +resulting spike ratio (max/avg); a high ratio signals bursty tail +latency that the average alone conceals. \begin{table}[H] \centering - \caption{Average ping RTT at baseline, sorted by latency} + \caption{Ping RTT statistics at baseline, sorted by average latency. + The spike ratio is max\,RTT\,/\,avg\,RTT; higher values indicate + bursty tail latency.} \label{tab:latency_baseline} - \begin{tabular}{lr} + \begin{tabular}{lrrrr} \hline - \textbf{VPN} & \textbf{Avg RTT (ms)} \\ + \textbf{VPN} & \textbf{Avg RTT (ms)} & \textbf{Max RTT (ms)} + & \textbf{Spike Ratio} & \textbf{Jitter (ms)} \\ \hline - Internal & 0.60 \\ - VpnCloud & 1.13 \\ - Tinc & 1.19 \\ - WireGuard & 1.20 \\ - Nebula & 1.25 \\ - ZeroTier & 1.28 \\ - EasyTier & 1.33 \\ + Internal & 0.60 & 0.65 & 1.1$\times$ & 0.04 \\ + VpnCloud & 1.13 & 3.14 & 2.8$\times$ & 0.25 \\ + Tinc & 1.19 & 1.31 & 1.1$\times$ & 0.07 \\ + WireGuard & 1.20 & 1.81 & 1.5$\times$ & 0.13 \\ + Nebula & 1.25 & 1.53 & 1.2$\times$ & 0.10 \\ + ZeroTier & 1.28 & 3.00 & 2.3$\times$ & 0.25 \\ + EasyTier & 1.33 & 1.55 & 1.2$\times$ & 0.10 \\ \hline - Headscale & 1.64 \\ - Hyprspace & 1.79 \\ - Yggdrasil & 2.20 \\ + Headscale & 1.64 & 1.81 & 1.1$\times$ & 0.09 \\ + Hyprspace & 1.79 & 2.21 & 1.2$\times$ & 0.13 \\ + Yggdrasil & 2.20 & 3.13 & 1.4$\times$ & 0.20 \\ \hline - Mycelium & 34.9 \\ + Mycelium & 34.9 & 48.6 & 1.4$\times$ & 1.49 \\ \hline \end{tabular} \end{table} @@ -296,13 +292,16 @@ moderate overhead. Then there is Mycelium at 34.9\,ms, so far removed from the rest that Section~\ref{sec:mycelium_routing} gives it a dedicated analysis. -% TODO: The max RTT claim (8.6 ms) is not visible in the Average RTT -% plot. Add a max-RTT figure or table, or reference the raw data -% source. -ZeroTier's average of 1.28\,ms looks unremarkable, but its maximum -RTT spikes to 8.6\,ms, a 6.8$\times$ jump and the largest for any -sub-2\,ms VPN. These spikes point to periodic control-plane -interference that the average hides. +The spike-ratio column in Table~\ref{tab:latency_baseline} exposes two +outliers among the low-latency VPNs. VpnCloud leads at +2.8$\times$ (avg 1.13\,ms, max 3.14\,ms) and ZeroTier follows at +2.3$\times$ (avg 1.28\,ms, max 3.00\,ms); both share the highest +jitter in the table (0.25\,ms). Tinc and Headscale, by contrast, +stay below 1.1$\times$ with jitter under 0.09\,ms, so their packet +timing is nearly as stable as bare metal. The spikes in VpnCloud and +ZeroTier are consistent with periodic +control-plane work such as key rotation or peer heartbeats that +briefly stalls the data path. \begin{figure}[H] \centering @@ -315,43 +314,42 @@ interference that the average hides. Tinc presents a paradox: it has the third-lowest latency (1.19\,ms) but only the second-lowest throughput (336\,Mbps). Packets traverse -the tunnel quickly, yet something caps the overall rate. The qperf -benchmark reports Tinc maxing out at 14.9\,\% total system CPU while -delivering 336\,Mbps. On a multi-core host this figure is consistent +the tunnel quickly, yet something caps the overall rate. +Figure~\ref{fig:tcp_cpu} shows that Tinc uses only 12.3\,\% host CPU +during the TCP test. On a multi-core host this figure is consistent with a single saturated core, which fits Tinc's single-threaded userspace architecture: one core encrypts, copies, and forwards -packets, and the remaining cores sit idle. But VpnCloud reports the -same 14.9\,\% and still reaches 539\,Mbps (60\,\% more than Tinc), -so whole-system CPU alone cannot explain the gap, and a per-packet -processing cost difference must also be in play. -% TODO: 14.9\% total CPU does not pin the bottleneck on its own. -% This is whole-system utilization on a multi-core machine, and a -% single saturated core fits the budget — but VpnCloud reports the -% same 14.9\% \emph{and} reaches 539\,Mbps. Verify with per-thread -% CPU sampling or eBPF profiling to confirm the single-core story -% and quantify the per-packet cost difference. +packets, and the remaining cores sit idle. + +\begin{figure}[H] + \centering + \includegraphics[width=\textwidth]{{Figures/baseline/tcp/TCP CPU + Utilization}.png} + \caption{CPU utilization during TCP throughput tests, split by host + (sender) and remote (receiver). Tinc (12.3\,\%) and VpnCloud + (14.2\,\%) use similar CPU, yet VpnCloud achieves 60\,\% higher + throughput. Yggdrasil's low CPU (2.7\,\%) reflects its + kernel-level forwarding with jumbo segments.} + \label{fig:tcp_cpu} +\end{figure} + +VpnCloud is also +single-threaded and uses slightly more CPU (14.2\,\%), yet reaches +539\,Mbps (60\,\% more throughput). The gap comes down to per-packet +cost. Tinc uses a hand-written ChaCha20-Poly1305 implementation +without hardware acceleration, allocates a fresh stack buffer and +copies the payload for each packet, and routes through a splay-tree +lookup. VpnCloud uses the \texttt{ring} cryptographic library, which +employs optimized assembly and can select AES-128-GCM with hardware +AES-NI instructions at runtime; it encrypts in place with no extra +buffer copies and routes through an $O(1)$ hash-map lookup. These +differences compound in a tight single-threaded loop: every +microsecond saved per packet raises the maximum packet rate the one +available core can sustain. + Figure~\ref{fig:latency_throughput} makes this disconnect easy to spot. -% TODO: These CPU numbers are stated inline but never shown in a plot -% or table. Add a CPU utilization figure or table so readers can -% verify. Also, the claim that WireGuard's CPU usage "goes to -% cryptographic processing" is unsubstantiated: no profiling data -% is presented. Either add profiling evidence or soften to -% "likely" / "presumably." -The qperf measurements also reveal a wide spread in CPU usage. -Hyprspace (55.1\,\%) and Yggdrasil -(52.8\,\%) consume 5--6$\times$ as much CPU as Internal's -9.7\,\%. WireGuard sits at 30.8\,\%, higher than expected for a -kernel-level implementation; in-kernel cryptographic processing -is the likely cause, though no profiling data confirms this. -On the efficient end, VpnCloud -(14.9\,\%), Tinc (14.9\,\%), and EasyTier (15.4\,\%) use the least -CPU time. Nebula and Headscale are missing from -this comparison because qperf failed for both. - -%TODO: Explain why they consistently failed - \begin{figure}[H] \centering \includegraphics[width=\textwidth]{Figures/baseline/latency-vs-throughput.png} @@ -365,10 +363,7 @@ this comparison because qperf failed for both. \subsection{Parallel TCP Scaling} -The single-stream benchmark tests one link direction at a time. % -% TODO: The plot labels this benchmark "10-stream parallel" but this -% description says "six unidirectional flows." Verify the actual test -% configuration and reconcile the two. +The single-stream benchmark tests one link direction at a time. The parallel benchmark changes this setup: all three link directions (lom$\rightarrow$yuki, yuki$\rightarrow$luna, @@ -411,26 +406,25 @@ Table~\ref{tab:parallel_scaling} lists the results. \end{table} The VPNs that gain the most are those most constrained in -single-stream mode. Mycelium's 34.9\,ms RTT means a lone TCP stream -can never fill the pipe: the bandwidth-delay product (the amount - of in-flight data a TCP flow needs to saturate a link, equal to the -link bandwidth times the round-trip time) demands a window larger -than any single flow maintains, so multiple concurrent flows -compensate for that constraint and push throughput to 2.20$\times$ -the single-stream figure. Hyprspace scales almost as well -(2.18$\times$) for the same reason but with a different -bottleneck. Its libp2p send pipeline accumulates roughly -2\,800\,ms of under-load latency -(Section~\ref{sec:hyprspace_bloat}), which gives any single TCP -flow a bandwidth-delay product on the order of hundreds of -megabytes to fill, far beyond any single kernel cwnd. And -because Hyprspace keys \texttt{activeStreams} by destination -\texttt{peer.ID} (Listing~\ref{lst:hyprspace_sendpacket}), the -three concurrent peer pairs in the parallel benchmark each get -their own libp2p stream, their own mutex, and their own yamux -flow-control window. The three TCP senders therefore maintain -three independent windows in flight, and three windows fill -more of the bloated pipeline than one can. +single-stream mode. Mycelium's 34.9\,ms RTT gives it a +bandwidth-delay product (Equation~\ref{eq:bdp}) of roughly +4.4\,MB on a 1\,Gbps link. No single TCP flow maintains a +congestion window that large, so the link is never fully utilized. +Multiple concurrent flows each contribute their own window, and +their aggregate in-flight data approaches the BDP, which pushes +throughput to 2.20$\times$ the single-stream figure. + +Hyprspace scales almost as well (2.18$\times$) for the same +structural reason, but the bottleneck is different. Its libp2p send +pipeline accumulates roughly 2\,800\,ms of under-load latency +(Section~\ref{sec:hyprspace_bloat}), which inflates the effective BDP +to hundreds of megabytes, far beyond any single kernel congestion +window. Because Hyprspace keys \texttt{activeStreams} by destination +\texttt{peer.ID} (Listing~\ref{lst:hyprspace_sendpacket}), the three +concurrent peer pairs in the parallel benchmark each get their own +libp2p stream, their own mutex, and their own yamux flow-control +window. Three independent windows in flight fill more of the bloated +pipeline than one can. % TODO: This is still a hypothesis: it generalises the same % bandwidth-delay-product argument used for Mycelium directly % above, and is now grounded in the per-peer @@ -445,23 +439,41 @@ Tinc picks up a single-threaded CPU busy during what would otherwise be idle gaps in a single flow. -% TODO: "zero retransmits" in parallel mode is not shown in any table -% or figure. Add parallel-mode retransmit data or remove the claim. WireGuard and Internal both scale cleanly at around -1.48--1.50$\times$ with zero retransmits. This is consistent -with WireGuard's overhead being a fixed per-packet cost that does -not worsen under multiplexing. +1.48--1.50$\times$ with a 0.00\,\% retransmit rate in both modes. +This is consistent with WireGuard's overhead being a fixed per-packet +cost that does not worsen under multiplexing. Nebula is the only VPN that actually gets \emph{slower} with more streams: throughput drops from 706\,Mbps to 648\,Mbps -(0.92$\times$) while retransmits jump from 955 to 2\,462. The -streams are clearly fighting each other for resources inside the -tunnel. +(0.92$\times$). The cause is lock contention in Nebula's firewall +connection tracker (Listing~\ref{lst:nebula_conntrack}). A single +\texttt{sync.Mutex} protects the global \texttt{Conns} map, and every +packet in both directions must acquire it. The lock holder also +purges the timer wheel before releasing the lock, so other goroutines +stall while that housekeeping runs. Nebula mitigates this with a +per-routine cache that bypasses the global lock for known flows, but +the cache is invalidated every second, at which point all goroutines +contend on the mutex again. With parallel streams, the increased +goroutine count turns this periodic contention into a throughput +bottleneck. -More streams also amplify existing retransmit problems. Hyprspace -climbs from 4\,965 to 17\,426~retransmits; -VpnCloud from 857 to 6\,023. VPNs that were clean in single-stream -mode stay clean under load, while the stressed ones only get worse. +\lstinputlisting[language=Go,caption={Nebula's firewall conntrack: a + global mutex protects the connection map and is acquired on every + packet. + \textit{nebula/firewall.go:79--84, +486--558}},label={lst:nebula_conntrack}]{Listings/nebula_conntrack.go} + +Retransmit rates under parallel load shift in two directions. +VpnCloud's rate climbs from 0.06\,\% to 0.14\,\% (2.5$\times$) and +Yggdrasil's from 0.09\,\% to 0.23\,\% (2.7$\times$), so +multiplexing genuinely increases loss for these VPNs. Hyprspace's +rate, by contrast, drops slightly from 0.49\,\% to 0.39\,\% even +though it sends far more data in parallel; the per-packet loss +probability does not worsen, but the absolute count still triples +because three pairs are transmitting simultaneously. VPNs that were +clean in single-stream mode (WireGuard, Internal) stay clean under +parallel load. \begin{figure}[H] \centering @@ -938,81 +950,109 @@ no flow-control signal coupling the two. \textit{hyprspace/node/node.go:36--39, 282, 328--348}},label={lst:hyprspace_sendpacket}]{Listings/hyprspace_sendpacket.go} -\paragraph{Mycelium: Routing Anomaly.} +\paragraph{Mycelium: routing anomaly.} \label{sec:mycelium_routing} -Mycelium's 34.9\,ms average latency appears to be the cost of -routing through a global overlay. The per-path -numbers, however, -reveal a bimodal distribution: +Mycelium's 34.9\,ms average latency looks like a +straightforward cost of routing through a global +overlay. The per-path numbers do not fit this +explanation: \begin{itemize} - \bitem{luna$\rightarrow$lom:} 1.63\,ms (direct - path, comparable + \bitem{luna$\rightarrow$lom:} 1.63\,ms (comparable to Headscale at 1.64\,ms) - \bitem{lom$\rightarrow$yuki:} 51.47\,ms (overlay-routed) - \bitem{yuki$\rightarrow$luna:} 51.60\,ms (overlay-routed) + \bitem{lom$\rightarrow$yuki:} 51.47\,ms + \bitem{yuki$\rightarrow$luna:} 51.60\,ms \end{itemize} -One of the three links has found a direct route; the -other two still -bounce through the overlay. All three machines sit on the same -% TODO: Characterising path discovery as "failing -% intermittently" assumes -% direct routing is the expected outcome on a LAN. -% Mycelium is designed -% as a global overlay and may intentionally route -% through supernodes. -% If this is by-design behaviour, rephrase to avoid -% implying a bug. -% This characterisation also propagates to the -% impairment ping analysis -% in Section sec:impairment, which says impairment "pushes path -% discovery toward shorter routes." -% TODO: The throughput data INVERTS the latency split -% rather than -% "mirroring" it. The direct path (luna→lom, 1.63 ms -% RTT) achieves -% only 122 Mbps, while the overlay-routed path -% (yuki→luna, 51.60 ms -% RTT) reaches 379 Mbps: the opposite of what TCP -% theory predicts. -% The plot also shows luna→lom receiver throughput at -% only 57.2 Mbps -% (a 53% sender/receiver gap on that link). Explain -% why the direct -% path is 3× slower than the overlay path, or acknowledge the -% contradiction. The current wording "mirrors the -% split" is incorrect. -physical network, so Mycelium's path discovery is not -consistently -selecting the direct route, a more specific problem -than blanket overlay -overhead. Throughput shows a similarly lopsided split: -yuki$\rightarrow$luna reaches 379\,Mbps while -luna$\rightarrow$lom manages only 122\,Mbps, a 3:1 gap. In -bidirectional mode, the reverse direction on that -worst link drops -to 58.4\,Mbps, the lowest single-direction figure in the entire -dataset. +One link found a direct LAN path; the other two +bounced through the overlay. All three machines sit on +the same physical network, so the split is not a matter +of topology. + +The throughput results invert the latency ranking. +The link with the low ping latency, +luna$\rightarrow$lom at 1.63\,ms, should be the fastest +according to TCP congestion theory. It is the slowest: +122\,Mbps, with the reverse direction dropping to +58.4\,Mbps in bidirectional mode. Meanwhile +yuki$\rightarrow$luna, whose ICMP~RTT was 30$\times$ +higher, reaches 379\,Mbps +(Figure~\ref{fig:mycelium_paths}). The throughput +ranking is the exact inverse of what the ping data +predicts. + +The explanation is in the iperf3 logs. Each TCP stream +reports a kernel-measured RTT that is independent of +ICMP ping. For the luna$\rightarrow$lom stream, this +TCP~RTT starts at 51.6\,ms and climbs to a mean of +144\,ms over the 30-second run, with +757~retransmits---the link was clearly overlay-routed +during the throughput test, even though ping had found a +direct path eight minutes earlier. For +yuki$\rightarrow$luna the reverse happened: the TCP +stream measured only 12--22\,ms, and its bidirectional +return path recorded 1.0\,ms, a direct LAN connection +that the earlier ICMP test had not seen. The routes +changed between the two tests. + +Mycelium uses the Babel routing protocol +(Section~\ref{sec:babel}) to discover and select paths. +Two properties of its implementation explain why routes +shifted mid-benchmark. First, Mycelium advertises +routes at a five-minute interval +(Listing~\ref{lst:mycelium_constants}): + +\lstinputlisting[language=Rust,caption={Mycelium's + Babel timing constants. Routes are re-advertised + every 300\,s; the router will not learn about a new + path until the next cycle. +\textit{mycelium/src/router.rs:33--59}},label={lst:mycelium_constants}]{Listings/mycelium_route_constants.rs} + +A direct path that appears between update cycles is +invisible to the router until the next advertisement +arrives. The benchmark's ping and throughput tests ran +sequentially with several minutes between them, so each +test observed whichever route happened to be selected at +that point in Babel's five-minute cycle. + +Second, even when a better route \emph{is} advertised, +the router resists switching to it. +Listing~\ref{lst:mycelium_best_route} shows the +\texttt{find\_best\_route} function: a candidate route +is rejected unless its metric improves on the current +route by more than 10, or unless it is directly +connected (metric~0). This hysteresis prevents +flapping but also means that an overlay path, once +established, can persist for the remainder of the +update interval even after a shorter path becomes +available. + +\lstinputlisting[language=Rust,caption={Route + selection with hysteresis. Lines~16--25 reject a + candidate route unless it is directly connected or + improves the composite metric by more than + \texttt{SIGNIFICANT\_METRIC\_IMPROVEMENT}\,(10). +\textit{mycelium/src/router.rs:1213--1238}},label={lst:mycelium_best_route}]{Listings/mycelium_find_best_route.rs} + +The five-minute update interval and the switching +hysteresis together explain the throughput asymmetry. +The TCP-measured RTTs +are consistent with the observed throughput on every +link; only the ICMP~RTTs, measured minutes earlier under +a different routing state, give the impression of an +inversion. \begin{figure}[H] \centering \includegraphics[width=\textwidth]{{Figures/baseline/tcp/Mycelium/Average Throughput}.png} - % TODO: The caption attributes the asymmetry to - % "inconsistent direct - % route discovery" but the direct-route link - % (luna→lom, 1.63 ms RTT) - % is actually the SLOWEST (122 Mbps). The caption - % should address - % why the direct path underperforms the overlay paths. - \caption{Per-link TCP throughput for Mycelium, showing extreme - path asymmetry. The 3:1 ratio between best - (yuki$\rightarrow$luna, 379\,Mbps) and worst - (luna$\rightarrow$lom, 122\,Mbps) links does not - correlate with - the latency split (Section~\ref{sec:mycelium_routing}).} + \caption{Per-link TCP throughput for Mycelium. The + luna$\rightarrow$lom link appears slow despite its + low ping latency because Babel had switched to an + overlay route by the time the throughput test ran. + The TCP-level RTTs reported by iperf3, not the + earlier ICMP measurements, explain the 3:1 ratio.} \label{fig:mycelium_paths} \end{figure} diff --git a/Figures/baseline/ping/Zerotier_RTT Metrics Comparison.png b/Figures/baseline/ping/Zerotier_RTT Metrics Comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..0e2fdc78075dd41ec25009966020dfdb484dfc2f GIT binary patch literal 29242 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

L(}st>$p#_l&2a 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 L)z4*}Q$iB}dY?A% literal 0 HcmV?d00001 diff --git a/Figures/baseline/quic/CPU Usage.png b/Figures/baseline/quic/CPU Usage.png new file mode 100644 index 0000000000000000000000000000000000000000..0745e92fa0fa0d1beda5669635eb4be7a700d784 GIT binary patch literal 43577 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 XkKaAiZOvw2U|{fc^>bP0l+XkKS|-+J literal 0 HcmV?d00001 diff --git a/Figures/baseline/quic/QUIC Bandwidth.png b/Figures/baseline/quic/QUIC Bandwidth.png new file mode 100644 index 0000000000000000000000000000000000000000..10ffadc1a194d4597f69fafe11dfb5620be7327b GIT binary patch literal 42474 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 literal 0 HcmV?d00001 diff --git a/Figures/baseline/tcp/Max TCP Window Size.png b/Figures/baseline/tcp/Max TCP Window Size.png new file mode 100644 index 0000000000000000000000000000000000000000..347f53501ac621b6a24c66c3fc3238f3c512779f GIT binary patch literal 54113 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 JF6*2Ung9a7#UB6w literal 0 HcmV?d00001 diff --git a/Figures/baseline/tcp/TCP CPU Utilization.png b/Figures/baseline/tcp/TCP CPU Utilization.png new file mode 100644 index 0000000000000000000000000000000000000000..8a3fcdd0255ab3345411384552be8bc4f8bd664f GIT binary patch literal 54674 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 JS?83{1OS(|7tH_w literal 0 HcmV?d00001 diff --git a/Listings/mycelium_find_best_route.rs b/Listings/mycelium_find_best_route.rs new file mode 100644 index 0000000..6109c9a --- /dev/null +++ b/Listings/mycelium_find_best_route.rs @@ -0,0 +1,29 @@ +fn find_best_route<'a>(&self, routes: &'a RouteList) + -> Option<&'a RouteEntry> +{ + let source_table = self.source_table.read().unwrap(); + let current = routes.selected(); + let best = routes + .iter() + .filter(|re| !re.metric().is_infinite() + && source_table.route_feasible(re)) + .min_by_key(|re| + re.metric() + Metric::from(re.neighbour().link_cost())); + + if let (Some(best), Some(current)) = (best, current) { + // Only switch if the metric is significantly better + // OR if the route is directly connected (metric 0). + if (best.source() != current.source() + || best.neighbour() != current.neighbour()) + && !(best.metric() + + Metric::from(best.neighbour().link_cost()) + < current.metric() + + Metric::from(current.neighbour().link_cost()) + - SIGNIFICANT_METRIC_IMPROVEMENT + || best.metric().is_direct()) + { + return Some(current); // keep existing route + } + } + best +} diff --git a/Listings/mycelium_route_constants.rs b/Listings/mycelium_route_constants.rs new file mode 100644 index 0000000..835eee8 --- /dev/null +++ b/Listings/mycelium_route_constants.rs @@ -0,0 +1,9 @@ +/// Time between HELLO messages, in seconds +const HELLO_INTERVAL: u64 = 20; +/// Max time used in UPDATE packets. +const UPDATE_INTERVAL: Duration = + Duration::from_secs(HELLO_INTERVAL * 3 * 5); // 300 s + +/// The amount a metric of a route needs to improve +/// before we will consider switching to it. +const SIGNIFICANT_METRIC_IMPROVEMENT: Metric = Metric::new(10); diff --git a/Listings/nebula_conntrack.go b/Listings/nebula_conntrack.go new file mode 100644 index 0000000..a0c5418 --- /dev/null +++ b/Listings/nebula_conntrack.go @@ -0,0 +1,39 @@ +type FirewallConntrack struct { + sync.Mutex + + Conns map[firewall.Packet]*conn + TimerWheel *TimerWheel[firewall.Packet] +} + +func (f *Firewall) inConns( + fp firewall.Packet, h *HostInfo, + caPool *cert.CAPool, + localCache firewall.ConntrackCache, +) bool { + if localCache != nil { + if _, ok := localCache[fp]; ok { + return true + } + } + conntrack := f.Conntrack + conntrack.Lock() + + // Purge every time we test + ep, has := conntrack.TimerWheel.Purge() + if has { + f.evict(ep) + } + + c, ok := conntrack.Conns[fp] + if !ok { + conntrack.Unlock() + return false + } + // ... update expiry ... + conntrack.Unlock() + + if localCache != nil { + localCache[fp] = struct{}{} + } + return true +} diff --git a/example.bib b/example.bib new file mode 100644 index 0000000..e69de29 diff --git a/main.tex b/main.tex index 836c9fd..016c240 100644 --- a/main.tex +++ b/main.tex @@ -98,6 +98,16 @@ morestring=[b]", sensitive=true, } +\lstdefinelanguage{Rust}{ + morekeywords={as,break,const,continue,crate,else,enum,extern,false,fn,for, + if,impl,in,let,loop,match,mod,move,mut,pub,ref,return,self,Self,static, + struct,super,trait,true,type,unsafe,use,where,while,async,await,dyn, + Some,None,Option,Result,Ok,Err,Duration}, + morecomment=[l]{//}, + morecomment=[s]{/*}{*/}, + morestring=[b]", + sensitive=true, +} \lstdefinelanguage{Go}{ morekeywords={break,case,chan,const,continue,default,defer,else,fallthrough, for,func,go,goto,if,import,interface,map,package,range,return,select, diff --git a/master_citations.bib b/master_citations.bib index f575833..e9cbe95 100644 --- a/master_citations.bib +++ b/master_citations.bib @@ -617,3 +617,25 @@ PDF:/home/lhebendanz/Zotero/storage/KM9D625Y/Whitner et al. - 2008 - Improved Packet Reordering Metrics.pdf:application/pdf}, } + +@misc{rfc5681, + title = {TCP Congestion Control}, + author = {Allman, Mark and Paxson, Vern and Blanton, Ethan}, + year = {2009}, + month = sep, + howpublished = {RFC 5681}, + doi = {10.17487/RFC5681}, + url = {https://www.rfc-editor.org/rfc/rfc5681}, + note = {Obsoletes RFC 2581}, +} + +@misc{chroboczek_babel_2021, + title = {The {Babel} Routing Protocol}, + author = {Chroboczek, Juliusz and Schinazi, David}, + year = {2021}, + month = jun, + howpublished = {RFC 8966}, + doi = {10.17487/RFC8966}, + url = {https://www.rfc-editor.org/rfc/rfc8966}, + note = {Obsoletes RFC 6126}, +}