% !TEX root = ../bachelor-thesis.tex

\chapter{引言}

\section{研究背景}

云网络（Cloud Networking）是一种新型的网络部署与管理架构。云网络服务商通过预先在全球各地部署服务器与网络资源并对其虚拟化，允许其他软件服务的服务商可以通过租用这些计算和网络资源并将他们进行互联，组建适用于自身业务需求的遍布全球的云网络。基于云网络提供的网络资源如专线及公网链路及计算资源如虚拟机，可以将这些链路和虚拟机组成逻辑上互联的覆盖网络（Overlay Network）。覆盖网络的各个组件如转发节点、互联链路都由对应的云网络资源抽象而来，对其扩展或重新配置时只需要进行软件设置，而不需要对网络设备硬件进行更改，其易于配置、易于扩展等众多优点使得它被广泛应用于文件传输、实时音视频通话、企业资源管理等多种服务中。

位于全球不同地区的两个覆盖网络用户可以利用覆盖网络建立连接。如图\ref{fig:云网络转发拓扑}，建立连接的用户各自选择距离自己最近的接入网管接入覆盖网络，发送端的数据经由云网关进入云网络进行转发，再从接收端用户接入的云网关发至接收端用户。

\begin{figure}[H]
    \centering
    \includegraphics[width=\linewidth]{cloud_network_rtc.drawio.pdf}
    \caption{基于云网络的覆盖网络为用户提供服务}
    \label{fig:云网络转发拓扑}
\end{figure}

覆盖网络所承载的媒体多样、复杂，如实时音视频通讯流量、文件下载流量等。这些不同的业务流量对应的用户体验（Quality of Experience, QoE）的影响因素也不尽相同。例如，实时音视频通讯业务如在线会议应用中，参会的用户间有较强的互动，延迟是影响QoE的主要因素；而与之相比，文件下载业务则对延迟不敏感，带宽与下载完成时间是QoE的主要影响因素。覆盖网络需要同时服务这些不同的流量，尽管它们的QoE影响因素各异，但是对网络的服务质量（Quality of Service, QoS）需求是统一的，即需要覆盖网络尽可能地提供低延迟、无丢包、高带宽的链路。

在覆盖网络中，同一条逻辑链路的连接可以由多条物理链路抽象而成，云网络服务商通常同时提供专线与公网链路作为同一条逻辑链路的可选物理链路。通常来讲，专线的质量较高，延迟较低且稳定、丢包率低，能提供较好的传输质量和用户体验，但是高昂的价格对云服务商大规模使用带来挑战；与之相对地，公网链路的价格较低，但是容易受到网络中其它用户的影响，容易发生拥塞和竞争，传输质量容易发生波动，不能提供稳定优质的用户体验。全部使用高价的专线链路自然可以确保优秀的服务质量，但是会导致运营成本高昂；放弃使用专线链路转而使用公网链路会导致链路质量低下，不能满足服务质量需求。因此，研究如何在维持高服务质量的前提下尽可能地降低成本是亟须解决的问题。

\section{研究现状}

链路调度类的工作从覆盖网络管理者的角度出发，在对连接两端用户透明的前提下，利用覆盖网络中同一链路可由质量价格不同的多个链路抽象而来的特点，通过不断监控同一逻辑链路下的公网链路与专线链路的质量，并在公网质量优秀可以为用户提供优质服务的时段将部分流量经由公网链路发送，从而希望能以此降低在专线上发送的数据流量，从而降低使用专线的成本\cite{kataria2024titan,wu2023xron}。然而实际上，本研究的测量表明用户的高需求时段与公网链路质量下降时段基本重合，有大量流量需要提供服务时恰逢公网链路质量下降不能满足用户体验需求，公网链路的分流效果有限，大量流量仍旧通过专线转发，不能有效削减专线峰值流量，实际成本下降效果有限。

