基于深度强化学习的MPTCP拥塞控制方法及其存储介质与流程

专利2022-05-09  132


本发明属于新一代通信技术领域,具体涉及基于深度强化学习mptcp拥塞控制。



背景技术:

在现今的网络中智能终端通常配备有包括wifi、3g/4g等多种网络接口,以满足设备在多种异构网络中的数据接入要求。然而,基于传统网络架构和终端需求的单路径tcp协议仅依靠一条单一的数据连接通路来传输信息,无法满足多接入场景下的业务需求。为扩展传统tcp以兼容已有网络并适应新的应用场景,ietf工作组提出了多路径tcp(mptcp)协议,目的是通过重新规划设计传统tcp协议的内部字段,使其能支持多路径数据传输。mptcp通过透明地使用多个路径极大地提高了应用程序的性能,目前已被华为、亚马逊、苹果等公司广泛应用于数据中心网络、无线网络、异构网络等多个领域。

mptcp的拥塞控制算法和数据包调度程序协同工作来消耗来自不同子路径的池化的网络资源,从而实现同一连接下多条子流数据的高效、可靠传输。然而,由于实际网络部署中异构链特性的差异,现有的多径拥塞控制机制存在缓冲区膨胀、带宽利用率低等性能问题;与此同时,现有各种mptcp协议实现方案中,拥塞控制算法与数据包调度程序的设计目标常常并不一致,这就可能造成两者无法很好的配合工作,最终使得各自的功能无法充分发挥,进而阻碍整体应用程序性能的提高。

拥塞控制算法作为mptcp设计和实现的重心,近年来受到广泛关注。到目前为止,已经有许多mptcp拥塞控制算法被提出,以将来自不同子路径的网络资源聚合到一个统一的资源池中,典型代表有coupled、lia和balia,它们控制注入网络的流量以达到诸如提高吞吐量、拥塞转移等总体目标。最简单的mptcp拥塞控制算法是让每个子流独立地调整其cwnd解耦拥塞控制,但存在不公平和拥塞不平衡的问题。lia是mptcp实现的默认拥塞控制算法,它综合考虑丢包率和rtt,在多个传输路径之间进行速率分配,但其性能往往会显得激进,并可能损害其他部分的表现。balia则在lia基础上进行改进,在tcp友好性、响应性和窗口振荡之间取得了良好的平衡。但大部分现有的拥塞窗口调整方法依赖于简单的固定规则,缺乏适应广泛的网络条件和qos目标的能力,此外这类mptcp控制机制是被动的和补救的,不能主动优化资源的使用。

mptcp中最严重的性能问题之一是慢速子流造成的队头阻塞问题,具体来说,是指数据传输过程中,接收端在缓冲区有限的情形下因无法容纳更多的数据,而主动通知发送方暂停传输的现象。该问题常见于路径间rtt差异变化很大的场景,对网络吞吐的损害极大。在mptcp中,接收缓冲区的默认缓冲要求由式1给出,其中假设子流i能够以bwi的全速发送,由于对上层业务的数据交付需要保证连续性和完整性,接收端的数据在最慢路径的数据(即rttmax)到达之前都必须缓存在缓冲区,待完整接收后才能向应用程序传递连续数据。传统tcp的缓冲区要求由式2确定,而不同子流之间的rtt差异性巨大,rttmax往往可以比快速链路上大一个数量级,这就造成mptcp对接收端缓存需求巨大,而在移动设备上缓存相对有限,所以相比之下mptcp更容易发生队头阻塞。



技术实现要素:

本发明针对上述现有技术中存在的问题,本发明设计了一种基于深度强化学习的mptcp拥塞控制算法--partner,来自动化地产生符合不同应用需求的拥塞控制算法,实现端到端的性能优化,解决拥塞控制算法和数据包调度程序的冲突问题。

为达到上述目的,本发明通过以下方案来实现:

提供基于深度强化学习的mptcp拥塞控制方法,所述方法包括以下步骤:

步骤1、提取网络状态,计算得到网络状态的特征属性值;

步骤2、对网络应用类型分类,根据网络状态的特征属性值,匹配对应的网络环境类型,针对每一类网络环境设计不同的奖励计算器,计算得到奖励值;

步骤3、ai拥塞窗口估计器通过奖励值以及网络状态的特征属性值计算得到拥塞窗口的估计值;

步骤4、发送端根据拥塞窗口的估计值进行调整。

进一步的,所述步骤2具体为:

将神经网络部署在包含若干种不同网络环境形成的仿真环境中;

