交叉互审

This commit is contained in:
2026-05-24 23:07:56 +08:00
parent 777de62c06
commit 08ae3049e7
8 changed files with 27 additions and 23 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -3,11 +3,11 @@
% 中英文摘要和关键字
\begin{abstract}
跨域覆盖网络需要为用户提供稳定的低延迟、高带宽和低丢包传输服务的同时降低运营成本。传统方案通常依赖专线链路保证服务质量,但专线成本较高。已有链路调度方法尝试在公网质量较好时使用公网分流,但实际测量表明,公网链路质量下降时段往往与用户流量高峰重合,难以有效削减专线峰值成本。已有端到端冗余编码方法能够缓解丢包影响,但未区分不同链路片段的质量差异,容易在质量良好的片段上引入额外带宽开销。
跨域覆盖网络需要为用户提供稳定的低延迟、高带宽和低丢包传输服务的同时降低运营成本。传统方案通常依赖专线链路保证服务质量,但专线根据带宽成本计算,且成本较高。已有的成本优化方法主要分为两类,链路调度方法尝试在公网质量较好时使用公网分流,但实际测量表明,公网链路质量下降时段往往与用户流量高峰重合,难以有效削减专线峰值成本。已有端到端冗余编码方法能够缓解丢包影响,但未区分不同链路片段的质量差异,容易在质量良好的片段上引入额外带宽开销。
针对上述问题,本文提出一种面向跨域公网覆盖网络的分段链路质量修复方法。该方法在全公网互联的前提下仅对低质量链路片段启用前向纠错编码。本文设计了交织XOR分组编码方案以承载各类数据流并降低连续丢包的影响建立三状态丢包信道模型根据解码端上报的丢包统计动态选择编码参数同时设计基于PI控制器的输出速率控制机制缓解FEC解码按组恢复导致的突发输出问题。
针对上述问题,本文提出一种面向跨域公网覆盖网络的分段链路质量修复方法。该方法在全部使用公网连接的前提下仅对低质量链路片段启用前向纠错编码。本文设计了交织XOR分组编码方案以承载各类数据流并降低连续丢包的影响建立三状态丢包信道模型根据解码端上报的丢包统计动态选择编码参数同时设计基于PI控制器的输出速率控制机制缓解FEC解码按组恢复导致的突发输出问题。
本文使用Rust语言实现了原型系统并在模拟跨域低质量链路的实验环境中进行验证。实验结果表明本文方法能够正确识别低质量链路片段并启用FEC修复在无丢包链路片段上保持普通转发。在0至~\SI{2}{\percent}链路丢包率范围内与直接转发方案相比本文方法最高达到约3.6倍吞吐提升,验证了分段链路质量修复方法的有效性。
本文使用Rust语言实现了原型系统并在模拟跨域低质量链路的实验环境中进行验证。实验结果表明本文方法能够正确识别低质量链路片段并启用FEC修复在无丢包链路片段上保持普通转发。在0至~\SI{2}{\percent} 链路丢包率范围内与直接转发方案相比本文方法最高达到约3.6倍吞吐提升,验证了分段链路质量修复方法的有效性。
% 关键词用“英文逗号”分隔,输出时会自动处理为正确的分隔符
\thusetup{

View File

@@ -5,11 +5,11 @@
\section{研究背景}
覆盖网络Overlay Network是一种建立在底层物理网络之上的逻辑网络。随着云计算和跨地域互联网服务的发展服务商在构建覆盖网络时通常不再由自己建设底层基础设施而是租用云服务商在全球多个地区提供的服务器、网关和链路等计算与网络资源并将这些资源抽象为可按需配置的转发节点和逻辑链路构成覆盖网络从而为文件传输、实时音视频通信、企业资源访问等业务提供跨地域连接能力。与直接修改底层网络设备相比覆盖网络的路径选择、节点扩展和链路调整主要通过软件配置完成因而具有部署灵活、扩展方便和易于集中管理等特点。
覆盖网络Overlay Network是一种建立在底层物理网络之上的逻辑网络。随着云计算和跨地域互联网服务的发展服务商在构建覆盖网络时通常不再由自己建设底层基础设施而是租用云服务商在全球多个地区提供的服务器、网关和链路等计算与网络资源并将这些资源抽象为可按需配置的转发节点和逻辑链路,并由此构成覆盖网络,从而为文件传输、实时音视频通信、企业资源访问等业务提供跨地域连接能力。与直接修改底层网络设备相比,覆盖网络的路径选择、节点扩展和链路调整主要通过软件配置完成,因而具有部署灵活、扩展方便和易于集中管理等特点。
% 云网络Cloud Networking是一种新型的网络部署与管理架构。云网络服务商通过预先在全球各地部署服务器与网络资源并对其虚拟化允许其他软件服务的服务商可以通过租用这些计算和网络资源并将他们进行互联组建适用于自身业务需求的遍布全球的云网络。基于云网络提供的网络资源如专线及公网链路及计算资源如虚拟机可以将这些链路和虚拟机组成逻辑上互联的覆盖网络Overlay Network。覆盖网络的各个组件如转发节点、互联链路都由对应的云网络资源抽象而来对其扩展或重新配置时只需要进行软件设置而不需要对网络设备硬件进行更改其易于配置、易于扩展等众多优点使得它被广泛应用于文件传输、实时音视频通话、企业资源管理等多种服务中。
位于全球不同地区的两个覆盖网络用户可以利用覆盖网络建立连接。如图~\ref{fig:云网络转发拓扑},建立连接的用户各自选择距离自己最近的接入网接入覆盖网络,发送端的数据经由云网关进入云网络进行转发,再从接收端用户接入的云网关发至接收端用户。
用户使用覆盖网络的核心目的,是将底层复杂且动态变化的跨地域传输过程交由覆盖网络统一管理,从而获得更稳定、可控且易于扩展的连接服务。位于全球不同地区的两个覆盖网络用户可以利用覆盖网络建立连接。如图~\ref{fig:云网络转发拓扑},建立连接的用户各自选择距离自己最近的接入网接入覆盖网络,发送端的数据经由云网关进入云网络进行转发,再从接收端用户接入的云网关发至接收端用户。
\begin{figure}[H]
\centering
@@ -18,7 +18,7 @@
\label{fig:云网络转发拓扑}
\end{figure}
覆盖网络所承载的媒体多样、复杂如实时音视频通讯流量、文件下载流量等。这些不同的业务流量对应的用户体验Quality of Experience, QoE的影响因素也不尽相同。例如实时音视频通讯业务如在线会议应用中参会的用户间有较强的互动延迟是影响QoE的主要因素而与之相比文件下载业务则对延迟不敏感带宽与下载完成时间是QoE的主要影响因素。覆盖网络需要同时服务这些不同的流量尽管它们的QoE影响因素各异但是对网络的服务质量Quality of Service, QoS需求是统一的即需要覆盖网络尽可能地提供低延迟、无丢包、高带宽的链路。
覆盖网络所承载的媒体多样、复杂如实时音视频通讯流量、文件下载流量等。这些不同的业务流量对应的用户体验Quality of Experience, QoE的影响因素也不尽相同。例如实时音视频通讯业务如在线会议应用中参会的用户间有较强的实时互动延迟是影响QoE的主要因素而与之相比文件下载业务则对延迟不敏感带宽与下载完成时间是QoE的主要影响因素。受拥塞控制算法的影响,传输带宽受网络丢包率影响严重,丢包越高传输越慢。覆盖网络需要同时服务这些不同的流量尽管它们的QoE影响因素各异但是对网络的服务质量Quality of Service, QoS需求是统一的即需要覆盖网络尽可能地提供低延迟、无丢包、高带宽的链路。
\nomenclature{QoE}{用户体验Quality of Experience}
\nomenclature{QoS}{服务质量Quality of Service}
@@ -27,15 +27,15 @@
\section{研究现状}
链路调度类的工作从覆盖网络管理者的角度出发,在对连接两端用户透明的前提下,利用覆盖网络中同一链路可由质量价格不同的多个链路抽象而来的特点,通过不断监控同一逻辑链路下的公网链路与专线链路的质量,并在公网质量优秀可以为用户提供优质服务的时段将部分流量经由公网链路发送,从而希望能以此降低在专线上发送的数据流量,从而降低使用专线的成本\cite{kataria2024titan,wu2023xron}。然而实际上,本研究的测量表明用户的高需求时段与公网链路质量下降时段基本重合,有大量流量需要提供服务时恰逢公网链路质量下降不能满足用户体验需求,公网链路的分流效果有限,大量流量仍旧通过专线转发,不能有效削减专线峰值流量,实际成本下降效果有限。
链路调度类的工作从覆盖网络管理者的角度出发,在对连接两端用户透明的前提下,利用覆盖网络中同一链路可由质量价格不同的多个链路抽象而来的特点,通过不断监控同一逻辑链路下的公网链路与专线链路的质量,并在公网质量优秀可以为用户提供优质服务的时段将部分流量经由公网链路发送,从而希望能以此降低在专线上发送的数据流量,从而降低使用专线的成本\cite{kataria2024titan,wu2023xron}。然而实际上,本研究的测量表明用户的高需求时段与公网链路质量下降时段基本重合,有大量流量需要提供服务时恰逢公网链路质量下降不能满足用户体验需求,公网链路的分流效果有限,大量流量仍旧通过专线转发,不能有效削减专线峰值流量,,而专线链路恰恰通过峰值流量计费,实际成本下降效果有限。
冗余编码类的工作从端到端用户的角度出发,在对转发覆盖网络透明的前提下,通过在发送端设计特殊的网络编码,通过前向纠错编码等编码应对传输过程中可能的丢包,从而提升上层应用感知到的丢包,提升了用户感知到的链路质量\cite{bolot1999adaptivefec,huang2010skypefec,holmer2013webrtcfec}。这些工作将传输链路看作一个不可变的黑盒,为了充分应对可能发生的丢包只能尽可能多地加入冗余信息,产生了对带宽的浪费。
冗余编码类的工作从端到端用户的角度出发,在对转发覆盖网络透明的前提下,通过在发送端设计特殊的网络编码,通过前向纠错编码等编码应对传输过程中可能的丢包,从而降低上层应用感知到的丢包,提升了用户感知到的链路质量\cite{bolot1999adaptivefec,huang2010skypefec,holmer2013webrtcfec}。这些工作将传输链路看作一个不可变的黑盒,为了充分应对可能发生的丢包只能尽可能多地加入冗余信息,导致在一些链路质量良好的片段上也需要发送冗余包,产生了对优质链路带宽的浪费。
现有方法分别从覆盖网络链路调度和端到端冗余编码两个角度缓解公网链路质量不足的问题,但仍存在一定局限:前者依赖公网链路在部分时段具备足够好的传输质量,在公网质量下降且业务流量高峰同时出现时难以充分降低专线成本;后者将整条端到端路径视为不可区分的黑盒,往往需要为所有流量加入冗余,带来较高的额外带宽开销。针对上述问题,本文希望结合对链路的质量的实时感知和网络编码对低质量链路的性能提升,以低成本公网链路实现高网络服务质量。
% 现有方法分别从覆盖网络链路调度和端到端冗余编码两个角度缓解公网链路质量不足的问题,但仍存在一定局限:前者依赖公网链路在部分时段具备足够好的传输质量,在公网质量下降且业务流量高峰同时出现时难以充分降低专线成本;后者将整条端到端路径视为不可区分的黑盒,往往需要为所有流量加入冗余,带来较高的额外带宽开销。针对上述问题,本文希望结合对链路的质量的实时感知和网络编码对低质量链路的性能提升,以低成本公网链路实现高网络服务质量。
\section{研究思路与贡献}
本文的核心观察是覆盖网络中的不同公网链路片段的性质差异大,部分跨域链路由于竞争激烈、延迟高,导致性能低下,而部分域内链路性能优秀,与专线质量接近,应该分别进行传输优化。为实现对网络中不同链路的针对性质量提升,本文需要解决以下三个挑战:
本文的核心观察是覆盖网络中的不同公网链路片段的性质差异大,部分跨域链路由于竞争激烈、延迟高,导致性能低下,而部分域内链路性能优秀,与专线质量接近,已有的工作没有考虑到覆盖网络中这种分段的特性,而本文提出应该站在链路层级上,对不同质量的链路分别进行传输优化。为实现对网络中不同链路的针对性质量提升,本文需要解决以下三个挑战:
\begin{enumerate}
\item \textbf{如何在通用覆盖网络中加入链路片段级冗余编码。} 覆盖网络承载的上层流量类型多样,用户数据包大小并不固定,部分数据包可能已经接近最大传输单元。因此,冗余机制不能依赖修改用户报文或在用户包内部预留空间,而需要以对应用透明的方式插入覆盖网络转发路径,并能够在单个低质量链路片段上完成编码与恢复。
\item \textbf{如何根据链路质量变化选择合适的冗余强度。} 公网链路的丢包率和连续丢包模式会随时间变化,若长期对所有链路使用固定冗余,会带来不必要的带宽开销;若冗余不足,又无法有效修复低质量链路。因此,系统需要根据实时链路状态判断是否启用冗余,并动态选择合适的编码参数。
@@ -46,7 +46,7 @@
\nomenclature{FEC}{前向纠错编码Forward Error Correction}
本文实现了基于本文提出的分段链路质量优化方法的分布式覆盖网络转发以及针对低质量链路的冗余包计算及丢包恢复算法。经过对真实网络的模拟实验,本文提出的方法相比直接使用公网链路将端到端带宽提升了最高\SI{260}{\percent}
本文实现了基于本文提出的分段链路质量优化方法的分布式覆盖网络转发以及针对低质量链路的冗余包计算及丢包恢复算法。经过对真实网络的模拟实验,本文提出的方法相比直接使用公网链路将端到端带宽提升了最高~\SI{260}{\percent}
总结而言,本文主要的贡献是:
\begin{itemize}

View File

@@ -12,6 +12,8 @@
覆盖网络Overlay Network是一种已经获得广泛应用的网络虚拟化设计它是基于物理的底层网络Underlay Network上通过对资源的逻辑整合而形成的逻辑网络。如图~\ref{fig:overlay网络示意},覆盖网络在已有的硬件网络上构建一个虚拟的网络层,使得使用覆盖网络服务的企业和用户可以获得更灵活与稳定的虚拟网络连接。近年来,企业对虚拟化和云网络的需求不断增长,因而将分布在全球各地的云资源进行互联的需求也不断提升。企业构建覆盖网络以承载业务时,通常不选择自己搭建基础设施,而是选择向云服务商按需租用计算和网络资源,并利用这些云网络资源组成覆盖网络。
从用户和业务方的角度看,覆盖网络的价值不只在于完成两端连通,还在于屏蔽底层网络路径、运营商和云区域差异带来的复杂性。用户只需要接入邻近的覆盖网络网关,后续路径选择、故障绕行、链路切换和质量优化由覆盖网络统一完成,因而能够在不直接管理底层网络资源的情况下获得更可控的跨地域传输服务。
\begin{figure}[H]
\centering
\includegraphics[width=\linewidth]{overlay_network_from_underlay.drawio.pdf}
@@ -29,7 +31,7 @@
公网链路质量下降最直接的表现之一是数据包丢失。对于可靠传输协议而言,丢包通常需要依赖重传机制恢复;然而在跨地域云网络中,端到端往返时延较高,重传一次丢失的数据包往往需要等待一个完整的往返时延,容易造成吞吐下降和实时业务卡顿。因此,在低质量链路上仅依赖端到端重传机制,难以满足实时音视频、交互式应用等业务对低延迟和稳定性的需求。
前向纠错编码Forward Error Correction, FEC是一类常见的链路质量优化方法。其基本思想是在发送原始数据的同时加入一定数量的冗余信息使接收端在部分数据包丢失时可以利用已经收到的数据包和冗余包直接恢复丢失内容而不必等待发送端重传。与重传机制相比FEC通过额外带宽开销换取更短的丢包恢复时间因而适合用于对时延敏感、但又需要在不稳定网络上持续传输的场景。
为了应对网络中的丢包,一些工作针对不同的应用类型和需求设计了不同的网络编码承载应用数据。前向纠错编码Forward Error Correction, FEC是一类常见的用于优化链路质量的网络编码,其基本思想是在发送原始数据的同时加入一定数量的冗余信息使接收端在部分数据包丢失时可以利用已经收到的数据包和冗余包直接恢复丢失内容而不必等待发送端重传。与重传机制相比FEC通过额外带宽开销换取更短的丢包恢复时间因而适合用于对时延敏感、但又需要在不稳定网络上持续传输的场景。
常见的FEC方案包括简单复制、XOR码、Reed-Solomon码\cite{reed1960rscode}以及流式编码\cite{martinian2004streamingcode}等。它们在冗余效率、计算开销、连续丢包恢复能力和恢复延迟方面各有侧重。例如,分组码将多个数据包组织为一个编码组,并为该组生成独立的冗余包,能够以较低的实现复杂度恢复一定数量的丢包;交织技术则通过改变数据包与冗余包的组织和发送顺序,将连续突发丢包分散到不同的恢复单元中,从而降低单个编码组内同时丢失多个数据包的概率。这些技术为在不依赖重传的情况下改善低质量公网链路的传输质量提供了基础。
@@ -55,7 +57,7 @@
\end{enumerate}
云服务商只对专线链路的质量提供服务质量保证Service level agreement, SLA而对公网的具体性能没有任何形式的保证。尽管服务商不对公网的性能做出任何保证所有的公网链路在所有的时间段质量都劣于专线链路。如图~\ref{fig:公网片段热力图} 所示,部分公网链路有着较低的平均丢包率,质量几乎与专线相当,而只有部分链路,特别是跨域链路的丢包率较高,链路质量较差,与低丢包的专线有较大差距。覆盖网络对用户流量进行转发时,通常将多个不同的网络片段相连组成连接两侧接入网关的路径。由于覆盖网络的内部转发机制通常对端到端的传输透明,两端的客户端只能感知到由多个链路的丢包级联而成的最终丢包率,只要组成转发路径的链路中包含了至少一条丢包率较高的跨域公网链路,端到端感知到的丢包率就会明显上升。这导致在跨域连接的场景下,网络编码类工作只能以感知到的高丢包率对在整个路径上转发的包加入大量的冗余,造成了较大的带宽浪费,造成链路使用成本上升。
例如一条端到端的连接可能分别由AB、BC、CD三段链路组成其中三段链路的丢包率分别为$0, 0.2, 0$, 如果使用端到端的冗余,为了应对其中一条高丢包链路带来的丢包,必须在整条链路上加入额外约\SI{20}{\percent}的冗余导致在从A发往D的流量中AB、BC两段都承载了相比有效数据多\SI{20}{\percent}的数据量。在这种场景下AB段网络本身质量优秀但是却由于后段质量较差的网络呃额外承载了流量导致了链路使用成本上升。
例如一条端到端的连接可能分别由AB、BC、CD三段链路组成其中三段链路的丢包率分别为$0, 0.2, 0$, 如果使用端到端的冗余,为了应对其中一条高丢包链路带来的丢包,必须在整条链路上加入额外约~\SI{20}{\percent} 的冗余导致在从A发往D的流量中AB、BC两段都承载了相比有效数据多~\SI{20}{\percent} 的数据量。在这种场景下AB段网络本身质量优秀但是却由于后段质量较差的网络呃额外承载了流量导致了链路使用成本上升。
\begin{figure}[H]
\centering
\includegraphics[width=.8\linewidth]{loss_avg_heatmap.pdf}

View File

@@ -3,7 +3,7 @@
\chapter{相关工作}
\label{chap:相关工作}
本章主要介绍一些与本文工作相关的已有工作。\ref{sec:隧道技术介绍} 节主要介绍了当前在工业界得到较为广泛使用的用于构建覆盖网络的几种隧道技术,\ref{sec:链路质量优化相关工作} 节介绍了多种常用于进行网络编码的前纠错编码技术,比较了他们的异同。最后,\ref{sec:SDN相关工作} 节介绍了与覆盖网络紧密联系的软件定义网络Software Defined Network, SDN的概念以及与其相关的一些工作。
本章主要介绍一些与本文工作相关的已有工作。\ref{sec:隧道技术介绍} 节主要介绍了当前在工业界得到较为广泛使用的用于构建覆盖网络的几种隧道技术,\ref{sec:链路质量优化相关工作} 节介绍网络编码的基本概念,并重点介绍多种常用于链路丢包恢复的前纠错编码技术,比较们的异同。最后,\ref{sec:SDN相关工作} 节介绍了与覆盖网络紧密联系的软件定义网络Software Defined Network, SDN的概念以及与其相关的一些工作。
\nomenclature{SDN}{软件定义网络Software Defined Network}
@@ -24,10 +24,10 @@ NVGRENetwork Virtualization using Generic Routing Encapsulation基于路
GeneveGeneric Network Virtualization Encapsulation通用虚拟化网络封装技术\cite{rfc8926geneve}是IETF新提出的通用网络虚拟化封装协议旨在以单一、可扩展的封装格式取代碎片化的VXLAN、NVGRE等多种隧道协议以维持生态统一。Geneve也采用MAC over UDP的封装通过灵活配置的元数据传递机制满足多种网络虚拟化需求。Geneve也使用24比特的虚拟网络标识Virtual Network Identifier, VNI来区分不同的虚拟网络支持的网络数量与VXLAN、NVGRE等协议相当。与VXLAN等协议不同Geneve允许在头部后添加可变长度和数量的控制位和控制信息可以有效满足不同虚拟网络的需求增强了可扩展性。Geneve协议通过设计可选的元数据空间允许在不修改协议的前提下引入新功能自推出以来已经逐步得到各类虚拟网络平台的支持\cite{ovn_geneve,vmware_nsxt_geneve},但是协议较为复杂,适配难度较大。
\section{链路质量优化}
\section{网络编码}
\label{sec:链路质量优化相关工作}
低质量的互联网链路由于负载较大出现拥塞或部分设备运行故障时容易出现丢包或者延迟波动。在这些低质量的链路上进行传输时即使链路还有可用的传输带宽也会出现丢包或是延迟波动。即使TCP\cite{rfc9293tcp}等可靠传输协议通过重传确保了所有数据都能可到送达但性能较差。这是因为TCP协议依靠超时重传来在确保所有数据都最终送达至接收端即使使用了基于重复ACK的快速重传机制如图~\ref{fig:TCP丢包恢复缓慢}恢复单个丢失的包也至少要经历接收端检测丢包——请求发送端重传——发送端重传包送达恢复的过程至少需要一个往返时延Round Trip Time, RTT才能恢复。对于一条在云网络中的跨域链路往返时延可能达到\SI{300}{ms}或更长,如此缓慢的丢包恢复不仅会阻塞后续数据包的发送,也会极大地影响实时媒体服务如影视直播、视频通话等应用的用户体验。
低质量的互联网链路由于负载较大出现拥塞或部分设备运行故障时容易出现丢包或者延迟波动。在这些低质量的链路上进行传输时即使链路还有可用的传输带宽也会出现丢包或是延迟波动。即使TCP\cite{rfc9293tcp}等可靠传输协议通过重传确保了所有数据都能可到送达但性能较差。这是因为TCP协议依靠超时重传来在确保所有数据都最终送达至接收端即使使用了基于重复ACK的快速重传机制如图~\ref{fig:TCP丢包恢复缓慢}恢复单个丢失的包也至少要经历接收端检测丢包——请求发送端重传——发送端重传包送达恢复的过程至少需要一个往返时延Round Trip Time, RTT才能恢复。对于一条在云网络中的跨域链路往返时延可能达到~\SI{300}{ms} 或更长,如此缓慢的丢包恢复不仅会阻塞后续数据包的发送,也会极大地影响实时媒体服务如影视直播、视频通话等应用的用户体验。
\nomenclature{TCP}{传输控制协议Transmission Control Protocol}
\nomenclature{ACK}{确认报文Acknowledgement}
@@ -40,7 +40,9 @@ GeneveGeneric Network Virtualization Encapsulation通用虚拟化网络封
\label{fig:TCP丢包恢复缓慢}
\end{figure}
针对此问题,研究者们提出了多种解决方案其中前向纠错编码Forward Error Correction, FEC被广泛地用于应对链路传输中的丢包。其基本思想是在发送数据时直接加入一部分冗余信息以确保在部分信息丢失时接收端无需请求发送端重新传送任何信息而可以利用已经接收到的信息配合冗余信息推算出丢失的信息。与重传机制应对丢包需要经历一整个往返时延的长时间反馈路径不同利用前向纠错编码的冗余包进行恢复只需要等待后续冗余包送达后即可进行错误恢复时间短能更好地适应延迟敏感型应用如视频通话等应用的需求
针对此问题,研究者们提出了多种解决方案。网络编码Network Coding是一类在数据传输过程中对多个数据单元进行组合、冗余生成或重新编码的技术其核心思想是不再只按原样转发单个数据包而是通过编码数据包携带多个原始数据包之间的关联信息使接收端能够在收到足够信息后恢复原始数据。网络编码可以用于提高吞吐、增强可靠性或改善链路资源利用率在链路丢包修复场景中最常用的一类网络编码方法是前向纠错编码Forward Error Correction, FEC
FEC的基本思想是在发送数据时直接加入一部分冗余信息以确保在部分信息丢失时接收端无需请求发送端重新传送任何信息而可以利用已经接收到的信息配合冗余信息推算出丢失的信息。与重传机制应对丢包需要经历一整个往返时延的长时间反馈路径不同利用前向纠错编码的冗余包进行恢复只需要等待后续冗余包送达后即可进行错误恢复时间短能更好地适应延迟敏感型应用如视频通话等应用的需求。
为了实现高效的前向纠错编码,研究者们提出了多种编码方式,它们针对不同的目标进行了设计和优化。
@@ -57,7 +59,7 @@ GeneveGeneric Network Virtualization Encapsulation通用虚拟化网络封
\subsection{分组冗余码}
通过重复发送数据包的方式添加冗余虽然简单,但是会带来较高的冗余开销,为了提高冗余信息的恢复效率,研究者们进一步提出了基于分组冗余码的前纠错机制。XOR码和R-S码是较为主要的冗余纠错恢复机制。如图~\ref{fig:分组码示意},这两种编码都是线性分组码,将原始数据分为$n$个数据包一组,对于每一组数据再加入$k$个冗余数据包并将$n + k$个数据一并发送,接收端同样以组为单位进行丢包的恢复。
通过重复发送数据包的方式添加冗余虽然简单,但是会带来较高的冗余开销,为了提高冗余信息的恢复效率,研究者们进一步提出了基于分组冗余码的前纠错机制。XOR码和R-S码是较为主要的冗余纠错恢复机制。如图~\ref{fig:分组码示意},这两种编码都是线性分组码,将原始数据分为$n$个数据包一组,对于每一组数据再加入$k$个冗余数据包并将$n + k$个数据一并发送,接收端同样以组为单位进行丢包的恢复。
\begin{figure}[H]
\centering

View File

@@ -126,7 +126,7 @@ FEC解码器按编码组为单位批量恢复和交付数据包。当一个编
\nomenclature{PI控制器}{比例-积分控制器}
具体来说,控制器内部维护一个目标缓冲区深度$h_0$它是5个数据包的深度或是按当前释放速率计算\SI{5}{ms}能排空的缓冲区大小,取二者较大者。同时,控制器内部维护了一个积分值$I$它在从直通模式切换至PI控制模式时初始化为在直通模式下估计的包到来速率。每次有数据包从缓冲区中释放时控制器计算当前的缓冲区深度$h$与目标深度的差值:
具体来说,控制器内部维护一个目标缓冲区深度$h_0$它是5个数据包的深度或是按当前释放速率计算~\SI{5}{ms} 能排空的缓冲区大小,取二者较大者。同时,控制器内部维护了一个积分值$I$它在从直通模式切换至PI控制模式时初始化为在直通模式下估计的包到来速率。每次有数据包从缓冲区中释放时控制器计算当前的缓冲区深度$h$与目标深度的差值:
\begin{equation}
\increment h = h - h_0
\end{equation}

View File

@@ -8,9 +8,9 @@
\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之间的传输性能可以测量本文提出的方法与直接进行转发的基准方案的性能并进行对比。
本文作者使用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},并记录收端的接收速率。
实验时分别选取丢包率取从0至2\%的不同值分别使用本文提出的动态链路优化算法与直接进行转发的方法在A、C间使用iperf3进行测速持续~\SI{60}{s},并记录收端的接收速率。
\begin{figure}[H]
\centering
@@ -41,5 +41,5 @@
值得注意的是虽然从本方法的吞吐量从无丢包至有丢包有较大下降但是随着丢包率的增高吞吐量的下降程度明显小于直接转发行为这是由于本方法的动态FEC参数决定算法动态根据测量得到的丢包率参数决定了合适的冗余度从而有效地将修复后的丢包率维持在较为固定的范围内因而尽管底层链路的丢包率持续恶化但是上层TCP连接感知的丢包率却始终稳定使得最终的吞吐量也稳定在较为稳定的范围内。
在丢包率为零的场景下使用直接转发能达到比使用本方法略高的性能这主要是由于本方法所使用的FEC算法在不启用冗余时也仍旧需要在数据包中传输少量额外的包头导致吞吐量相比直接转发有大约\SI{1}{\percent}的下降,相比于存在丢包场景下的性能提升较小。
在丢包率为零的场景下使用直接转发能达到比使用本方法略高的性能这主要是由于本方法所使用的FEC算法在不启用冗余时也仍旧需要在数据包中传输少量额外的包头导致吞吐量相比直接转发有大约~\SI{1}{\percent} 的下降,存在丢包场景下的性能提升相比影响较小。