一种边缘云网络中测量实际可用带宽的方法与流程

文档序号:30298424发布日期:2022-06-04 20:03阅读:177来源:国知局
一种边缘云网络中测量实际可用带宽的方法与流程

1.本发明涉及网络带宽测试技术,尤其涉及一种边缘云网络中测量实际可用带宽的方法。


背景技术:

2.网络系统中的资源总是有限的,只要存在抢夺网络资源的情况,就会出现服务质量(quality of service,qos)的要求。因此,只有准确获取网络设备的实际可用资源,才能实现对服务质量进行有效控制。
3.通常情况下,影响服务质量的主要因素是网络设备的实际可用带宽,有效的评估指标是延时和丢包率。然而,一般的服务器所连接的网络都有其带宽上限,一台服务器即使是性能无限的,但它的网络服务能力也受到链路上网络设备能力的制约。在边缘计算领域,由于服务器所处在网络的边缘,因此带宽的质量相对较差,即延时和丢包率会比数据中心机房的差一些。因此在边缘服务器上部署任务,必须要考虑带宽的质量,以免影响任务的服务质量。
4.一般性的来讲,在同一网络环境下,吞吐量越高,带宽的延时和丢包率也会相应地有所增加。因此,在部署任务前需要对边缘服务器的带宽压测,并记录其在不同带宽吞吐量情况下的带宽时延和丢包率。之后根据任务所能接受的带宽时延和丢包率,限制服务器的吞吐量,使其在任务运行时,网络的时延和丢包率不至于太差而导致任务无法服务,同时服务器的带宽又尽可能的充分被利用。
5.因此如何准确的测量出边缘节点的实际可用带宽,以供合理地为部署在网络节点的服务分配带宽资源,是稳定和确保边缘计算服务质量的一大前提。
6.目前常见的可用带宽测量方法主要包含两大类,第一类是基于系统性能瓶颈的测量方法,第二类是基于统计学习的测量方法。
7.·
基于系统性能瓶颈的测量方法
8.基于系统性能瓶颈的测量方法。该方法又包含基于包对(packet pairs)的测量方法和基于包队列(packet trains)的测量方法。
[0009]-基于包对(packet pairs)的测量方法
[0010]
其中,基于包对的测量方法的核心思想是在进行数据传输时,由于背景流量的存在,在经过紧链路时,探测包之间的间隔由于背景流量的插入而引起变化,此时如果知道紧路容量,就可以根据探测报文输入输出间隔的变化计算出背景流量,进而得到可用带宽。
[0011]
在基于包对的测量方法中,要求待测网络满足几个重要条件。首先就是在测量期间待测链路的背景流量必须恒定,就是测量期间待测链路的可用带宽值不能发生变化,否则会影响测量方法的准确性。
[0012]-基于包队列(packet train)的测量方法
[0013]
通过控制发送探测数据报文的速率,观测数据报文的输入速率与链路中单向延迟的变化的匹配情况。在理想情况下,当输入包队列的速率小于或等于可用带宽时,链路中的
单向延迟不会有变大的趋势,反之当输入包队列的速率大于可用带宽时,链路中的单向延迟会有增大的趋势。基于包队列可用带宽测量算法或工具就是试图找到那个输入包队列速率和可用带宽相等的点,从而得到网络链路的可用带宽。
[0014]
与基于包对的测量方法类似,基于包队列的测量方法也要求待测链路满足背景流量恒定。
[0015]
·
基于统计学习的测量方法
[0016]
由于网络环境是在不断变化的,而现有的包对和包队列测量方法都是在背景流量恒定的假设下进行的,这一条件在现实情况中经常难以满足,所以领域内的很多研究者都尝试从统计学习的角度抽象化的解决网络可用带宽测量的问题。
[0017]
这类方法的优点是,无需测试链路严格满足在基于系统性能瓶颈的测量方法中的背景流量恒定原则。摆脱了这个条件的束缚,也意味着采用了统计学习方法一般采用非侵入式手段测量带宽,也能较好的处理爆发流量的情况。
[0018]
但是,由于此类方法受到数学模型的局限性,导致在不同拓扑结构的网络系统下表现的性能不稳定,因此暂无实际可用的工具开源。


