叶洪波 潘俊臣 崔勇
摘要:传输优化方案的验证依赖于模拟器,但大量基于机器学习的优化方案和端网结合的传输优化方案的出现,使得现有模拟器不适应日益复杂的传输优化方法。为了解决该问题,提出了一种轻量化传输模拟器。该模拟器支持多种传输功能的模拟,并利用算法接口抽象提升模拟器的易用性。通过在所提出的模拟器上构造常见传输场景并对多种算法进行模拟实验,验证了本传输模拟器的有效性和实现的正确性。
关键词:传输模拟器;拥塞控制算法;码率自适应
Abstract: The verification of transmission optimization schemes depends on simulators, but existing simulators are not suitable for increas⁃ingly complex transmission optimization methods, including optimization schemes based on machine learning and transmission optimization schemes combined with end networks . To solve this problem, a lightweight transmission simulator is proposed . The simulator supports the simulation of multiple transport functions and uses algorithmic interface abstraction to improve the simulator's ease of use . Experiments are carried out on the simulator proposed in this paper through common transmission scenarios and different optimization algorithms to verify the effectiveness and correctness of the implementation of the simulator .
Keywords: transmission simulator; congestion control algorithm; adaptive bitrate
随着互联网的发展,直播、线上会议、云游戏等新应用和新场景不断涌现,对网络传输性能都提出了更高的要求,传输优化研究也因此越来越成为业界关注的焦点。为了满足新场景下的传输需求,业界在网络传输过程中的各个细分领域提出了大量的优化方案。码率自适应、拥塞控制算法、队列管理算法等处于网络传输的端侧或网络侧,不同网络层次的优化策略研究不断涌现。这些方案从不同的角度对传输过程进行优化,以期获得更好的服务质量和用户体验。
作为传输优化研究过程中各类方案验证和测试的重要工具,传输模拟器对传输机制的研究有着很重要的意义。相对于在真实设备上进行传输实验,在模拟器上的实验有着部署简单、运行速度快等诸多优点。这些优点使得模拟器成为传输机制研究初期方案验证时的最佳工具。传输模拟器的拟真程度、性能好坏、支持的功能是否全面、是否便捷开发等特性,很大程度上影响新型传输机制的验证效率。
随着传输优化方案设计的日益复杂和机器学习方法的引入,现有模拟器的设计很难满足研究人员的需要。从功能上看,不同细分领域的传输研究对模拟器功能有不同的要求。功能过于单一的模拟器系统不能满足研究人员的需求。从易用性上看,现有传输模拟器的功能不足以支持复杂的方案设计,这带来了使用上的不便和额外改动的成本。一方面,传输机制上的创新方案往往需要对现有模拟器主逻辑进行较大规模的改动,这与模拟器本身作为快速验证手段的目的背道而驰;另一方面,机器学习方法的引入使得模拟器系统同时肩负起快速生成大量学习样本的职责,这对传输模拟器提出了轻量化的要求。
综上所述,现有模拟器已经不能满足日益复杂的传输优化方案快速性能验证需求,因此需要设计轻量化的模拟器来满足传输优化方案的性能验证的新需求。本文首先分析传输优化研究的几个重要领域的特点,总结这些研究方案对模拟器功能的需求;其次,对现有模拟器存在的问题进行了归纳和总结;以此为基础,提出了一种适应新型传输优化方案的模拟器;最后,通过常见传输场景和算法的模拟效果实验,验证了模拟器的有效性和实现的正确性。
1多样化传输优化方案对模拟器功能需求
近年来,拥塞控制算法和码率自适应(ABR)算法是网络传输优化研究中的热点。基于启发式策略的算法和新兴的基于机器学习的算法层出不穷。这些算法研究工作大多需要利用模拟器进行方案性能验证。算法复杂度的不断增加,对模拟器的功能也提出了更高的要求。
1.1常见细分领域研究需求
传输优化领域包含的研究很多,每一种细分领域需要模拟器实现的功能不同。本文以拥塞控制和码率自适应两个领域为例,给出模拟器需要实现的几种重要功能。
拥塞控制算法的研究關注源端速率控制策略,需要模拟传输协议和网络链路。源端拥塞控制算法控制传输速率的方法大致分为两种:基于窗口的策略和基于速率的策略。具体来说,基于窗口的策略通过拥塞窗口及平滑速度控制发送,基于速率的策略则直接通过发送速度来控制发送。窗口策略常见于启发式的传统算法,例如 Reno[1]、 Cubic[2]只决策拥塞窗口控制发送。瓶颈带宽和位移传播时间(BBR) [3]则以拥塞控制窗口为主,平滑速度控制发包速率为辅。速率策略则常见于机器学习拥塞控制算法中,例如,面向性能的拥塞控制(PCC) [4]直接决策发送速度值来控制发送速度。为了支持不同拥塞控制方案的实施,模拟器需要同时实现上述不同的控制策略。同时,拥塞控制算法研究还需要完整的网络链路功能模拟来支持网络波动模拟,还原真实网络中拥塞控制算法性能。
ABR 研究则从应用层角度优化传输过程,并需要模拟流媒体传输的过程。目前常见的流媒体点播协议,例如基于超文本传输协议(HTTP)的动态自适应流媒体传输协议(DASH) [5],都通过视频分片的形式进行流媒体的传输。由于多种码率的存在,需要码率自适应算法来自动选择适配当前网络质量的视频块。例如,RobustMPC[6]将 ABR 问题抽象为控制论问题,并利用控制论算法解决视频码率和带宽能力的适配;Pensieve[7]则利用强化学习的方法,利用机器学习模型获取最优策略。总体上, ABR 算法需要模拟器实现流媒体点播协议逻辑、ABR 算法的统计输入和决策执行逻辑。
1.2机器学习方法的新需求
随着机器学习方法在传输优化中的大量应用,模拟器的运行效率也成为重要的性能指标。 Remy[8]、 PCC、 PCC- Vivace[9]等拥塞控制算法使用机器学习方法指导决策; Orca[10]则通过传统策略和机器学习的结合,在降低运算开销的同时提升了吞吐和时延表现;Pensieve则首先将强化学习应用于码率自适应研究中,大幅提升了 ABR 算法在复杂网络状态下的决策性能。虽然两个研究领域的模拟功能需求有所不同,但都依赖于大量实验样本进行机器学习调优,这对模拟器性能提出了更高的要求。机器学习方法往往需要在模拟器系统中进行初步的模拟训练,经过调优后再在真实环境中进行细调。因此,模拟器的性能对机器学习算法的训练效率的影响很大。
2现有传输模拟器方案缺点
日益复杂的传输优化研究,对模拟器系统的功能提出了更高的要求。但现有的传输模拟器方案往往不能同时满足所有的研究需求,且大部分缺乏易用性设计。这导致学习成本增加、研究效率下降。本文对常见的传输模拟器 NS-3[11]和 Mahimahi[12]做简要介绍,并分析优劣,指出了当前传输模拟器面临的问题。
2.1 NS-3模拟器
NS-3是一个开源的、可拓展的、基于事件的网络模拟
器,旨在服务网络领域的研究和教学工作。 NS-3模拟器最大的特点是支持极高的模拟精度。例如, NS-3模拟器可以生成接近系统内核原生网络栈精度的 Internet 控制报文协议(ICMP)、用户数据报协议(UDP)、传输控制协议(TCP)等多种真实的端到端交互模拟。路由层面支持不同的路由协议,链路层面则支持 Wi-Fi、以太网等不同的链路协议。总体上讲, NS-3在设计上着重关注模拟器的拟真度,对网络的模拟非常细致。
但是 NS-3模拟器过于复杂且学习成本较高,这导致其易用性较差。另外,高精度的模拟也不利于快速运行:
(1) NS-3基本框架比较复杂,修改起来相当困难,对研究人员并不友好。针对不同协议的模拟在增加模拟精度的同时,也影响了代码的复杂度。
(2) NS-3对链路、路由、传输协议等进行高精度模拟,这提升了模拟器的拟真程度。但对于传输研究来说, NS-3模拟了很多研究者不关心的因素,这增加了开发难度。
(3) NS-3复杂的模拟机制限制了 NS-3的性能,这导致其并不适合大规模生成模拟样本。随着机器学习方法的引入,快速生成大量模拟样本的能力已经逐渐成为模拟器重要功能指标。
2.2 Mahimahi 模拟器
Mahimahi 模拟器最早被用于 HTTP 流量的记录和重放,目前常用于网络传输模拟。 Mahimahi 是一个数据包级别的端到端传输模拟器,它能够模拟中间瓶颈链路的缓存变化情况,从而反映带宽和往返时延(RTT)的变化。在 ABR 领域基于机器学习的经典算法Pensieve的实验中,底层传输模拟器使用的就是 Mahimahi 。 Mahimahi 最大的特点是框架较为轻量。模拟器的设计目标并不是模拟复杂的网络设备,因此模拟过程相对粗粒度。这却带来了较好的性能。同时,相比于 NS-3, Mahimahi 框架简单易理解。
Mahimahi 模拟器由于功能有限,也有着局限性,如 Mahimahi 不支持复杂网络拓扑。对于数据中心这种层次路由的场景,不同流之间不仅有独立的缓存(例如直连的交换机),还有共享的缓存(例如出口路由器)。 Mahimahi 不支持这种复杂的缓存模拟,也因此不能模拟复杂拓扑中多对节点之间的同时通信。这就使得 Mahimahi 的模拟功能局限于端到端的场景,不能适配其他传输优化研究。
3轻量化传输模拟器设计
为了解决现有模拟器不能满足研究需要的问题,本文设计了一种轻量化传输模拟器。本节主要介绍模拟器的总体架构、轻量化设计和易用性设计。
3.1总体架构设计
模拟器的总体架构包含4 个模块:算法模块、参数配置模块、核心元素和底层模拟逻辑,具体如图1 所示。模拟器的底层模拟逻辑是基于事件队列实现的,它利用事件队列将各个功能模块联系起来,实现了模拟设备间复杂的调用关系。在模拟器底層框架之上,还有若干核心元素,构成了模拟设备、链路等模拟要素。具体来说, Block 和 ABR 组件分别负责静态流量重放和 ABR 机制模拟,是模拟器环境中的应用层功能。 Sender 元素模拟传输中的端系统以实现模拟器的传输层功能。 Sender 元素同时还利用算法接口与数据块调度、拥塞控制等算法模块交互,完成算法的状态更新,并按照决策进行模拟传输。 Router 元素模拟中间转发节点的功能,负责模拟缓存和队列调度机制,同时利用算法接口与队列管理算法、包标记算法等模块交互,实现设备算法的自定义。 Link 元素负责模拟传输中的链路,代表了模拟设备(Sender 和 Router)之间的连接,其传输特性由链路配置接口指定。
3.2轻量化设计
我们通过简化模拟机制来减少模拟器的运行开销,实现轻量化模拟器设计。具体来说,我们将传输过程中较为复杂但对模拟精度影响不大的设计取消,从而提升了运行效率。
以传输过程简化和 ABR 模拟简化为例,模拟器只模拟其中对精度影响较大的机制。首先是传输过程的简化,模拟器只模拟稳态下的传输流程,不对建立连接等短暂状态进行模拟。虽然可靠的传输协议通常有比较复杂的状态机制,但不同状态下的流量特征有很大的区别,例如 TCP[13]和快速用户数据报协议网络连接(QUIC) [14]的链接建立过程差异就很大。这些可靠传输机制的背后是复杂的网络栈状态机的实现。对于模拟器来说,完整的模拟是非常影响模拟性能和框架简洁性的。但是这些区别于稳态的其他状态往往只占用了传输事件的极短时间,因此单纯模拟稳态的传输过程不会严重影响模拟器的拟真度。所以,模拟器只模拟稳态的传输过程。其次是 ABR 过程模拟,模拟器只对比较关键的视频块码率切换逻辑做模拟,忽略了其他的协议细节。例如,完整的点播协议中包含 Meta 数据的交互、 HTTP 头参数等,而模拟器则忽略了这些协议细节。服务端和用户端读取 trace 文件共享 Meta 信息,只模拟视频传输逻辑。
3.3易用性设计
为了实现模拟器的易用性,本文设计并实现了多种算法接口。具体来说,模拟器的设计总结了现有传输方案的特点,并设计了4 种算法接口,以为不同需求的研究提供支持。4种接口分别是源端 ABR 算法接口、源端拥塞控制算法接口、中间设备队列调度算法接口和中间设备数据包标记接口。其中, ABR 算法接口主要服务于流媒体传输优化研究中 ABR 算法的实现;拥塞控制算法接口则服务于拥塞控制研究;中间设备队列调度接口控制中间设备队列管理的决策,方便设备缓存管理的研究;包标记接口则用于给数据包标记额外的传输信息,支持端到网和网到端的反馈,可用来实现端网协同的设计方案,例如高精度拥塞控制(HPCC) [15]、数据中心传输控制协议(DCTCP) [16]等。 4种接口之间可以独立开发、相互组合,也可以协同设计以完成更复杂的功能,以满足研究者的不同需求。
除了算法接口之外,我们还对模拟器实验场景配置中常用的几种功能进行了接口抽象,具体包括拓扑配置、链路状态配置、设备配置和流配置4 种。拓扑配置接口负责表达模拟设备连接关系,用来将模拟设备组成实验拓扑;链路状态配置接口则用来配置设备间链路的状态信息,包括传输物理延时、带宽大小、丢包率等;模拟设备配置接口负责规定模拟设备性能参数以及算法;传输数据配置接口则主要规定了模拟设备之间的静态传输任务,用来配置流量分布。通过这4 种接口,研究者能够快速构造目标的实验场景的具体参数,进行验证性实验。
4验证性实验
我们在模拟器中实现了几种典型传输优化方案,并进行了功能验证实验,用来验证模拟器的功能正确性。我们分别从拥塞控制研究、端网协同算法研究和应用层码率自适应研究角度出发来构造场景,实验验证了多流竞争、 DCTCP 模拟和 ABR 模拟的效果。
4.1多流競争场景
多流竞争实验是拥塞控制算法研究中重要的实验场景,常用于对比算法之间的公平性。 Reno 是最广泛应用的拥塞控制算法,其包含的慢启动、拥塞避免、快速重传和快速恢复机制是现有的很多新型拥塞控制算法的基础。 Reno 算法在执行过程中需要维护拥塞控制窗口和阈值。当现有拥塞控制窗口低于阈值时, Reno 算法进入慢启动状态,拥塞窗口按照指数增长;反之则进入拥塞避免状态,采用线性增长。拥塞窗口限制了同时能在网络中传输的数据包数量,也就达到了避免网络拥塞的目的。 Reno 核心的和式增加、积式减少机制自1988年提出以来,就是基于拥塞窗口的算法中最经典的控制机制,后续的很多研究都基于此。因此,我们选用 Reno 算法验证模拟器对多流复用同一信道的模拟效果。
我们模拟了一个3 对1 的传输场景,即3 条流共享1 个转发节点。 3 个端系统分别运行1 个 Reno 的拥塞控制算法,并在 0 s、 60 s、 120 s 依次开始向同一个节点发送数据,分别运行180 s 后结束。在此过程中, 3个端系统上的 Reno 会经历单流、双流竞争、三流竞争,再到双流竞争、单流,端系统吞吐结果如图2 所示。多流竞争的场景还原了 Reno 多流竞争时的特点,双流和三流的竞争场景基本上实现了多流的公平性。从吞吐上看,多条 Reno 流量均分了带宽,模拟的转发节点也维持了2 Mbit/s 的转发速度,整体模拟效果符合预期。
4.2 DCTCP 模拟场景
作为一种利用网络设备反馈信息优化拥塞控制的经典算法, DCTCP 很适合用来验证模拟器在复杂算法设计研究中的功能。 DCTCP 使用的显式拥塞通告(ECN)是一种广泛应用的机制,绝大多数商用交换机都已经实现了类似的功能。具体来说,交换机感知实时的队列长度,并在其超过设定阈值时标记数据包,以通知端系统主动退让。 DCTCP 利用 ECN 机制,实现了算法收敛快和传输时延低。 DCTCP 使用与 ECN 信号相关的 alpha 值来调整拥塞窗口(CWND),这在加速了收敛的同时使得链路缓存维持在特定阈值。区别于 Reno 倾向于填满缓存, DCTCP 会主动降低队列占用,从而降低了时延。
我们构造了1 对1 的传输场景,用来验证 DCTCP 的模拟效果。链路的传输速度在20s 时折半,转发节点的 ECN 标记阈值被设置为20个包,测试的结果如图3 所示。我们将吞吐表现、转发节点缓冲长度和 DCTCP 的端系统窗口大小绘制在了图中。模拟器中的 DCTCP 在队列累积到阈值时,就会主动降低传输速度避免拥塞丢包缓存,这一点充分体现出了DCTCP 的方案特点。与 Reno 只基于丢包的控制逻辑不同, DCTCP 利用 alpha 状态量和 ECN 标记,在队列还未因完全填满导致丢包时就主动消去了部分 CWND 来降低发送速度。在图3 中, DCTCP 的窗口大小在一定区间内小幅波动,而不是类似于 Reno 的折半再增长。
4.3 ABR 模拟场景
为了验证模拟器在流媒体码率自适应研究中的功能,我们构造了基于 Buffer 的码率自适应算法(BBA-0) [17]模拟实验。 BBA-0 算法是一种基于 Buffer 的 ABR 算法,以当前缓冲量作为输入来决定目标比特率。 BBA 算法有低阈值和高阈值两个参数,当 Buffer 量低于低阈值时只采用最低清视频流快速填充,高于高阈值时只使用最高清视频流,介于两者之间的则按照比例线性选择中间的清晰度。总体上 BBA-0会展示出优先免卡顿的特点,避免 Buffer 量下降。
我们设置了简化的流媒体点播场景来对码率自适应功能进行测试。视频流量只有低清和高清两种,网络带宽在30~40 s 折半。我们将总 Buffer 量、低清 Buffer 量和高清 Buffer 量的变化绘制如图4 。启动阶段, 我们优先选择低清流量建立 Buffer,当 Buffer 量较为稳定后再切换至高清流量, 以获取更好的用户体验。在带宽骤降阶段, Buffer 被消耗, BBA-0切换回低清流量以重新填满 Buffer。从模拟结果来看,模拟器中实现的 BBA-0算法符合其功能特点,很好地展示了模拟器对码率自适应功能的模拟。
5结束语
模拟器验证是传输优化研究过程的重要组成部分,但现有模拟器并不适应日益复杂的研究需求。本文分析了传输优化研究的几个重要细分领域对传输模拟器的需求,并总结了现有模拟器存在的问题。以此为基础,提出了一种轻量化传输模拟器系统。本传输模拟器在提供算法接口保证易用性的同时实现轻量化,并取得了较好的模拟效果,能够支持机器学习及非机器学习的各类传输优化方案的性能验证。
模拟器的功能拓展和性能优化都需要更多的研究。一方面,传输优化研究不局限于文中提到的拥塞控制算法和码率自适应算法。模拟器需要进一步设计并实现更多的算法接口以支持更多复杂的传输优化研究。另一方面,模拟器需要进一步优化运行效率,最大限度地发挥轻量化设计框架带来的效率优势。
[14] LANGLEY A, RIDDOCH A, WILK A, et al. The QUIC transport protocol : design and Internet-scale deployment [C]//Proceedings of the ACM Special Interest Group on Data Communication . ACM, 2017: 183-196. DOI:10.1145/3098822.3098842
[15] LI Y L, MIAO R, LIU H H, et al. HPCC: high precision congestion control [C]//Proceedings of the ACM Special Interest Group on Data Communication. ACM, 2019:44-58. DOI:10.1145/3341302.3342085
[16] ALIZADEH M, GREENBERG A, MALTZ D A, et al. Data center TCP (DCTCP) [C]//Proceedings of the ACM SIGCOMM 2010 Conference on SIGCOMM-SIGCOMM '10. ACM, 2010: 63-74. DOI: 10.1145/
1851182.1851192
[17] HUANG T Y, JOHARI R, MCKEOWN N, et al. A buffer-based approach to rate adaptation: evidence from a large video streaming service [C]// Proceedings of the 2014 ACM Conference on SIGCOMM . ACM, 2014:187-198. DOI:10.1145/2619239.2626296
參考文献
[1] FLOYD S, HENDERSON T, GURTOV A. The newReno modification to TCP’s fast recovery algorithm [S]: Rfc3782. IETF, 2004
[2] HA S, RHEE I, XU L. Cubic: a new TCP-friendly high-speed TCP variant [J].ACM SIGOPS operating systems review, 2008, 42(5): 64-74
[3] CARDWELL N, CHENG Y, GUNN C S, et al. Bbr [J]. Communications of theACM, 2017, 60(2): 58-66. DOI: 10.1145/3009824
[4] DONG M, LI Q X, ZARCHY D, et al. PCC: re-architecting congestion controlfor consistent high performance [EB/OL]. (2014-09-24)[2021-12-10].https://arxiv.org/abs/1409.7092
[5] AKAMAI. Dash. js [EB/OL]. [2021-12-12]. https://github. com/DashIndustry-Forum/dash.js/
[6] YIN X Q, JINDAL A, SEKAR V, et al. A control-theoretic approach fordynamic adaptive video streaming over HTTP [C]//Proceedings of the 2015
ACM Conference on Special Interest Group on Data Communication. ACM,2015: 325-338. DOI: 10.1145/2785956.2787486
[7] MAO H Z, NETRAVALI R, ALIZADEH M. Neural adaptive video streamingwith pensieve [C]//Proceedings of the Conference of the ACM SpecialInterest Group on Data Communication. ACM, 2017: 197-210. DOI:10.1145/3098822.3098843
[8] WINSTEIN K, BALAKRISHNAN H. TCP ex machina [J]. ACM SIGCOMMcomputer communication review, 2013, 43(4): 123-134. DOI: 10.1145/2534169.2486020
[9] DONG M, MENG T, ZARCHY D, et al. PCC vivace: online-learningcongestion control [EB/OL].[2021-12-10]. https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dong.pdf
[10] ABBASLOO S, YEN C Y, CHAO H J. Classic meets modern: a pragmaticlearning-based congestion control for the Internet [C]//Proceedings of theAnnual Conference of the ACM Special Interest Group on DataCommunication on the Applications, Technologies, Architectures, andProtocols for Computer Communication. ACM, 2020: 632-647. DOI:10.1145/3387514.3405892
[11] HENDERSON R T, LACAGE M, RILEY F G. Network simulations with thens-3 simulator [EB/OL]. [2021-12-10]. http://conferences. sigcomm. org/sigcomm/2008/papers/p527-hendersonA.pdf
[12] NETRAVALI R, SIVARAMAN A, DAS S, et al. Mahimahi: accurate recordand-replay for HTTP. [EB/OL]. [2021-12-10]. http://mahimahi. mit. edu/mahimahi_atc.pdf
[13] TANTAWY M M. Effect of transmission control protocol on limited buffercognitive radio relay node [J]. Communications and network, 2015, 7(3):20-27. DOI: 10.4236/cn.2015.73013
作者簡介
叶洪波,国网上海市电力公司副总工程师兼调度控制中心主任,高级工程师;主要从事电网调度运行管理、设备运维检修管理等工作;负责并参与了多项国网公司和上海公司科技项目,获得省部级科技奖5 项,被评为国家电网公司劳动模范;发表论文10余篇。
潘俊臣,清华大学在读博士研究生;主要研究领域为恶意流量检测和可编程网络设备应用。
崔勇,清华大学计算机系教授、博士生导师、网络技术研究所所长,教育部青年长江学者,国家优秀青年科学基金获得者,教育部新世纪人才和中创软件人才奖获得者,中国通信标准化协会理事,国际互联网标准化组织 IETF IPv6过渡工作组主席;获得国家技术发明奖二等奖1 次、国家科学技术进步奖二等奖1 次、省部级科技进步一等奖4 次以及国家信息产业重大发明2 次,所提出的 IPv6过渡技术被国际互联网标准化组织 IETF 制定为 9项 RFC;发表论文100余篇,获国家发明专利40余项,出版学术著作4 部。