让神经网络与各网络环境所对应的奖励函数指导下与环境进行随机交互,并调整拥塞窗口以获得最大化预期的累积奖励,得到收敛的神经网络;

将训练成熟的神经网络部署在真实网络环境内指导数据传输。

更进一步的,所述不同网络环境包含以下几种:

吞吐量密集型网络,延迟敏感型网络,恒比特率cbr型网络以及子路径之间的负载均衡型网络。

进一步的,在吞吐量密集型网络情况下,奖励函数为:

在式(3)中,在时间片t之内从各个子流得到的吞吐量平均值,为从各个子流得到的在第t个时间片内的数据包丢失数量汇总而得平均值,即其中α在表示相应度量的重要性,根据具体目标进行调整的超参数;

表示子流i在时间片t之中获得的吞吐量,而表示子流i在时间片t之中丢失的数据包的数量。

进一步的,在延迟敏感型网络情况下,奖励函数为:

其中,在时间片t之内从各个子流得到的吞吐(x)、时延(d)和丢包(l)的汇总而得的平均值;β和τ为根据实际环境而进行调整的超参数。

进一步的,在恒比特率cbr型网络情况下,奖励函数为:

在式(5)中,在时间片t之内从各个子流得到的吞吐量平均值,表示子流i在时间片t之中获得的吞吐量;gbw是所述恒比特率cbr型网络需要的保证带宽;sigmoid函数是经典的阶跃函数;

η和μ为根据实际环境而进行调整的超参数,来量化用户对不同网卡的偏好,通过调整η和μ的值来呈现不同的偏好。

进一步的,在子路径之间的负载均衡型网络情况下,奖励函数为:

在式(6)中,在时间片t之内从各个子流得到的吞吐量平均值,为从各个子流得到的在第t个时间片内的数据包丢失数量汇总而得平均值,即表示子流i在时间片t之中获得的吞吐量,而表示子流i在时间片t之中丢失的数据包的数量。

作为本申请的一种优选实施方案,当检测到一个网络流量状态时,采用p-greedy方法进行决策:以(1-p)的概率执行lia算法,p的概率执行随机算法,p为进行神经网络随机探索的概率,(1-p)为以固定的lia算法进行探索的概率;

在学习初期,p值接近于0,后期p值增大。

在仿真环境中,扩大仿真环境的动态变化范围,让神经网络在训练的过程中尽可能多地在不同的环境设置下都可以收敛。

本申请还提供一种计算机可读存储介质,所述存储介质中含有上述基于深度强化学习mptcp拥塞控制方法。

本发明具有如下有益效果:

(1)模型泛化,为4种最常见的网络环境提供了奖励函数供神经网络进行学习,解决了常见网络环境中的拥塞状况。

(2)与现有的调度器联合使用,可以有效地避免hol问题。

附图说明

图1为本发明方法所应用的系统架构图。

具体实施方式

下面结合具体实施例以及附图对本发明设计方法进行详细阐述。

如图1所示,本项目针对现有技术的不足,设计了一套基于异步强化学习(drl)的mptcp拥塞控制算法——partner,由于任何一种拥塞控制协议都可被自然地视为由本地感知的网络状态到未来预期发送速率的一个映射,partner将mptcp的拥塞控制建模为drl任务,从环境中学习策略并调整拥塞窗口,以获得最大的预期累积奖励,最终用来指导数据传输。该算法的运行主要由三个阶段组成:引导(bootstrapping)阶段、离线学习(offlinelearning)阶段和在线学习(onlinelearning)阶段。

本申请基于深度强化学习的mptcp拥塞控制方法,基于以下硬件设备:网络状态特征提取器、奖励计算器以及ai拥塞窗口估计器;其中,

所述网络状态特征提取器:用于提取体现网络状态的特征属性值;

所述奖励计算器:根据观测的网络特征状态,计算上次动作的奖励值,所述奖励值用于调整ai拥塞窗口估计器的参数;

所述ai拥塞窗口估计器:根据网络状态,估算当前可用的拥塞窗口值。

该方法包括以下步骤:

步骤1、提取网络状态,计算得到网络状态的特征属性值;

步骤2、对网络应用类型分类,根据网络状态的特征属性值,匹配对应的网络环境类型,针对每一类网络环境设计不同的奖励计算器,计算得到奖励值;

步骤3、ai拥塞窗口估计器通过奖励值以及网络状态的特征属性值计算得到拥塞窗口的估计值;

步骤4、发送端根据拥塞窗口的估计值进行调整。

具体的说,上述步骤2、步骤3采用神经网络、深度学习的机制,计算得到拥塞窗口估计值,具体包括以下步骤:

步骤一,将一张未经训练的神经网络部署在ns2形成的仿真环境中,让该神经网络在不同的奖励函数的指导下,和环境进行随机探索和交互。

步骤二,尽可能地扩大仿真环境的动态变化范围,让神经网络在训练的过程中,尽可能多地在不同的环境设置下都可以收敛。

步骤三,在仿真环境的训练过程中,观察训练的准确率和损失换数随次数变化的曲线,得到训练成熟的网络。

步骤四,在实际的实验床中,部署在仿真环境中收敛的、不同奖励函数的神经网络,观察其是否能按照不同的目标函数收敛到最佳目标性能。

拥塞窗口调整策略可以被抽象为一个由机器学习方法产生的决策问题,架构如图1所示:拥塞控制ccagent通过与动态网络环境environment(在本示例中为ns2的仿真环境)互动来学习策略,并对该环境进行操作以获得最大化预期的累积奖励,从而在整个实验中获得最佳性能。

为了配合不同的数据包调度程序,并满足不同的应用程序要求,本项目设计了多种reward函数,使神经网络朝着与调度程序相同的目标演进。为了展示partner在mptcp拥塞控制与数据包调度程序之间协作的强大功能,本团队说明了应用程序的四个代表性目标,基于全连接神经网络,采用近端策略优化算法ppo使神经网络收敛。在下面设计了相应的奖励函数。

实施例1

(1)吞吐量密集型应用

这种应用程序的带宽开销很大,并且倾向于消耗尽可能多的带宽。例如,批量传输应用程序希望尽可能大的带宽,并且对网络延迟不敏感。因此,奖励函数应反映对带宽的要求,并促使ccagent抢占更多带宽以获得更高的累积奖励。同时,需要避免ccagent破坏其他流的传输。它不应过于激进地占用网络缓冲区并导致过多不必要的数据包丢失。遵循这一原理,本项目设计了相应奖励函数,以同时在多个子流上传输冗余数据,从而获得更高的吞吐量。

在式(3)中,设在时间片t之内从各个子流得到的吞吐量(x)平均值,设为在第t个时间片内的数据包丢失数量即其中α在表示相应度量的重要性,根据具体目标进行调整的超参数;表示子流i在时间片t之中获得的吞吐量,而表示子流i在时间片t之中丢失的数据包的数量。

实施例2

(2)延迟敏感应用

这类应用对延迟较为敏感,且对带宽的需求不是很大。不同于吞吐量密集型应用程序中很长的流,这类应用的数据流通常较小,只需要很短的rtts时间内即可传输完毕。因此,过长的尾部延迟将对性能产生显著的负面影响,fct将成为性能的最关键指标。然而,如果直接使用fct作为reward函数,这意味着在流传输的最后只有一个reward。在这种情形下,reward的分布将非常稀疏,这会使神经网络很难学习。因此,本申请求助于一个间接的度量——吞吐量,来构建reward函数。原因是当流量长度固定时,fct越短,吞吐量越高。partner在可以改变状态观测时间的同时重用式3。因此,partner将状态观察时间从agent定期观察环境改为让环境在流结束时主动向ccagent输出统计信息,使agent意识到流的完成,并区分缩短fct的决策的好坏。

同时,对延迟敏感的用户应注意保持较低的缓冲区占用率,避免严重的缓冲区膨胀问题。此外,数据包丢失将显著增大短流的fct,因为检测数据包丢失需要多次rtts。在最坏的情况下,如果流太小,无法触发足够多的重复ack包,流必须等待当前linux内核中默认持续200ms的rto,这往往比断流的fct要长得多,造成非常严重的性能下降。总而言之,对于延迟敏感的应用程序,期望的奖励函数应该考虑很多因素,例如,吞吐量、延迟和数据包丢失。因此,partner设计式4的奖励函数来缩短短期流的fct。

其中,β和τ为根据实际环境而进行调整的超参数。

为在时间片t之内从各个子流得到的吞吐(x)、时延(d)和丢包(l)的汇总而得的平均值。

实施例3

(3)恒比特率(cbr)应用

这种应用以恒比特率生成数据,通常不会消耗额外超出自身需求的带宽。例如,一个直播视频流应用程序以恒定的速率生成和编码数据,因此消耗恒定的带宽。与上面的应用程序不同,cbr应用程序需要更细粒度的控制,并且经常有用户的附加需求。用户可以对数据传输的子流指定特定的首选项。例如,用户的手机同时具备wifi和4g网络,如果免费wifi可以完全满足用户的数据传输需求,即使是4g接口是免费的,用户也会选择免费wifi。因此,为了保证恒定的比特率传输,并揭示用户的需求,partner设计了以下reward函数:

在式(5)中,变量和xt与式(4)中是相同的;gbw是应用程序需要的保证带宽;sigmoid函数是一个经典的阶跃函数;

在这种情况下,当测量得到吞吐量大于保证带宽gbw时,agent获得reward,但是消耗更多的带宽并不会增加奖励;与此同时,partner使用超参数η和μ,来量化用户对网卡i和j的偏好,partner通过调整η和μ的值来呈现不同的偏好。

实施例4

(4)子路径之间的负载均衡应用

这个目标力求平衡在终端主机上通过多个网络接口注入的流量。mptcp的设计目标之一是平衡子路径之间的负载,rr调度程序以循环方式在这些路径上传输数据。在理想的情况下,资源在不同的路径上相同地汇集,rr调度程序在不同路径上相同地分布数据量。但是,如果没有适当地量化资源,即使使用rr调度程序也可能导致流量不平衡。因此本团队设计了reward函数使得ccagent在训练中学习负载均衡。

在式(6)中,变量和xt与式(4)中是相同的;变量用于最大化所有子流的总吞吐量,同时在总吞吐量是固定的时候,子流之间的吞吐量差距越小,该reward函数返回的奖励值就越大,以此达到在尽可能提升总吞吐的时候,同时保证子流之间的公平性。

基于本申请提供的上述控制方法,能够实现:

队列大小敏感性:随着队列大小的增加,传统mptcp拥塞控制算法的cwnd大大膨胀,很容易引起缓冲区膨胀问题。partner可以正确地认识到cwnd的增加不会导致更大的吞吐量,但是会导致更大的网络延迟和数据包丢失,并停止盲目地提高发送速率。

随机丢失率敏感性:随着随机丢失率的增加,传统mptcp拥塞控制算法的cwnd将被限制在接近零的较小值。轻微的随机数据包丢失将极大地限制发送速率。通过设置对随机分组丢失不敏感的reward函数,本项目训练好的模型可以感知到增加的cwnd不会加剧分组丢失,因此可以正常增长其cwnd并充分利用有损链路。

端到端延迟灵敏度:随着端到端延迟的增加,所有拥塞控制算法的平均cwnd都在增长。相比之下,partner精确地池化了可用带宽资源,并有效地避免了缓冲区膨胀。

partner可以有效地避免hol问题,并通过改变队列大小来提高吞吐量。随着无线ap中缓冲区大小的增加,遇到hol阻塞的可能性大大增加。在这种情况下,发送速率的提高不会导致更好的吞吐量,但会导致更大的网络延迟和数据包丢失。该条件下,partner可以识别到这一点,并控制了发送速率,这将提高吞吐量并避免hol问题。

partner可以有效利用有损无线链路并大大缩短fct。增加的发送速率并不会导致丢包率的上升。为了减少尾部延迟,延迟敏感型应主动使用有损链接。

partner可以在保证带宽的同时,保持用户的偏好。partner知道应用程序的要求,并且只会使用有线路径来保证带宽要求。

partner可以在随机丢包的链路中平衡流量负载。随着无线链路上随机丢失率的增加,传统算法的吞吐量大大降低,因为它们区分了随机分组丢失和拥塞造成的分组丢失。相反,partner可以从环境中学习并平均分配两个链路的带宽,从而获得相当稳定的归一化吞吐量。

实施例5

在学习过程的开始阶段,ccagent不了解环境,也缺乏数据来训练模型得出最优策略。因此,agent可能会花费大量的时间来收集数据和训练神经网络,导致收敛速度慢。在如此长的训练时间里,未成熟的模型可能会导致决策远远不是最优的,特别是当agent遇到未知的环境时。

基于上述方法,在训练的开始阶段,ccagent需要一个拥有通识的“监督者”来指导它进行决策。具体来说,partner使用默认的拥塞控制算法,lia在模型收敛之前做出决策。当agent检测到一个状态时,会用p-greedy的方法进行决策:以(1-p)的概率执行lia算法以p的概率执行随机算法。通过设定执行本申请算法的概率p,能够快速训练神经网络,使其达到收敛状态。

在学习初期,p值接近于0,lia算法参与较多,待神经网络熟悉网络环境并且能够得到较为合适的决策后,会逐渐增大p值,减小lia算法的参与度,该过程能够使神经网络快速学习,缩短训练时间。