技术实现要素:

[0019]
本发明的主要目的在于提供一种边缘云网络中测量实际可用带宽的方法,以准确的测量出边缘节点的实际可用带宽。
[0020]
为了实现上述目的,根据本发明的一个方面,提供了一种边缘云网络中测量实际可用带宽的方法,步骤包括:s1在网络中选取并定义待测量机器和测量机器,并设置控制器;s2控制器令待测量机器以测量带宽向测量机器发送测试数据包,以获取测量机器的反馈带宽s3控制器根据的反馈,以调整下一轮测试带宽直至逼近实际可用带宽的值,以获取实际带宽检测结果。
[0021]
在可能的优选实施方式中,其中步骤s2中控制器采用了双时间尺度的测量法令待测量机器发送测试数据包,其步骤包括:设定一长时间尺度为fleet,短时间尺度为stream,待测量机器在fleet下向测量机器发送n个stream,且每个stream内以一定的时间间隔t发送k个大小为l的测试数据包。
[0022]
在可能的优选实施方式中,其中步骤s3中调整下一轮测试带宽的步骤包括:在一个fleet内,保持数据包的l大小不变的条件下,不断迭代修改每个stream中测试数据包之间的发送时间间隔t。
[0023]
为了实现上述目的,根据本发明的二个方面,还提供了一种边缘云网络中测量实际可用带宽的方法,步骤包括:s1在网络中选取并定义待测量机器和测量机器,并设置控制器,其中控制器中设有策略单元,所述策略单元采用actor-critic架构的深度强化学习算法;s2控制器令待测量机器以测量带宽向测量机器发送测试数据包,以获取测量机器的反馈带宽s3控制器根据与的反馈,经策略单元决策后调整下一轮测试带宽直至逼近实际可用带宽的值,以获取实际带宽检测结果。
[0024]
在可能的优选实施方式中,其中步骤s2中控制器采用了双时间尺度的测量法令待测量机器发送测试数据包,步骤包括:设定一长时间尺度为fleet,短时间尺度为stream,待
测量机器在fleet下向测量机器发送n个stream,且每个stream内以一定的时间间隔t发送k个大小为l的测试数据包。
[0025]
在可能的优选实施方式中,其中步骤s3中调整下一轮测试带宽的步骤包括:在一个fleet内,保持数据包的l大小不变的条件下,策略单元根据与的反馈作出对应决策,以不断迭代修改每个stream中测试数据包之间的发送时间间隔t。
[0026]
在可能的优选实施方式中,其中策略单元的决策步骤包括:s30以马尔科夫决策过程定义t值调整决策,以设定:
[0027]
状态空间其中对于第i个stream,其状态定义为且指定为当前测试网络中已使用的带宽ui;
[0028]
动作空间其中第i个stream的动作空间定义为其中第i个stream的动作空间定义为的取值范围是[0,c],其中其中c是待测量机器的瓶颈带宽;
[0029]
奖赏函数其中对于第i个stream,此时的状态空间为算法在该状态空间下计算的出的动作为此时控制器在执行动作后会产生新的下一时刻的状态而奖赏函数用来评估算法的决策对测试产生影响的好坏并计算出具体的奖赏值其中对于第i个stream,奖赏函数设置为:
[0030][0031]
状态转移概率表示在状态下执行动作后,状态空间转移到的概率;
[0032]
s31 actor将状态输入至确定性策略网络μ生成动作
[0033]
s32控制器执行动作并产生奖赏值和新的状态
[0034]
s33将s31-s32两步过程产生的训练数据存储至经验池relaybuffer;
[0035]
s34从relaybuffer中随机抽取的m组数据分别输入到actor和critic进行训练,并按照奖励值从小到大排序,选择预设范围内的数据作为最终输入;
[0036]
s35将选定的数据分别输入至actor和critic以更新网络参数θ
π
和θ
μ
,从而不断迭代至算法收敛。
[0037]
通过本发明提供的该边缘云网络中测量实际可用带宽的方法,可以准确的测量出边缘节点的实际可用带宽,并且精准可靠,不严格依赖于待测链路准确的背景参数,同时自适应能力强,测量方法的性能可以兼容不同网络拓扑结构以实现泛用性。
附图说明
[0038]
构成本技术的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0039]
图1为链路带宽占用率与网络中丢包率与延时的对照示意图;
[0040]
图2为本发明中基于包队列的可用带宽测量框架概念图;
[0041]
图3为本发明中基于马尔科夫决策过程对每次如何调整测试带宽的精准数值这一问题建模的设计概念图;
[0042]
图4为本发明的该边缘云网络中测量实际可用带宽的方法中持续调整下一轮测试带宽的逻辑流程示意图;
[0043]
图5为本发明的该边缘云网络中测量实际可用带宽的方法中决策逻辑流程示意图。
具体实施方式
[0044]
为了使本领域的技术人员能够更好的理解本发明的技术方案,下面将结合实施例来对本发明的具体技术方案进行清楚、完整地描述,以助于本领域的技术人员进一步理解本发明。显然,本案所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思及相互不冲突的前提下,本技术中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的揭露及保护范围。
[0045]
此外本发明的说明书和权利要求书及附图中的术语“第一”、“第二”、“s1”、“s2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里描述的那些以外的顺序实施。同时本发明中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。除非另有明确的规定和限定,对于本领域的普通技术人员而言,可以根据具体情况,结合现有技术来理解上述术语在本案中的具体含义。
[0046]
本发明提供的的该边缘云网络中测量实际可用带宽的方法,其发明构思上意图将深度强化学习技术应用到带宽测量技术中。综合背景技术中各种带宽测量方法来看,基于系统性能瓶颈的测量方法对背景参数的依赖较强,如机器准确的最大可用带宽。但是在真实的网络系统中,我们很难保证这两个值为常量,即动态化的网络系统,会导致该方法测量误差增大。
[0047]
而基于统计学习的测量方法受到数学模型的局限性,导致在不同拓扑结构的网络系统下表现的性能不稳定。
[0048]
因此,本发明的目标是开发一款精准可靠、且自适应能力强的实际可用带宽测量方法,构思上本发明将深度强化学习结合包队列的可用带宽探测模型,通过设计巧妙的奖赏函数,使得该方法可以摆脱对背景参数的依赖,并能够自适应地应对拥有不同拓扑结构的网络系统。
[0049]
为此,本发明提供的该一种边缘云网络中测量实际可用带宽的方法步骤包括:
[0050]
s1在网络中选取并定义待测量机器和测量机器,并设置控制器,其中控制器中设有策略单元,所述策略单元采用actor-critic架构的深度强化学习算法;
[0051]
s2控制器令待测量机器以测量带宽向测量机器发送测试数据包,以获取测量机器的反馈带宽
[0052]
s3控制器根据与的反馈,经策略单元决策后调整下一轮测试带宽直至逼近实际可用带宽的值,以获取实际带宽检测结果。
[0053]
具体来说,首先介绍在带宽测量过程中的两个重要指标:延迟(latency)和丢包率(loss rate)。
[0054]
延时(latency):数据包从源节点传输到目的节点需要的时间。延时越高意味着网
络质量越差,比如在线游戏,直播等应用场景就必须要求低延时,而像下载场景就对延时没那么敏感。
[0055]
丢包率(loss rate):是指一个或多个数据包的数据无法通过网络传输到达目的节点。丢包率的值越大意味着服务质量越差,因为数据包丢失会导致重传或者信息丢失,会影响上层应用的服务质量。
[0056]
在网络环境中,一个普遍的规律是随着链路带宽占用率的提高,该链路上的延时和丢包率也会相应的提升。如图1所示,其中,x表示延时,*表示丢包率,其中对于图1,更加形式化地描述为:一般的,给定一个链路的带宽容量为c,该链路已经用掉的带宽为u,u∈[0,c],那么系统中的可用带宽就可以定义为a=c-u。假设r是我们测量过程中发送数据包用掉的带宽,当r≤a时,数据包的延迟和丢包率保持不变;当r>a时,从r=a那一刻起,数据包的延迟和丢包率会突然增加。
[0057]
由于本案意图提供通用的可用带宽测量方案,也就是说既可以测量上行带宽也可以测量下行带宽。因此下述以测量上行带宽为例展开叙述。在测量过程中,有待测量机器和测量机器两个角色,那么在测量上行带宽时,待测机器为发送端,测量机器为接收端,且测量机器的带宽性能要大于待测量机器。
[0058]
假设从待测量机器以一定的速率r
send
向测量机器发送数据包,测量机器收到数据包的速率为r
recv
。根据上面的现象,当r
send
≤a时,r
recv
=r
send
;当r
send
>a时,r
recv
<r
send
,于是可以得出如下式子:
[0059][0060]
建立基于包队列的可用带宽探测的基本模型。
[0061]
本发明基于udp套接字以一定的时间间隔发送一组数据包队列,具体来说,如采用l表示测试过程中发送的一个数据包大小,一般情况下不超过系统默认的最大传输单元(maximum transmission unit,mtu)。发送的数据包之间的时间间隔为t,于是数据流的传输速率(占用的带宽)可以表示为:
[0062][0063]
本方案采用了双时间尺度的测量方法,将较大的时间尺度定义为fleet,较小的时间尺度为stream。具体而言,在较大的时间尺度上,即fleet,发送n个stream对带宽进行探测。在每个stream内,会以一定的时间间隔t发送k个大小为已数据包。
[0064]
基于上述框架,本案设计了一个控制器,该控制器在每个stream内发送数据包的时间间隔t保持不变,也就意味着每个stream的数据包是以一定速率的带宽r
send
发送。从fleet的视角来看,该控制器能够根据每个stream结束后的结果参数,如时延、丢包等,调整下一个stream的测试带宽r
send

