基于强化学习的拥塞窗口调整策略研究

known 发布于 2025-08-24 阅读(380)

周萍

(南昌职业大学,江西 南昌 330599)

0 引 言

网络拥塞控制策略是确保数据传输稳定性和网络资源利用公平性的网络系统关键模块。传输控制协议(Transmission Control Protocol, TCP)是当前Internet等网络主流的传输协议,TCP实现了大多数的拥塞控制机制。但是,随着网络功能和服务的发展,现有的TCP已经逐渐不适应当前网络的需求。例如,TCP会将随机的数据包丢失检测为网络拥塞,从而导致数据传输性能下降。对此,研究者们针对不同应用场景中的TCP协议提出了许多新颖的拥塞控制方法中。在动态且资源受限的网络中计算合适的拥塞窗口是一个极具挑战的问题。然而现有的拥塞控制机制无法很好地适应快速变化的网络环境。对此,提出了CWARL,一种基于强化学习的拥塞窗口调整策略。CWARL(Congestion Window Adjustment based on Reinforcement Learning)在源节点进行在线训练,并在可用时使用网络内机制确定拥塞窗口的更新值。

1 状态、动作和奖励函数定义

CWARL策略利用发送者收集的统计数据来计算下一个拥塞窗口值。表1展示了本文选择用来构建模型状态空间的特征。其中,特征1到7是端到端的统计特征,特征8和9是网络的统计特征。端到端的特征是由发送方在每个时间间隔内进行收集。网络统计特征分别代表来自网络的部分信息(特征8)和一个表示知识量的参数(特征9)。对于每个受控制的交换机,令为在给定时间间隔内接收到的数据包总数,而为传出数据包的总数。然后将diff 定义为-。

表1 CWARL所使用的特征

部分网络知识(PNK)代表了网络已知拥塞程度的指标。PNK可以使用以下公式计算:PNK=max(diff,…,diff)。PNK显示了当前的拥塞级别,即网络中的丢失率。PNK可以通过协议和网络测量应用程序(例如OpenFlow或NetFlow)进行测量得到。此外,将每个所选特征的个历史窗口视为状态,以充分预测网络状况并相应地调整拥塞窗口。提出的深度强化学习算法的神经网络的输入为一个×矩阵,将值设置为5。

拥塞窗口是连接状态变量之一,TCP使用它来限制发送方在收到ACK之前可以传输的数据量。在有损链路中,当丢包发生后,TCP会通过过度地减少拥塞窗口来大幅度地降低传输速率,从而对端到端传输性能产生负面影响。因此,利用基于RL的在线训练算法来正确更新拥塞窗口。CWARL的动作是用来确定拥塞窗口的改变量,拥塞窗口改变量所构成的集合很大,并且与RL系统的奖励相关。所使用的动作集合为:={-10,-3,-1,0,1,3,10}。

CWARL动作集合的前三个选项以不同程度减小拥塞窗口的大小,而后三个选项将以不同的幅度增加拥塞窗口的大小。CWARL将拥塞窗口的初始值设置为10。CWARL学习如何根据经验做出控制决策,因此无须必要的预编码规则来适应各种网络环境。拥塞控制模式的选择依赖于效用函数,具体来说,发送方的效用是吞吐量和丢包率的函数,如式(1)所示:

其中是一个可调整的系数,决定了吞吐量和丢包率之间的重要性。每个发送者的目标是最大化其效用函数U。

2 CWARL策略设计

图1详细地说明发送方执行的主要操作,收集到的指标被馈送到神经网络,随后CWARL启动,如算法1所示。

图1 CWARL概述

算法1 CWARL拥塞窗口更新1.S←源节点;2.D←目的节点;3.F←从S出发、以D为目的节点的流;4.收集时刻t流F的状态s;5.cwnd*(t)←cwndPre(s, t);6.cwnd←cwnd*(t);

我们利用TCP Linux的API收集诸如时延和吞吐量的端到端通信状态。关于网络反馈,网络测量代理通过控制底层拓扑计算PNK,并将其通知给发送者。获取源和目的节点之间的完整路径并不总是可能的,即使网络反馈不完整或不可用,即神经网络不使用网络内特征,CWARL仍然可以提供有意义的结果。

CWARL会根据值表通过选择动作来确定下一个拥塞窗口。预测下一个拥塞窗口值的算法如算法2所示。该算法利用状态、动作和奖励来选择最佳值并更新值表。每当确认数据包到达的时候都会预测最佳拥塞窗口,以保证在拥塞避免阶段对拥塞窗口进行充分刷新。然后更新状态集以确保每个度量在任何时间间隔都有个历史值。