冗余编码类的工作从端到端用户的角度出发，在对转发覆盖网络透明的前提下，通过在发送端设计特殊的网络编码，通过前向纠错编码等编码应对传输过程中可能的丢包，从而提升上层应用感知到的丢包，提升了用户感知到的链路质量\cite{bolot1999adaptivefec,huang2010skypefec,holmer2013webrtcfec}。这些工作将传输链路看作一个不可变的黑盒，为了充分应对可能发生的丢包只能尽可能多地加入冗余信息，产生了对带宽的浪费。

现有方法分别从覆盖网络链路调度和端到端冗余编码两个角度缓解公网链路质量不足的问题，但仍存在一定局限：前者依赖公网链路在部分时段具备足够好的传输质量，在公网质量下降且业务流量高峰同时出现时难以充分降低专线成本；后者将整条端到端路径视为不可区分的黑盒，往往需要为所有流量加入冗余，带来较高的额外带宽开销。针对上述问题，本文希望结合对链路的质量的实时感知和网络编码对低质量链路的性能提升，以低成本公网链路实现高网络服务质量。

\section{研究思路与贡献}

本文的核心观察是覆盖网络中的不同公网链路片段的性质差异大，部分跨域链路由于竞争激烈、延迟高，导致性能低下，而部分域内链路性能优秀，与专线质量接近，应该分别进行传输优化。为实现对网络中不同链路的针对性质量提升，本文需要解决以下三个挑战：
\begin{enumerate}
    \item \textbf{如何在通用覆盖网络中加入链路片段级冗余编码。} 覆盖网络承载的上层流量类型多样，用户数据包大小并不固定，部分数据包可能已经接近最大传输单元。因此，冗余机制不能依赖修改用户报文或在用户包内部预留空间，而需要以对应用透明的方式插入覆盖网络转发路径，并能够在单个低质量链路片段上完成编码与恢复。
    \item \textbf{如何根据链路质量变化选择合适的冗余强度。} 公网链路的丢包率和连续丢包模式会随时间变化，若长期对所有链路使用固定冗余，会带来不必要的带宽开销；若冗余不足，又无法有效修复低质量链路。因此，系统需要根据实时链路状态判断是否启用冗余，并动态选择合适的编码参数。
    \item \textbf{如何避免冗余解码过程影响端到端传输控制。} FEC解码通常以编码组为单位恢复数据包，可能造成数据包在解码端集中输出。这种突发式交付会影响接收端的包到达节奏，并进一步干扰拥塞控制、速率估计和实时应用的播放稳定性。因此，系统还需要在完成丢包恢复的同时保持平滑的数据交付节奏。
\end{enumerate}

基于此，本文设计了一套基于交织前向纠错编码（Interleaved Forward Error Correction, Interleaved FEC）的跨国公网链路优化方法。本文提出的方法使用公网实现覆盖网络中所有节点的互联，对覆盖网络中的每一段链路，通过监控链路上的丢包情况，利用马尔科夫链建模网络丢包模型，对低质量的链路动态选择FEC编码参数，并利用交织XOR编码进行编码和丢包恢复，并在解码时对输出速率利用比例-积分控制器进行动态平滑处理。本方法不需要使用专线连接，极大地降低了链路的使用成本，同时又有选择性地在低质量链路上使用冗余编码，避免了在高质量链路上添加额外带宽。另外，应用交织编码技术，将冗余包与数据包间隔其它数据包发送，极大地降低了链路连续丢包对丢包恢复的影响。

本文作者实现了基于本文提出的分段链路质量优化方法的分布式覆盖网络转发以及针对低质量链路的冗余包计算及丢包恢复算法。经过对真实网络的模拟实验，本文提出的方法将端到端带宽提升了xxx，流完成时间减少了xxx。

总结而言，本文主要的贡献是：
\begin{itemize}
    \item 通过对公网链路的真实测量，指出了长距离跨域公网链路质量差的核心在于不同公网链路质量差距大、部分跨域链路片段存在链路质量差的特性；
    \item 提出了通过针对性地对低质量链路片段加入冗余，以最低的额外带宽开销实现对链路整体质量的提升；
    \item 实现并测量了本文提出的链路优化方法在跨国公网链路场景下对端到端性能的提升。
\end{itemize}

\section{论文内容}

（To be filled）