本申请提供的基于深度强化学习的mptcp拥塞控制方法,基于神经网络的深度强化学习机制在多种网络环境下造成的拥塞情况中进行学习策略,调整拥塞窗口,最终用来指导数据传输。

本申请还提供用于存储上述基于深度强化学习mptcp拥塞控制方法的存储介质。

以上内容是结合具体的实施例对本发明所作的详细说明,不能认定本发明具体实施仅限于这些说明。对于本发明所属技术领域的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明保护的范围。


技术特征:

1.基于深度强化学习的mptcp拥塞控制方法,其特征在于,所述方法包括以下步骤:

步骤1、提取网络状态,计算得到网络状态的特征属性值;

步骤2、对网络应用类型分类,根据网络状态的特征属性值,匹配对应的网络环境类型,针对每一类网络环境设计不同的奖励计算器,计算得到奖励值;

步骤3、ai拥塞窗口估计器通过奖励值以及网络状态的特征属性值计算得到拥塞窗口的估计值;

步骤4、发送端根据拥塞窗口的估计值进行调整。

2.根据权利要求1所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,所述步骤2具体为:

将神经网络部署在包含若干种不同网络环境形成的仿真环境中;

让神经网络与各网络环境所对应的奖励函数指导下与环境进行随机交互,并调整拥塞窗口以获得最大化预期的累积奖励值,得到收敛的神经网络,奖励值驱动神经网络演化出不同的拥塞控制策略;

将训练成熟的神经网络部署在真实网络环境内指导数据传输。

3.根据权利要求2所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,所述不同网络环境包含以下几种:

吞吐量密集型网络,延迟敏感型网络,恒比特率cbr型网络以及子路径之间的负载均衡型网络。

4.根据权利要求3所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,在吞吐量密集型网络情况下,奖励函数为:

在式(3)中,为在时间片t之内从各个子流得到的吞吐量平均值,为从各个子流得到的在第t个时间片内的数据包丢失数量汇总而得平均值,即其中α表示相应度量的重要性,根据具体目标进行调整的超参数;

表示子流i在时间片t之中获得的吞吐量,而表示子流i在时间片t之中丢失的数据包的数量。

5.根据权利要求3所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,在延迟敏感型网络情况下,奖励函数为:

其中,分别为在时间片t之内从各个子流得到的吞吐(x)、时延(d)和丢包(1)的汇总而得的平均值;β和τ为根据实际环境而进行调整的超参数。

6.根据权利要求3所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,在恒比特率cbr型网络情况下,奖励函数为:

在式(5)中,为在时间片t之内从各个子流得到的吞吐量平均值,表示子流i在时间片t之中获得的吞吐量;gbw是所述恒比特率cbr型网络需要的保证带宽;sigmoid函数是经典的阶跃函数;

η和μ为根据实际环境而进行调整的超参数,来量化用户对不同网卡的偏好,通过调整η和μ的值来呈现不同的偏好。

7.根据权利要求3所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,在子路径之间的负载均衡型网络情况下,奖励函数为:

在式(6)中,为在时间片t之内从各个子流得到的吞吐量平均值,为从各个子流得到的在第t个时间片内的数据包丢失数量汇总而得平均值,即表示子流i在时间片t之中获得的吞吐量,而表示子流i在时间片t之中丢失的数据包的数量。

8.根据权利要求1至7任一项所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,采用p-greedy方法进行决策:以(1-p)的概率执行lia算法,p的概率执行随机算法,p为进行神经网络随机探索的概率,(1-p)为以固定的lia算法进行探索的概率;

在学习初期,p值接近于0,后期p值增大。

9.根据权利要求8所述的基于深度强化学习的mptcp拥塞控制方法,其特征在于,

在仿真环境中,扩大仿真环境的动态变化范围,让神经网络在训练的过程中尽可能多地在不同的环境设置下都可以收敛。

10.一种计算机可读存储介质,其特征在于,所述存储介质中含有如权利要求1至8任一项所述的基于深度强化学习mptcp拥塞控制方法。

技术总结
本发明公开一直基于深度强化学习的MPTCP拥塞控制方法及其存储介质,该方法基于神经网络的深度强化学习机制在多种网络环境下造成的拥塞情况中进行学习策略,调整拥塞窗口,最终用来指导数据传输。该方法能够自动化地产生符合不同应用需求的拥塞控制算法,实现端到端的性能优化,解决拥塞控制算法和数据包调度程序的冲突问题。

技术研发人员:张娇;黄程远;黄韬;刘韵洁
受保护的技术使用者:网络通信与安全紫金山实验室;北京邮电大学
技术研发日:2021.03.16
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-513.html

最新回复(0)