113 lines
21 KiB
TeX
113 lines
21 KiB
TeX
% !TEX root = ../bachelor-thesis.tex
|
||
|
||
\chapter{背景介绍与研究动机}
|
||
\label{chap:背景介绍与研究动机}
|
||
|
||
本章首先在~\ref{sec:背景介绍} 节中介绍覆盖网络和网络编码的基本信息,介绍在维持高服务质量前提下进行成本优化这一核心问题。之后在~\ref{sec:实验观察与已有工作不足} 节介绍本文对公网性质的观察及已有工作在实际场景下的不足。最后,在~\ref{sec:basic idea} 节介绍本文提出的通过对云网络公网进行分段质量修复的基本思路及面临的挑战。
|
||
|
||
\section{背景介绍}
|
||
\label{sec:背景介绍}
|
||
|
||
\subsection{覆盖网络}
|
||
|
||
近年来,实时音视频通信、跨地域文件传输、企业远程办公和云上应用访问等互联网服务快速发展\cite{applogic2026gipr},网络所承载的业务类型更加多样,它们都需要高服务质量的网络以维持优秀的用户体验。例如,在高清实时音视频通讯业务中,参会用户之间存在频繁的实时互动,视频和音频帧必须按时送达,才能提供高清、低延迟、低卡顿率的使用体验,需要维持稳定的端到端延迟、减少抖动和丢包才能提供优秀的用户体验;相对地,文件下载业务对延迟并不敏感,可用带宽才是影响用户体验的主要因素。尽管这些应用的用户体验评价指标各不相同,但是它们都需要网络提供高吞吐、稳定低延迟且低丢包的高服务质量链路,以维持优秀的用户体验。
|
||
|
||
然而,随着互联网应用的服务对象从局部区域逐渐扩展到全球范围,新增的大量跨域传输场景中网络状况复杂,使得维持优秀用户体验更加困难。跨国企业协作、跨地域云服务访问、国际在线会议和全球内容分发等场景使得通信双方经常位于不同国家和地区或是通过不同的网络运营商接入网络,用户连接不再局限于本地网络或域内网络,而是成为需要跨越多个自治系统、运营商网络和广域互联网链路的跨域连接。用户距离的增加和网络路径的拉长会放大底层网络状态变化对应用体验的影响,例如跨域链路中的拥塞、路由变化和链路质量波动都可能造成延迟升高、带宽下降或丢包增加。端到端优化方法可以在一定程度上缓解网络质量波动,例如通过拥塞控制算法调整发送速率、通过多路径传输绕开部分拥塞路径,但它们无法适配所有跨域网络中可能的情况,在大部分条件下仍旧无法提供优秀的服务质量,进而无法保证优秀用户体验。
|
||
|
||
为了将复杂多变的底层网络情况与上层的应用传输解耦,实现更优秀的网络服务质量,服务商通常使用覆盖网络对底层网络进行抽象。覆盖网络是一种已经获得广泛应用的网络虚拟化设计,它是基于物理的底层网络(Underlay Network)上通过对资源的逻辑整合而形成的逻辑网络。如图~\ref{fig:overlay网络示意},覆盖网络在已有的硬件网络上构建一个虚拟的网络层,使得使用覆盖网络服务的企业和用户可以获得更灵活与稳定的虚拟网络连接。从用户和业务方的角度看,覆盖网络的价值不只在于完成两端连通,还在于屏蔽底层网络路径、运营商和云区域差异带来的复杂性。用户只需要接入邻近的覆盖网络网关,后续路径选择、故障绕行、链路切换和质量优化由覆盖网络统一完成,因而能够在不直接管理底层网络资源的情况下获得更可控的跨地域传输服务。
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=\linewidth]{overlay_network_from_underlay.drawio.pdf}
|
||
\caption{覆盖网络基于底层网络,将各类物理网络资源抽象为一个虚拟的覆盖网络}
|
||
\label{fig:overlay网络示意}
|
||
\end{figure}
|
||
|
||
随着企业的服务范围扩展至全球,企业通常选择使用云网络资源构建覆盖网络。由于覆盖网络的服务对象可能遍布全球,企业构建覆盖网络以承载业务时,通常不选择自己搭建基础设施,而是选择向云服务商按需租用计算和网络资源,并利用这些云网络资源组成覆盖网络。使用云网络资源免去了在全球布设和维护覆盖网络的成本,降低了前期部署成本。同时企业可以利用云网络按使用量付费的特点,按需选择与当前业务需求最匹配的计算资源和网络资源,并随时按业务需求变化而增加或减少资源使用,节省了硬件的部署和维护成本。
|
||
|
||
在覆盖网络中可以通过选择不同价格和质量和资源实现网络服务质量和成本的权衡。例如,许多云服务商同时提供公网链路互联与专线链路互联\cite{azure_bandwidthcost,gcp_bandwidthcost}。其中,专线链路通常具有更稳定的传输性能、更低的丢包率与时延,但部署成本与使用成本较高;而公网链路虽然成本较低,却容易受到网络拥塞、跨域路由波动等因素影响,出现高丢包、时延抖动等问题,导致质量不稳定\cite{kataria2024titan}。与此同时,链路质量与网络负载往往还会随着时间动态变化,使得不同链路在不同时间段内呈现出不同的性能特征。基于云网络的覆盖网络可以利用云网络按需付费和部署的特点,随时切换使用的链路,以达成成本和传输质量之间的权衡。
|
||
|
||
% 随着云计算与实时互联网应用的发展,现代云网络中的跨域流量规模持续增长,用户对于传输质量与服务稳定性的要求也不断提高。传统的覆盖网络服务商为了为用户提供高质量的传输服务,确保能为用户持续稳定提供低延迟、高带宽、低丢包的转发路径,选择尽可能多地使用专线链路构建覆盖网络,而这对运营成本带来了较大的压力。如何在维持网络服务质量保持高带宽、低丢包、低延迟的前提下,尽可能减少构建和运营云网络所需的成本,是各服务商关注的重点。
|
||
|
||
一些工作意识到了公网链路与专线链路在经常存在定价差异,他们尝试通过主动调度的方法降低整理使用成本。这些工作在维持覆盖网络服务质量的前提下,利用覆盖网络易于实时配置的特性,将部分流量转移至质量优秀的公网链路上,以减少专线链路的压力\cite{kataria2024titan,wu2023xron}。这些工作在公网链路质量较好时,利用低价的公网链路为部分用户提供服务,降低了高价专线需要承载的流量,从而在服务流量总量不变的情况下,降低了高价流量的占比,进而降低了链路部署的总成本。
|
||
|
||
\subsection{网络编码}
|
||
|
||
除了使用覆盖网络对网络进行抽象并调度以外,另外一些工作从端到端的视角出发,将网络视为一个不可改变的黑盒,尝试通过端到端方法对低质量的公网链路进行优化。
|
||
|
||
公网链路质量下降最直接的表现之一是数据包丢失。对于可靠传输协议而言,丢包通常需要依赖重传机制恢复;然而在跨域网络中,端到端往返时延较高,重传一次丢失的数据包往往需要等待一个完整的往返时延,容易造成吞吐下降和实时业务卡顿。因此,在低质量链路上仅依赖端到端重传机制,难以满足实时音视频、交互式应用等业务对低延迟和稳定性的需求。
|
||
|
||
为了应对网络中的丢包,一些工作针对不同的应用类型和需求设计了不同的网络编码承载应用数据。前向纠错编码(Forward Error Correction, FEC)是一类常见的用于优化链路质量的网络编码,其基本思想是在发送原始数据的同时加入一定数量的冗余信息,使接收端在部分数据包丢失时,可以利用已经收到的数据包和冗余包直接恢复丢失内容,而不必等待发送端重传。与重传机制相比,FEC通过额外带宽开销换取更短的丢包恢复时间,因而适合用于对时延敏感、但又需要在不稳定网络上持续传输的场景。
|
||
|
||
常见的FEC方案包括简单复制、XOR码、Reed-Solomon码\cite{reed1960rscode}以及流式编码\cite{martinian2004streamingcode}等。它们在冗余效率、计算开销、连续丢包恢复能力和恢复延迟方面各有侧重。例如,分组码将多个数据包组织为一个编码组,并为该组生成独立的冗余包,能够以较低的实现复杂度恢复一定数量的丢包;交织技术则通过改变数据包与冗余包的组织和发送顺序,将连续突发丢包分散到不同的恢复单元中,从而降低单个编码组内同时丢失多个数据包的概率。这些技术为在不依赖重传的情况下改善低质量公网链路的传输质量提供了基础。
|
||
|
||
% 不过,在传统应用场景中,FEC往往被部署在端到端发送端和接收端之间,将整条网络路径视为一条整体链路,并根据端到端丢包情况决定冗余强度。这种方式虽然对中间网络透明,但没有利用云网络和覆盖网络中间节点可控、路径可分段的特点。在跨域覆盖网络中,一条端到端路径通常由多个链路片段接力组成,不同片段的质量可能存在显著差异。如果仍然对整条路径统一添加冗余,质量良好的片段也需要承载额外冗余流量,而真正发生丢包的低质量片段也无法得到更精细的针对性修复。因此,本文关注的核心问题并不是重新设计一种完全端到端的编码机制,而是如何结合覆盖网络的分段转发能力,将FEC用于低质量公网链路片段的定向修复,从而在控制带宽开销的同时提升端到端服务质量。
|
||
|
||
\section{观察与已有工作不足}
|
||
\label{sec:实验观察与已有工作不足}
|
||
|
||
针对覆盖网络成本控制和网络服务质量优化,已有的工作主要从两个视角进行优化。一些工作从覆盖网络调度的视角进行优化,通过在低价链路质量优秀的时间段对高价链路进行分流,尝试降低总体的链路使用成本;另外一些工作从端到端的角度出发,在端到端网络编码方面进行尝试,通过端到端的方式对低质量链路的传输质量进行优化。然而,本文对云网络的公网链路性质进行了调研和测量,产生了三点观察,他们揭示了公网链路的一些特殊性质,这些性质导致已有的方法不能有效地降低覆盖网络的部署成本:
|
||
|
||
\begin{enumerate}
|
||
\item \textbf{公网链路质量下降时段与用户流量高峰重合。}
|
||
\end{enumerate}
|
||
|
||
公网链路质量下降与用户流量出现高峰不是孤立的事件,随着更多用户访问网络服务,网络中出现拥塞和竞争的可能性不断提升,公网链路的质量就会出现下降,表现出不稳定的特性。如图~\ref{fig:用户高峰与公网劣化重合},在某企业的某条公网连接中,一天时间内用户流量带宽提升的时段与丢包率提升、延迟波动的时段有较强的相关性,用户流量提升的时间段恰好也是公网链路出现延迟波动、丢包率提升的时间段。
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=\linewidth]{hongkong-jinan-withbd.pdf}
|
||
\caption{用户流量高峰与公网链路质量下降时段的重合}
|
||
\label{fig:用户高峰与公网劣化重合}
|
||
\end{figure}
|
||
|
||
% 已有的链路调度类工作没有考虑到公网链路质量下降的时间段与用户流量高峰有明显的相关性,公网链路的实际分流能力有限。如图~\ref{fig:用户高峰与公网劣化重合},在某企业的某条公网连接中,用户流量带宽提升的时段与丢包率提升、延迟波动的时段有较强的相关性,只在公网丢包低、延迟稳定的时段使用公网链路只能削减专线上承载的一小部分流量。进一步地,由于用户流量带宽较大的时段公网持续恶化,这些方法也不能利用公网链路削减专线需要承载的峰值带宽,使得专线链路仍然在传输流量时起主导作用,链路使用成本的削减程度有限。另外,与公网链路通常可以灵活选用按量付费与按峰值带宽付费不同,专线链路通常只能按一段时间内的峰值带宽或95分位带宽付费\cite{aliyun_bandwidthcost,tencent_bandwidthcost},这些方法不能有效地削减专线上承载的峰值带宽就意味着专线的使用成本不会由于公网的部分分流而显著降低。因此,这些工作对链路使用成本的削减十分有限,甚至可能由于专线链路成本没有明显下降,反而由于额外使用公网链路而导致链路使用成本增加。
|
||
|
||
\begin{enumerate}[resume]
|
||
\item \textbf{专线链路只能按峰值带宽计价,而公网链路计价方式更为灵活。}
|
||
\end{enumerate}
|
||
|
||
与公网链路通常可以灵活选用按量付费与按峰值带宽付费不同,专线链路通常只能按一段时间内的峰值带宽或95分位带宽付费\cite{aliyun_bandwidthcost,tencent_bandwidthcost}。服务商在使用公网链路时,可以在使用较少流量时选择按流量计费,而在总流量较多但是对带宽上限需求较小时选择按峰值带宽收费。与之不同的是,专线链路只能按照计费周期内使用的峰值带宽或者95分位带宽计费,即使服务商只在一个计费周期内短暂地使用专线资源,如果其承载的峰值流量较高,则仍旧需要支付较高的使用费用。
|
||
|
||
\begin{enumerate}[resume]
|
||
\item \textbf{公网链路不同分段质量差异显著。}
|
||
\end{enumerate}
|
||
|
||
云服务商只对专线链路的质量提供服务质量保证(Service level agreement, SLA),而对公网的实际性能没有任何保证\cite{aliyun_sla}。尽管服务商不对公网的性能做出任何保证,但这不代表所有的公网链路在所有的时间段质量都劣于专线链路。如图~\ref{fig:公网片段热力图} 所示,部分公网链路有着较低的平均丢包率,质量几乎与专线相当,而只有部分链路,特别是跨域链路的丢包率较高,链路质量较差,与低丢包的专线有较大差距。覆盖网络对用户流量进行转发时,通常将多个不同的网络片段相连,组成连接两侧接入网关的路径。由于覆盖网络的内部转发机制通常对端到端的传输透明,两端的客户端只能感知到由多个链路的丢包级联而成的最终丢包率,只要组成转发路径的链路中包含了至少一条丢包率较高的跨域公网链路,端到端感知到的丢包率就会明显上升。
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=.8\linewidth]{loss_avg_heatmap.pdf}
|
||
\caption{不同公网链路连续七天内平均丢包率热力图}
|
||
\label{fig:公网片段热力图}
|
||
\end{figure}
|
||
|
||
基于这几点观察,本文认为已有的方法都不能有效地减少覆盖网络的链路成本。链路调度类方法只在公网链路质量高的时段利用公网分流,由于公网链路质量只能在用户流量不大的时段维持优秀质量,在用户流量较大的时段这些方法将仍旧选择使用专线来承载大量流量,公网实际的分流作用有限,且不能有效地降低专线承载的峰值流量,这导致即使使用了这些调度类算法,专线链路的使用成本仍旧没有明显的下降。端到端的链路优化类算法则没有考虑到一条连接在覆盖网络内部的多段连接质量不同的问题,只要转发路径中出现一个片段质量较低,则端到端感知到的链路质量就急剧下降,在所有链路上都加入冗余,导致可能的带宽浪费。例如,设想A经由B转发至C的链路中,AB段链路质量较差但带宽较高,存在 \SI{50}{\percent} 的丢包,带宽 \SI{100}{Mbps};BC段质量较好但带宽较低,不存在丢包,带宽 \SI{50}{Mbps},如图~\ref{fig:全链路冗余浪费带宽}。在这种情况下,端到端算法测量得到AC间实际的丢包率也为 \SI{50}{\percent},因此为了避免丢包,需要即使在最理想的编码恢复情况下也需要在发送应用数据的基础上额外发送一倍冗余数据才能使得接收端通过冗余数据恢复丢包。然而,由于BC段的带宽的带宽较低,实际端到端能感受到的最高有效带宽只有 \SI{25}{Mbps},导致AB链路上也只承载了 \SI{50}{Mbps}的带宽,有 \SI{50}{Mbps}的传输能力被浪费。实际上,如果只在链路较差的AB这一段加入一倍冗余,而在BC段直接传输,则可充分利用两端链路的传输能力,并将端到端感知有效带宽提升至 \SI{50}{Mbps}。
|
||
|
||
\begin{figure}[H]
|
||
\centering
|
||
\includegraphics[width=\linewidth]{all_redundent_waste.drawio.pdf}
|
||
\caption{在全链路上引入相同冗余造成带宽资源浪费}
|
||
\label{fig:全链路冗余浪费带宽}
|
||
\end{figure}
|
||
|
||
\section{研究动机}
|
||
\label{sec:basic idea}
|
||
|
||
% 前文的观察表明,现有方法在跨域云网络场景下仍然存在局限。一方面,链路调度类方法主要利用公网质量较好时的机会窗口,将部分流量从专线迁移到公网;但当用户流量进入高峰期时,公网链路也更容易出现丢包和抖动,系统仍然需要依赖专线承载主要流量,因而难以真正降低按峰值带宽计费的专线成本。另一方面,网络编码类方法虽然能够修复丢包,但通常将端到端路径视为一条整体链路,在整条路径上统一添加冗余,没有区分不同链路片段之间的质量差异,容易在质量良好的片段上引入不必要的带宽开销。
|
||
|
||
因此,针对公网链路片段间质量不同、随时间波动大的特点,本文的基本思路是:全部使用公网链路组成覆盖网络,并对每个链路片段独立动态调整冗余修复强度。本文提出不应再将低质量公网链路视为只能由调度算法规避的不可用资源,而是利用覆盖网络中间节点可控、路径可分段的特点,对公网转发路径进行链路粒度的质量修复。具体而言,本文提出的方法完全基于成本较低的公网链路构建覆盖网络,并持续监控各个链路片段的传输质量;对于质量良好的片段,系统保持普通转发,避免引入额外开销;对于低质量片段,系统在该片段两端加入前向纠错编码,将质量修复产生的冗余限制在真正发生问题的链路范围内。通过这种方式,本文希望在不依赖高成本链路的条件下,使用低价的公网构建的覆盖网络在用户高需求时段仍能提供接近专线链路的传输质量,同时避免端到端统一冗余带来的带宽浪费。
|
||
|
||
围绕这一思路,系统设计需要进一步解决以下两个核心挑战。
|
||
|
||
\begin{enumerate}
|
||
\item \textbf{如何应对各个链路片段频繁且不可预测的链路质量变化。} 公网链路的丢包率和连续丢包模式会随时间变化,固定冗余参数难以同时适应不同链路和不同时间段的网络状态。冗余不足会降低丢包恢复能力,冗余过高则会消耗额外带宽并增加解码等待时间。因此,系统需要根据实时链路观测判断是否启用冗余,并动态选择合适的编码参数。
|
||
\item \textbf{如何在对传输两端透明的前提下提升部分链路的传输质量。} 覆盖网络承载的上层业务类型多样,传输两端通常并不了解中间覆盖网络的转发细节,也难以配合覆盖网络内部的链路优化。因此,优化机制不能依赖修改应用报文、改变端到端协议语义或要求发送端与接收端协同,而需要能够在覆盖网络内部的单个低质量链路片段上独立完成质量修复。同时,链路片段级修复还必须保持端到端数据包的正常传输节奏,避免因中间节点处理造成突发交付、乱序或额外时延,从而干扰上层拥塞控制和实时应用体验。
|
||
\end{enumerate}
|
||
|
||
\section{本章小结}
|
||
|
||
本章围绕跨域云网络中的传输质量与链路成本问题,介绍了云网络、覆盖网络以及前向纠错编码等研究背景。首先,覆盖网络为跨地域云资源互联提供了灵活的虚拟网络抽象,但公网链路质量不稳定、专线链路成本较高,使得服务商需要在传输质量和运营成本之间进行权衡。其次,FEC等网络编码技术能够通过冗余信息恢复部分丢包,为改善低质量公网链路提供了基础。
|
||
|
||
在此基础上,本章结合真实网络测量指出现有方法的两点不足:一方面,公网链路质量下降时段与用户流量高峰存在明显重合,使得仅依赖公网分流的链路调度方法难以削减专线峰值成本;另一方面,不同公网链路片段之间质量差异显著,端到端统一添加冗余会在高质量片段上造成额外带宽浪费。基于这些观察,本文提出利用覆盖网络路径可分段、中间节点可控的特点,在全公网互联的前提下对低质量链路片段进行针对性质量修复,并进一步总结了该思路在链路质量变化下的自适应冗余,以及对传输两端透明的片段级质量修复与传输节奏保持方面面临的设计挑战。
|