Files
bachelor-thesis/data/chap05.tex
2026-05-21 01:56:53 +08:00

46 lines
4.7 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
% !TEX root = ../bachelor-thesis.tex
\chapter{实验验证与分析}
\label{chap:实验验证与分析}
本章主要介绍系统的实现情况及实验结果。\ref{sec:试验环境}节介绍本文提出的设计方案的实现情况及实验环境与实验设置等基本信息,\ref{sec:实验结果}节展示了实验结果,并对其进行了简要的分析。
\section{实验环境}
\label{sec:实验环境}
本文作者使用Rust语言实现了设计的分布式转发与控制系统实现了动态FEC编解码、丢包统计及参数自动计算等所有核心设计要点。本文实验在一台配备两颗Intel Xeon E5-2620 v3处理器的服务器上进行整机共提供12个物理核心、24个逻辑CPU。服务器共搭载\SI{64}{GiB}运行内存。本文中的实验使用Rattan\cite{wang2025rattan}对网络上的丢包延迟及带宽限速进行模拟。在实验中多台不同的虚拟机通过虚拟交换机互联并在每台虚拟机的虚拟出口使用Rattan对网络流量进行处理以达成对链路延迟、丢包带宽等不同性质的模拟。如图\ref{fig:实验拓扑}在实验中共使用三台虚拟机记作ABC作为转发以及用户接入客户端使用另外一台虚拟机作为控制器。利用控制器建立A经由B到达C的链路其中AB间的链路为模拟低质量链路存在丢包往返时延\SI{50}{ms}BC间的链路为模拟高质量链路为不丢包的链路往返时延\SI{50}{ms}。两条链路的带宽均为\SI{100}{Mbps}。通过调整AB间链路的丢包率并测量AC之间的传输性能可以测量本文提出的方法与直接进行转发的基准方案的性能并进行对比。
实验时分别选取丢包率取从0至2\%的不同值分别使用本文提出的动态链路优化算法与直接进行转发的方法在A、C间使用iperf3进行测速持续\SI{60}{s},并记录收端的接收速率。
\begin{figure}[H]
\centering
\includegraphics[width=.8\linewidth]{exp_topology.drawio.pdf}
\caption{实验建立的网络拓扑}
\label{fig:实验拓扑}
\end{figure}
\section{实验结果与分析}
\label{sec:实验结果}
实验结果如图\ref{fig:实验结果图}所示。图\ref{fig:吞吐绝对值}展示了不同丢包率下两种方法的端到端吞吐量,图\ref{fig:吞吐相对提升}展示了本文方法相对于直接转发基准方案的吞吐提升程度。
\begin{figure}[H]
\centering
\subcaptionbox{不同丢包率下的端到端吞吐量\label{fig:吞吐绝对值}}
{\includegraphics[width=0.48\linewidth]{thpt_absolute.pdf}}
\hspace{0.02\linewidth}
\subcaptionbox{相对于基准方案的吞吐提升\label{fig:吞吐相对提升}}
{\includegraphics[width=0.48\linewidth]{thpt_speedup.pdf}}
\caption{不同丢包率下本文方法的吞吐性能提升}
\label{fig:实验结果图}
\end{figure}
与基线方法相比本文方法在较高丢包率下仍旧保持了较高的总体带宽并达到了最高3.6倍带宽提升。通过查阅控制器日志可以发现本方法正确识别了两条链路中的不同丢包率并在丢包严重的AB段链路上启用了FEC在没有丢包的链路上则始终使用普通转发。
尽管本方法使用了FEC方法对链路丢包进行了恢复并有效提升了整体吞吐量但是相比无丢包时仍旧有较大的吞吐性能差距。这一方面是由于添加冗余信息占用了一部分带宽导致理想状态下应用可用的带宽下降另一方面是由于由于冗余参数的选取较为保守即使添加了FEC也有一定概率会出现丢包导致发送端仍旧不能保证没有丢包发生这些丢包会导致发送端丢包降低发送速率。最终冗余带宽占用和残余丢包两种因素叠加导致即使使用了本方法传输速率仍旧有所下降。
值得注意的是虽然从本方法的吞吐量从无丢包至有丢包有较大下降但是随着丢包率的增高吞吐量的下降程度明显小于直接转发行为这是由于本方法的动态FEC参数决定算法动态根据测量得到的丢包率参数决定了合适的冗余度从而有效地将修复后的丢包率维持在较为固定的范围内因而尽管底层链路的丢包率持续恶化但是上层TCP连接感知的丢包率却始终稳定使得最终的吞吐量也稳定在较为稳定的范围内。
在丢包率为零的场景下使用直接转发能达到比使用本方法略高的性能这主要是由于本方法所使用的FEC算法在不启用冗余时也仍旧需要在数据包中传输少量额外的包头导致吞吐量相比直接转发有大约1\%的下降,相比于存在丢包场景下的性能提升较小。