[0065]
此外需要注意的是,在本方案中,需始终保持数据包l的大小不变,因此调整测试带宽r
send
的手段是改变数据包之间的发送时间间隔t。大致框架如图2所示。
[0066]
基于上述可用带宽测量框架,本方案能够在一个fleet内,通过不断迭代修改每个stream发送的带宽速率r
send
,形成不断逼近实际可用带宽的效果。具体而言,对于第i,i∈[1,n]个stream,以时间间隔发送k个大小为l数据包,此时发射数据包的速率为:
[0067][0068]
在该发送速率下,一个stream结束后,我们在测量机器捕捉到的数据包的平均时间间隔为于是可以计算出测量机器的速率大小:
[0069][0070]
根据公式1可得:当测试带宽说明测量带宽小于实际可用带宽,此时可以适当增加第i+1个stream测试带宽的大小当测试带宽说明测量带框大于实际可用带宽,此时我们可以适当降低第i+1个stream测试带宽的大小根据这样的规则不断迭代,最终我们就可以求出最接近实际可用带宽的值。
[0071]
进一步的,本方案还需给出每次调整(增加或减少)测试带宽的精准数值,为此本案中将深度强化学习算法引入到带宽测量框架的控制器中,该算法的特点是无需依赖于大量的历史数据集,能够实时的根据系统状态决策出要做出的动作,并不断迭代下去。
[0072]
为此本案中示例以根据马尔科夫决策过程(markov decision process,mdp)对该问题建模如下:
[0073]
状态空间:表示状态空间,一般情况下,状态空间的设置应为算法的有效输入。具体而言,当每个stream以一定速率发送数据包时,系统中就会产生一定的状态,对于第i个stream,可将其状态定义为在本示例中,可将指定为当前系统中已使用的带宽ui。对于已使用带宽的统计方法,以linux系统为例,可以分别在两个时间点对网卡的流量进行采集,然后将两个采集点所采集到的数据相减,并除以时间差就可以得到在一段时间内的平均带宽值。
[0074]
动作空间:表示动作空间,一般情况下,动作空间为深度强化学习算法的输出。在本案中,可将动作空间定义为算法所计算出在当前系统状态下的应该将测量带宽的值调整至多少。由于测量带宽的值是不断的迭代调整,即前后之间是连续的,那么本发明所采用算法的动作空间也是连续的。更为具体的,还可根据不同机器的情况为该动作空间的值划定一个准确的范围,对于第i个stream的动作空间一个准确的范围,对于第i个stream的动作空间的取值范围是[0,c],其中c是被测量机器的瓶颈带宽。一般可将瓶颈带宽设置为该网卡的最大传输速率,比如针对千兆网卡,本实施了下示例将该值设置为c=1000;针对万兆网卡,示例下可将该值设置为c=10000,其中单位均为每秒传输的兆比特位(megabits per second,mbps)。然而,由于在实际调整的过程中,要调整的是发送数据包的时间间隔t,因此可以将c代入(2)式,反推出t。
[0075]
奖赏函数:表示奖赏函数,一般用来评估算法做出动的好坏,并给予相应的奖惩。具体来说,对于第i个stream,此时的状态空间为算法在该状态空间下计算的出的动作为此时控制器在系统中执行动作后会产生新的下一时刻的状态奖赏函数就是用来评估算法的决策对系统产生影响的好坏,并计算出具体的奖赏值具体而言,对于第i个stream,可将奖赏函数设置为个stream,可将奖赏函数设置为结合(1)式将该函数展开如下:
[0076][0077]
对(3)式稍加推敲就可以得出,当且仅当时,奖赏函数的值达到最大,此时测量带宽也就等于实际可用带宽,即此时测量带宽也就等于实际可用带宽,即因此在算法的实现过程中,只需不断迭代获得最大奖赏即可,因为理论上奖赏函数的最大值就是最接近实际可用带宽的值。
[0078]
状态转移概率:表示状态转移概率,一般情况下,使用来表示在状态下执行动作后,状态空间转移到的概率。如图3所示为上述过程更加形式化的体现。
[0079]
此外在本发明中,使用的深度强化学习算法示例为经典的actor-critic架构,如图4所示,其核心思想可以把critic看做是老师,actor看作是学生,由critic指导actor的行为。对于第i个stream而言,控制器会将系统状态输入至actor的策略网络π,该策略会输出动作critic则会基于奖赏函数评判状态-动作判的好坏,从而反向更新actor的策略参数θ
μ
,起到critic知道actor的作用。
[0080]
算法详细的训练过程如下:
[0081]
critic的实现是基于动作-价值函数所实现,该函数的含义是在状态-动作对处期望的累计折合奖励,于是该函数可以表示为:
[0082][0083]
即表示估计在第i个stream处,在状态s^_i下执行动作a^_i所能产生的价值,这里还考虑对后面的操作的影响,因此价值越大动作自然越好。
[0084]
其中是从第i个stream开始预测在该状态-动作对执行之后的累计折合奖励:
[0085][0086]
因此,critic的动作-价值函数可以基于贝尔曼方程写成:
[0087][0088]
其中γ为折合因子,取值范围是(0,1),更进一步的,该更新网络参数θ
π
的方法是通过最小化真实网络和目标网络之间的损失函数:
[0089][0090]
actor的训练公式为:
[0091][0092]
其中θ
μ
是actor的网络参数,μ是确定性的抽样策略,的计算方式与critic相同,表示通过随机梯度上升的方式不断地更新actor的网络参数θ
μ
,以使得actor学习到最大化累计奖励的策略。
[0093]
至此,critic与actor之间的交互如图5所示,可以表述为以下几个步骤:
[0094]
1)actor将系统状态输入至确定性策略网络μ生成动作
[0095]
2)控制器执行动作并产生奖励和新的状态
[0096]
3)将1、2两步过程产生的训练数据存储至经验池relaybuffer;
[0097]
4)从relaybuffer中随机抽取的m组数据分别输入到actor网络和critic网络进行训练,为了避免网络系统中短时间内带宽占用率突然提高对算法收敛性能的影响,本发明将随机抽取的m组数据按照奖励值从小到大排序,选择前95%分位的数据作为最终输入;
[0098]
5)将选定的数据分别输入至actor网络和critic网络,actor和critc经过公式(7)和公式(8)更新网络参数θ
π
和θ
μ
,从而不断迭代至算法收敛。
[0099]
综上所述,通过本发明提供的该边缘云网络中测量实际可用带宽的方法,可以准确的测量出边缘节点的实际可用带宽,并且精准可靠,不严格依赖于待测链路准确的背景参数,同时自适应能力强,测量方法的性能可以兼容不同网络拓扑结构以实现泛用性。
[0100]
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0101]
本领域技术人员可以理解,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
[0102]
此外实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0103]
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1