算法2 cwndPre(s, t)算法1. r(t)←Ui=λi-δiλi(1/(1-pi)) ;2. Q(s, a)←Q(s, a)+α(r+γmaxaQ(s, a)-Q(s, a));3.cwnd*(t) ←softmax(a, s, t);4.Return cwnd*(t);

CWARL充分考虑了网络部分未知的实际场景,网络可能需要多个网关的协作和协调,不稳定的网络条件可能会隐藏网络的信息。

设计和实现一个网络系统,该系统将软件定义网络(SDN)控制器作为测量收集器并仅管理一些已部署的虚拟交换机。虽然在实现中使用了SDN控制器,但该系统并不局限于这种特定的网络技术。控制器定期与交换机交互以收集有关发送和接收的数据包统计信息。然后,使用这些统计数据来学习和预测在给定拥塞级别的情况下要采取的端到端动作。 在此处的实现中,控制器以每秒一次的采样率从所有交换机接收数据包的统计信息,以实现负载和信息新鲜度之间的折衷。

CWARL通过与测量代理(如SDN控制器)通信来获取网络状态,以设置最优拥塞窗口。CWARL由两个主要进程组成:一个进程在内核中运行,另一个在用户空间中运行。运行在内核的进程利用Linux内核中的拥塞控制模块中的函数来访问TCP的底层拥塞控制功能。本内核实现可以作为可插入的拥塞控制算法进行安装,并可以设置和获取端到端的传输状态(如序列号和RTT),并有效地计算吞吐量。

在用户空间中运行的应用程序进程收集有关当前TCP的套接字信息,并使用它们来构建运行强化学习算法的深度神经网络输入矩阵。该模块根据RL的反馈采取行动,并修改拥塞窗口以应对事件。

在内核级别存储运行强化学习算法和保持与网络控制器通信所需的状态可能会很昂贵。而用户空间应用程序可以利用更广泛的库集来满足学习算法的需求。基于此,在用户空间实现了拥塞控制算法的网络管理组件,并通过Netlink服务在用户空间和内核之间连接当前TCP套接字状态。基于强化学习的拥塞控制器在固定周期内通过ACK统计网络数据,并以异步的方式使用独立的线程发送动作。

3 实验评估

为了评估提出的CWARL,实验评估部分将CWARL与3种现有的传输策略相比。其中,将Cubic作为端到端拥塞控制的代表,Aurora作为基于强化学习的拥塞控制的代表,ABC作为网络内控制的代表。实验部分使用虚拟网络测试平台和Mahimahi仿真器。通过Mininet实现了网络命名空间,结合SDN技术,实现交换机与中央控制器交互。实验还评估了真实主机的性能,并在GENI测试平台上部署了CWARL。实验采用两个的公开数据集(用数据集1和数据集2表示),为上行链路和下行链路提供单独的数据包传输。OpenFlow控制器只能从连接到SDN控制器的虚拟交换机中获取信息。

图2展示了CWARL与其他策略在吞吐量和时延方面的对比。在数据集1的情况下,如图2(a)所示,CWARL具有较高的吞吐量、获得较低的时延。与其他策略相比,CWARL实现了最好的综合性能。CWARL奖励函数的目标是实现高吞吐量和低丢包率,因此可以提高传输效率,降低时延。数据集2的结果与数据集1的结果相似,如图2(b)所示。综上所述,CWARL在吞吐量和延迟之间做出均衡,能获得更好的综合性能。

图2 吞吐量和时延性能对比

图3展示了随着网络知识变化的吞吐量和时延结果对比。由于Cubic和Aurora均为端到端的拥塞控制算法,因此他们的性能不受缺乏网络知识的影响。由结果可知,随着可用的部分网络知识的增加,CWARL的吞吐量会大幅增加、延迟大幅度减少。

图3 随着网络知识变化的性能对比

为了评估CWARL的实用性,在GENI测试平台上部署了CWARL。图4展示了CWARL策略与其他策略的对比结果。由结果可知,与其他策略相比,CWARL策略可以实现高吞吐量和低丢失率,有效地在两者间取得了平衡。

图4 吞吐量和丢包率性能对比

4 结 论

本文提出了一种基于强化学习的拥塞窗口调整策略——CWARL。通过实现CWARL策略,结合真实数据集验证了CWARL的有效性。实验结果表明,与现有的策略相比,CWARLs基本能够更好地提高传输效率并降低时延和丢包率。在未来的研究中,将CWARL部署到真实的应用环境中,进一步评估验证CWARL的性能和有效性,并对CWARL进行有针对性的改善。

标签:  网络 

免责声明

本文来自网络,不代表本站立场。如有不愿意被转载的情况,请联系我们。

iidomino cuppor