CN113556780A - 一种拥塞控制方法及装置 - Google Patents
一种拥塞控制方法及装置 Download PDFInfo
- Publication number
- CN113556780A CN113556780A CN202110858642.5A CN202110858642A CN113556780A CN 113556780 A CN113556780 A CN 113556780A CN 202110858642 A CN202110858642 A CN 202110858642A CN 113556780 A CN113556780 A CN 113556780A
- Authority
- CN
- China
- Prior art keywords
- state
- value
- state data
- preset
- congestion control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0289—Congestion control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种拥塞控制方法及装置,应用于网络通信技术领域,该方法包括:获取M个往返时延RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述M大于1;利用所获取的状态数据,构建状态向量;将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;按照所述目标动作项,进行拥塞控制。应用本申请实施例提供的技术方案,提高拥塞控制效果。
Description
技术领域
本申请涉及网络通信技术领域,特别是涉及一种拥塞控制方法及装置。
背景技术
网络环境复杂,影响网络传输效率的因素众多。拥塞控制是保证网络高效传输的重要环节。拥塞控制方法包括启发式拥塞控制方法和基于学习的拥塞控制方法。启发式拥塞控制方法利用拥塞控制信号,调节拥塞窗口(Congestion Window,Cwnd)值和发送速率。启发式拥塞控制方法难以分辨某些拥塞控制信号是否为网络拥塞所产生,难以适应复杂的网络环境。基于学习的拥塞控制方法可以通过学习网络的整体特征来做出决策,调节Cwnd值和发送速率。基于学习的拥塞控制方法能够更快速地响应网络环境的变化,并大大减少拥塞控制方法的开发周期。
由于基于学习的拥塞控制方法具有上述优点,基于学习的拥塞控制方法引起了广泛的研究。但是,相关技术中基于学习的拥塞控制方法对状态数据的使用不够合理,无法适应复杂的网络环境,拥塞控制效果较差。
发明内容
本申请实施例的目的在于提供一种拥塞控制方法及装置,以提高拥塞控制效果。具体技术方案如下:
第一方面,本申请实施例提供了一种拥塞控制方法,所述方法包括:
获取M个往返时延RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述M大于1;
利用所获取的状态数据,构建状态向量;
将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;
按照所述目标动作项,进行拥塞控制。
可选的,每个RTT包括N个时间段,所述N大于1;
所述获取M个RTT的状态数据的步骤,包括:
收集M个RTT中每个RTT内预设的多个状态特征关联的状态数据;
针对M个RTT中的每个RTT,基于所述多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据。
可选的,所述针对M个RTT中的每个RTT,基于所述多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据的步骤,包括:
针对M个RTT中的每个RTT的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,所述预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
可选的,所述状态数据包括多个状态特征和每个状态特征对应的一个特征值;
所述利用所获取的状态数据,构建状态向量的步骤,包括:
利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量。
可选的,所述利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量的步骤,包括:
由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
可选的,所述特征值为最小值、最大值、均值、和值或方差;所述M为2。
可选的,所述将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项的步骤,包括:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;
将概率最大的动作项作为目标动作项。
可选的,所述将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项的步骤,包括:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;
按照动作项的概率分布,从所述多个动作项中确定目标动作项。
第二方面,本申请实施例提供了一种拥塞控制装置,所述装置包括:
第一获取单元,用于获取M个往返时延RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述M大于1;
构建单元,用于利用所获取的状态数据,构建状态向量;
预测单元,用于将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;
控制单元,用于按照所述目标动作项,进行拥塞控制。
可选的,每个RTT包括N个时间段,所述N大于1;
所述第一获取单元,具体用于:收集M个RTT中每个RTT内预设的多个状态特征关联的状态数据;针对M个RTT中的每个RTT,基于所述多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据。
可选的,所述第一获取单元,具体用于:
针对M个RTT中的每个RTT的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,所述预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
可选的,所述状态数据包括多个状态特征和每个状态特征对应的一个特征值;
所述构建单元,具体用于:
利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量。
可选的,所述构建单元,具体用于:
由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
可选的,所述特征值为最小值、最大值、均值、和值或方差;所述M为2。
可选的,所述预测单元,具体用于:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;将概率最大的动作项作为目标动作项。
可选的,所述预测单元,具体用于:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;按照动作项的概率分布,从所述多个动作项中确定目标动作项。
第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面提供的任一拥塞控制方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的任一拥塞控制方法步骤。
本申请实施例有益效果:
本申请实施例提供的技术方案中,利用M个RTT的状态数据,进行拥塞控制。在执行一次拥塞控制后,需要经过一个RTT后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个RTT的状态数据为:体现上一次拥塞控制对网络环境的影响;后续M-1个RTT的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本申请实施例提供的技术方案中,将M个RTT作为一次状态观测的时间间隔,基于M个RTT的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为相关技术中网络传输线程与RL推理线程的一种交互示意图。
图2为相关技术中TorchBeast与网络环境的一种交互示意图;
图3为相关技术中神经网络模型的一种结构示意图;
图4为相关技术中排队时延的一种示意图;
图5为本申请实施例提供的拥塞控制方法的第一种流程示意图;
图6为本申请实施例提供的网络状态观测过程的一种示意图;
图7为本申请实施例提供的拥塞控制方法的第二种流程示意图;
图8为本申请实施例提供的拥塞控制方法的第三种流程示意图;
图9为本申请实施例提供的拥塞控制方法的第四种流程示意图;
图10为本申请实施例提供的拥塞控制装置的一种结构示意图;
图11为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
网络环境复杂,随机丢包、往返时延(Round Trip Time,RTT)变化范围大、带宽变化范围大、缓存深度不一、流量整形、防火墙、数据中心、无线连接、卫星网络连接和虚拟私网等因素均会影响网络传输效率。拥塞控制是保证网络高效传输的重要环节。
目前,常用的拥塞控制方法为基于学习的拥塞控制方法。基于学习的拥塞控制方法包括:基于传统机器学习的Remy和pcc系列等拥塞控制方法,基于模仿学习的indigo拥塞控制方法,基于强化学习(Reinforcement Learning,RL)的QTCP、Aurora和MVFST-RL等拥塞控制方法。
基于学习的拥塞控制方法需要消耗较多的计算资源,并且学习计算的耗时较长,对数据发送过程会产生较大的负面影响。这使得大部分基于学习的拥塞控制方法停留在实验室阶段。
MVFST为Facebook实现的基于UDP的低时延的互联网(Quick User DatagramProtocol Internet Connection,Quic)传输协议。
MVFST-RL拥塞控制方法为基于MVFST的有时延的异步强化学习的拥塞控制可拓展框架,即拥塞控制策略线程(即RL推理线程)独立于网络传输线程。在整个拥塞控制框架中,MVFST-RL拥塞控制方法对强化学习的状态数据使用不够合理,且强化学习的状态数据设计不合理,会导致基于学习的拥塞控制方法表现适应性差。
状态特征S为强化学习中的状态数据中的一个要素,状态特征St表示对t时刻网络环境的状态描述。对网络环境的状态做出准确描述可以使拥塞控制方法对网络环境的理解更准确,从而做出更合理的决策。拥塞控制任务中,状态特征表示为当前网络的传输状态,如当前的发送速率、ACK(确认消息)回复速率、丢包状况和延时状况等。但由于强化学习对计算资源耗费较多,学习计算耗时较大,因此无法做到时刻进行拥塞控制调节。通常为,间隔一定时间或累计一定个数的ACK进行一次拥塞控制调节,这使得网络环境状态的描述变得困难。
下面以MVFST-RL拥塞控制方法为例,对相关技术中的拥塞控制方法进行详细说明。MVFST-RL拥塞控制方法分为三个部分:1)MVFST;2)TorchBeast,基于Pytorch实现的Impala强化学习算法,Pytorch为一个开源的Python机器学习库;3)Pantheon网络模拟器,用于模拟网路环境。
在MVFST-RL框架中,网络传输线程与RL推理线程相互独立,如图1所示。MVFST运行在网络传输线程中,TorchBeast运行在RL推理线程中。St表示状态数据,at表示动作项。图1中,t为1、2、3或4。
以预设时间间隔为100毫秒(ms)。在计时100ms内,在每次触发ACK事件或者丢包事件时,发送端的MVFST收集ACK及状态数据。其中,状态数据空间包括如表1所示的状态特征。
表1
MVFST对状态数据进行标准化处理,使这些状态数据处于同一个量纲。具体的标准化处理方法是:对时间相关的状态特征(如表1中的状态特征1-6)缩放10-3,对字节相关的特征(如表1中的状态特征7-14)缩放10-4。
在计时结束后,MVFST将收集到的状态数据进行整合。具体的整合操作为:对每一项状态特征进行“求和”、“求均值”、“求最小值”、“求最大值”以及“求方差”操作,最终得到20*5=100个特征值。
在每个100ms内收到的ACK个数(以及丢包个数)是不固定的。基于此,除了可以在每隔固定时间间隔进行一次状态数据整合,也可以选择每收集固定ACK(或丢包)事件个数的状态数据,对状态数据进行一次整合,整合操作仍为“求和”、“求均值”、“求最小值”、“求最大值”以及“求方差”。上述对状态特征1-9求和不具备物理意义,因此可以将其求和项均置为0。
MVFST将整合后的状态数据与k个历史动作项以及执行历史动作项后的Cwnd值合并,得到状态向量。状态向量中历史动作项对应元素的元素值为:利用预设编码算法对历史动作项进行编码处理后得到的值。其中,预设编码算法可以为独热(one hot)编码算法或词袋(bag of word)编码算法等。
Cwnd是防止通信拥塞的一种措施。Cwnd是一个设置在发送端的可滑动窗口,用于调节发送端向接收端传输数据包的数量。Cwnd的大小是不超过接收端确认通知的窗口的大小。Cwnd值可以理解为发送端同时向接收端传输数据包的最大数量。
此时,状态向量的长度为100+k(|A|+1)。其中,k表示历史动作项的个数,|A|表示动作项空间中动作项的个数。以k=20,|A|=5为例,状态向量的长度为220。
在训练过程中,由Pantheon网络模拟器产生虚拟通道,MVFST在虚拟通道上启动连接,进行数据收发。Pantheon网络模拟器可以根据带宽、延时、丢包率和缓存等不同的设置,产生多个不同的虚拟通道。MVFST在每个虚拟通道建立连接时,同时在TorchBeast中建立一个参与者(如actor)。如图2所示,Pantheon网络模拟器中模拟了4个网络环境,构建了4个虚拟通道,相应的建立了4个actor。MVFST与actor之间通过远程过程调用(Remote ProcedureCall,RPC)服务进行状态数据与动作项的交互。
MVFST在获取到状态数据后,利用预设奖励函数,确定当前网络环境的奖励值。该当前网络环境的奖励值用于引导神经网络模型(即后续强化学习网络)调整参数。在得到状态向量和当前网络环境的奖励值后,MVFST通过RPC服务将状态向量和当前网络环境的奖励值传递给RL推理线程中的actor;另外,MVFST继续按照之前的Cwnd值发送数据包。
强化学习网络结构如图3所示,包括2个全连接层(Fully Connected,FC)层和一个长短期记忆人工神经网络(Long-Short Term Memory,LSTM)层,每个FC层包含512个神经元节点,每个FC层后接有一个线性整流函数(Rectified Linear Unit,relu)。relu是一种人工神经网络中常用的激活函数(activation function),通常指代以斜坡函数及其变种为代表的非线性函数。actor获取到状态向量和奖励值(reward)后,将状态向量输入底层的FC层,经过2个FC层状态特征提取后,将状态特征与reward进行合并,以输入LSTM层。对LSTM层输出的结果进行线性变化得到策略(Policy)和价值(Value),完成了对状态向量进行推理,得到推理结果,即Policy和Value,并将状态向量、奖励值及推理结果存放在队列中。
其中,Policy中包括多个动作项和每个动作项的概率,Value为强化学习网络基于Policy进行拥塞控制,所预估的网络环境的奖励值。actor按照Policy中动作项的概率分布确定目标动作项,并按照目标动作项进行拥塞控制。
另外,在训练过程中,经过一个roll_length(滚动长度,如80),即actor在队列中存放了80组状态向量及推理结果后,actor通知Learner。Learner为评判者(critic),其将队列中数据取出,利用取出的数据(如强化学习网络输出的Policy和Value、以及输入强化学习网络的当前网络环境的奖励值)进行学习,以计算损失值,更新参数。Learner更新参数后,将更新后的参数同步给actor。
在训练结束后,actor得到Policy,将Policy中概率最大的动作项作为目标动作项,按照目标动作项进行拥塞控制。
上述MVFST-RL拥塞控制方法具有以下几个优点:
1)MVFST-RL拥塞控制方法使用Pantheon网络模拟器,可以同时产生多个网络环境,使得训练数据变得易获取;
2)MVFST-RL拥塞控制方法使用Impala强化学习算法,是一个off-policy(离策略)的actor-critic算法,可以在多网络环境下实现快速高并发的训练,快速收敛;
3)MVFST-RL拥塞控制方法使用异步模式进行拥塞控制,强化学习推理过程不会阻塞网络数据包的收发;
4)MVFST-RL拥塞控制方法适用于MVFST,即基于Quic的拥塞控制。
虽然MVFST-RL拥塞控制方法具有上述优点,但它同样具有如下缺点,如下:
a)通过“求和”、“求均值”、“求最小值”、“求最大值”以及“求方差”的方式,来表达一个时间间隔内的状态特征,对时序特征丢失严重;例如图4所示的排队时延,图4的(a)中排队时延逐渐增加,图4的(b)中排队时延逐渐减小,当“求和”、“求均值”、“求最小值”、“求最大值”以及“求方差”处理后,这两组数据的表达是一致的;
b)状态特征冗余,导致计算量较大;
c)以固定时间间隔进行一次拥塞控制调节,难以平衡不同时延的网络环境的差异;例如,以固定10ms或100ms的时间间隔进行一次拥塞控制调节,对不同时延的网络影响不同;
d)以固定ACK个数进行一次拥塞控制调节,难以平衡不同带宽的网络环境的差异;例如,以固定收集100个ACK进行一次拥塞调节,对10mbps和1000mbps的网络环境的影响不同。
为解决上述问题,本申请实施例提供了一种拥塞控制方法,该方法中,利用M个RTT的状态数据,进行拥塞控制。
在执行一次拥塞控制后,需要经过一个RTT后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个RTT的状态数据为:体现上一次拥塞控制对网络环境的影响;后续M-1个RTT的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本申请实施例提供的技术方案中,将M个RTT作为一次状态观测的时间间隔,基于M个RTT的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,进一步提高了拥塞控制效果。
下面通过具体实施例,对本申请实施例提供的拥塞控制方法进行详细说明。为便于理解,下面以电子设备为执行主体进行说明,并不起限定作用。该电子设备中可以包括网络传输线程与RL推理线程。
参见图5,图5为本申请实施例提供的拥塞控制方法的第一种流程示意图,该方法包括如下步骤:
步骤S51,获取M个RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,其中,M大于1。
本申请实施例中,状态数据可以包括多个状态特征,以及每个状态特征对应的一个特征值,如表2所示。
表2
本申请实施例中,每个状态特征对应的一个特征值的类型可以根据实际需求进行设定。一个示例中,一个状态特征对应的一个特征值的类型可以为最能体现该状态特征的物理意义的类型。
本申请实施例中,每个状态特征可以对应多个特征值,这多个特征值的类型可以包括但不限于最小值、最大值、平均值、总和方差等。
本申请实施例中,电子设备中的网络传输线程以M个RTT作为一次状态观测的时间间隔,依次获取M个RTT的状态数据。
本申请实施例中,电子设备的网络传输线程可以在收到ACK或者检测到丢包时,收集状态数据;当收集完成一个RTT的状态数据后,对收集的该RTT的状态数据进行整合,得到整合后的RTT的状态数据,即后续用于拥塞控制的RTT的状态数据。重复状态数据收集的操作,直至收集完成M个RTT的状态数据。
例如,在t1时刻,电子设备的网络传输线程确定发送端与接收端之间的RTT为RTT1,其中,发送端即为该电子设备。网络传输线程在收到ACK或者检测到丢包时,收集状态数据。当到达t2时刻时,t1至t2的时长为RTT1,网络传输线程对收集的RTT1的状态数据进行整合,得到整合后的RTT1的状态数据。
另外,当到达t2时刻时,网络传输线程重新确定发送端与接收端之间的RTT为RTT2,网络传输线程在收到ACK或者检测到丢包时,收集状态数据。当到达t3时刻时,t2至t3的时长为RTT2,网络传输线程对收集的RTT2的状态数据进行整合,得到整合后的RTT2的状态数据。
此外,当到达t3时刻时,网络传输线程重新确定发送端与接收端之间的RTT为RTT3,网络传输线程在收到ACK或者检测到丢包时,收集状态数据。以此类推,重复执行上述收集RTT的状态数据,直至得到M个整合后的RTT的状态数据为止。
在执行一次拥塞控制后,需要经过一个RTT后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个RTT的状态数据为:体现上一次拥塞控制对网络环境的影响;后续M-1个RTT的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本申请实施例提供的技术方案中,将M个RTT作为一次状态观测的时间间隔,基于M个RTT的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
一个可选的实施例中,为提高执行拥塞控制的效率,上述M可以为2。也就是,以一个计时器,计时2个RTT作为一次状态观测的时间间隔,如图6所示的状态观测的过程,其中,行动指示的时刻即为执行拥塞控制的时刻,该时刻为当前一次状态观测的起始时刻,该时刻也是上一次状态观测的结束时刻。在一个状态观测的周期内,第一个RTT内收集的状态数据可以被看做是:前一次拥塞控制对网络环境产生影响得到的状态数据,而第二RTT内收集的状态数据可以被看做是:当前一次调节对网络环境产生影响得到的状态数据。
由于网络存在传输时延,发送端执行一次拥塞控制后,需要经过1个RTT,发送端能感知这次拥塞控制引起的状态特征变化,如排队时延的变化。本申请实施例中,计时2个RTT作为一次状态观测的时间间隔,基于这2个RTT进行拥塞控制,同样可以考虑到历史拥塞控制对网络环境的影响,以及当前拥塞控制对网络环境的影响,这在保证拥塞控制效果的同时,减少了一次拥塞控制所需的RTT的状态数据,提高了执行拥塞控制的效率。
依据上述方法获取状态数据,使得电子设备的RL推理线程中的预设神经网络模型更容易理解网络环境,状态数据更具备规律性,且更符合马尔科夫模型,从而使预设神经网络模型进行拥塞控制更准确。
在本申请实施例中,在获取到M个RTT的状态数据后,电子设备的网络传输线程可以利用预设奖励函数,根据当前网络状态,确定当前网络环境的奖励值。其中,预设奖励函数可以参见相关技术,此处不再赘述。
步骤S52,利用所获取的状态数据,构建状态向量。
本申请实施例中,电子设备的网络传输线程对所获取的状态数据进行组合,得到状态向量。例如,电子设备中的网络传输线程按照时间顺序,将所获取的状态数据包括的特征值平铺为一维向量,得到状态向量。
步骤S53,将状态向量和奖励值输入预设神经网络模型,得到目标动作项。
预设神经网络模型的输入为状态向量和奖励值,输出为Policy和Value。预设神经网络模型的结构可参见上述图3所示。本申请实施例中,预设神经网络模型也可以采用其他结构,对此不进行限定。
本申请实施例中,电子设备的网络传输线程将状态向量和奖励值传输给电子设备中的RL推理线程。RL推理线程获取到状态向量和奖励值后,将状态向量和奖励值输入预设神经网络模型,预设神经网络模型对状态向量和奖励值进行推理,得到Policy和Value,并从Policy中确定目标动作项。
一个实施例中,RL推理线程可以将Policy反馈给网络传输线程,网络传输线程根据Policy,确定目标动作项。
具体的确定目标动作项的方式,可参见上述图1-4部分的描述。
步骤S54,按照目标动作项,进行拥塞控制。
电子设备中的网络传输线程获取到目标动作项后,按照目标动作项,调节Cwnd值,按照调整后的Cwnd值进行拥塞控制。
例如,动作项空间包括:“0,/2,-10,+10,*2”这5个动作项,其中,动作项“0”表示Cwnd值加0,即Cwnd值不变;动作项“/2”表示Cwnd值除以2,动作项“-10”表示Cwnd值-10,动作项“+10”表示Cwnd值+10,动作项“*2”表示Cwnd值乘以2。假设Cwnd值为100,电子设备中的网络传输线程确定目标动作项为“+10”,则网络传输线程按照目标动作项调节Cwnd值为100+10=110。网络传输线程按照Cwnd值=110进行拥塞控制,即向网络中最多同时传输110个数据包。
本申请实施例中,网络传输线程执行步骤S54,进行拥塞控制后,进入状态观测的周期,重新执行步骤S51,获取新的M个RTT的状态数据。
本申请实施例提供的技术方案中,将M个RTT作为一次状态观测的时间间隔,基于M个RTT的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
在本申请的一个实施例中,本申请实施例还提供了一种拥塞控制方法,如图7所示,该方法中,步骤S51可以细化为步骤S511、S512和S513。
步骤S511,收集M个RTT中每个RTT内预设的多个状态特征关联的状态数据。
本申请实施例中,状态特征如上述表1和表2所示,状态特征关联的状态数据为统计状态特征的特征值所需的状态数据。针对M个RTT中每个RTT,网络传输线程收集该RTT内预设的多个状态特征关联的状态数据。该收集状态数据的时刻可以为上述接收到ACK或检测到丢包的时刻。
步骤S512,针对M个RTT中的每个RTT,基于多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据。
本申请实施例中,针对M个RTT中的每个RTT,在收集完成该RTT的状态数据后,网络传输线程基于多个状态特征,对该RTT内的状态数据划分为4个时间段的状态数据,并进行整合,得到该RTT中每个时间段的状态数据。此时,每个时间段的状态数据包括上述多个状态特征的特征值。
步骤S513,根据预设奖励函数,确定当前网络环境的奖励值。
本申请实施例中,将每个RTT划分为多个时间段,获取多个时间段的状态数据,此时,一个RTT的状态数据实际具有多个时间段的状态数据,基于这多个时间段的状态数据,可以确定一个RTT内状态数据随时间的变化,即一个RTT的状态数据具有了时序特征,利用包括时序特征的RTT的状态数据进行拥塞控制,进一步提高了拥塞控制效果。
在本申请的一个实施例中,本申请实施例还提供了一种拥塞控制方法,如图8所示,该方法中,步骤S52可以细化为步骤S521。
步骤S521,利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值,构建状态向量。
本申请实施例中,特征值的类型是有限的,例如,特征值的类型包括均值、最小值、最大值或方差等。
动作项的类是多种多样的,例如,“0”,“/2”,“-10”,“+10”,*2”,“*10”,“/10”等。若需要预设神经网络模型识别出这多种多样的动作项,需要预设神经网络模块学习到这多种多样的动作项,这就增加了预设神经网络模块训练的复杂度。
为了降低预设神经网络模块训练的复杂度,本申请实施例中,可以利用预设编码算法对历史动作项进行编码处理。基于编码后的历史动作项,所获取的状态数据包括的特征值,以及执行历史动作项后的拥塞窗口值,网络传输线程构建状态向量。
上述编码后的历史动作项采用特定类型的特征值表示,例如利用“0”和“1”表示,简化了预设神经网络模块学习的数据的类型,降低了预设神经网络模块训练的复杂度。
本申请实施例中,预设编码算法可以为one hot编码算法,动作项空间包括5个动作项,分别为动作项1-5,该动作项空间与一个长度为5的特征向量0对应,且该特征向量0中元素与动作项一一对应。当历史动作项为动作项1时,电子设备利用one hot编码算法,将特征向量0中动作项1对应元素的元素值置为1,其他元素的元素值置为0,得到该历史动作项对应的特征向量1为[1,0,0,0,0]。
当历史动作项为动作项2时,电子设备利用one hot编码算法,将特征向量0中动作项2对应元素的元素值置为1,其他元素的元素值置为0,得到该历史动作项对应的特征向量2为[0,1,0,0,0]。
当历史动作项为动作项3、4或5时,历史动作项的编码过程参见上述历史动作项为动作项1或2时的操作,此处不做赘述。
一个可选的实施例中,电子设备的网络传输线程可以按照时间顺序,将所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值构建一维行向量,得到状态向量。
例如,预设数量为5,动作项空间包括{k1,k2,k3,k4,k5}。按照时间先后顺序,所获取的状态数据包括的特征值包括{S1,S2,S3,S4};按照时间先后顺序,历史动作项和执行历史动作项后的拥塞窗口值包括{(k2,Cwnd1),(k1,Cwnd2),(k3,Cwnd3),(k2,Cwnd4),(k4,Cwnd5)}。历史动作项采用one hot编码算法进行编码,则网络传输线程最终获得的状态向量可以为:{(S1,S2,S3,S4),(0,1,0,0,0,Cwnd0),(1,0,0,0,0,Cwnd2),(0,0,1,0,0,Cwnd3),(0,1,0,0,0,Cwnd4),(0,0,0,1,0,Cwnd5)}。
本申请实施例中,电子设备的网络传输线程还可以采用他方式确定状态向量,对此不进行限定。
本申请实施例中,在状态向量中增加了预设数量个历史动作项以及执行历史动作项后的拥塞窗口值,这使得预设神经网络模型推理得到目标动作项所考虑的参数增多,提高了推理结果的准确性,进而提高了后续拥塞控制的准确性。
本申请实施例提供的技术方案中,考虑了多个RTT的状态数据,且每个RTT的状态数据又分为多个时间段的状态数据,即考虑了时序特征以及网络环境的变化。另外,本申请实施例中,每个状态特征对应的一个特征值,即只考虑最能体现状态特征的物理意义的特征值。
基于本申请实施例提供的技术方案,发明人进行试验发现:以2个RTT为一次状态观测的时间间隔,将每个RTT划分为4个时间段,采用如表2所示的8个状态特征以及相应的特征值,选用5个历史动作项,在动作项空间包括5个动作项的情况下,本申请实施例提供的技术方案能够取得较好的拥塞控制效果。而本申请实施例提供的技术方案中,状态向量的长度为:
状态特征个数×一个RTT划分的时间段个数×一次拥塞控制的状态数据的统计时间间隔包括的RTT个数+历史动作项个数×(动作项空间对应的特征向量的长度(即动作项空间包括的动作项的个数)+执行历史动作项后的拥塞窗口值的个数(即1))=8×4×2+5×(5+1)=94。如上述相关技术中,状态向量的长度为220。可见,本申请实施例提供的技术方案,在保证拥塞控制效果的情况下,状态向量的长度降低了(1-94/220)=57.27%。
因此,应用本申请实施例提供的技术方案,可以减少状态数据中冗余的状态特征,进而降低强化学习对计算资源的耗费,减少学习计算耗时。
在本申请的一个实施例中,本申请实施例还提供了一种拥塞控制方法,如图9所示,该方法中,步骤S512可以细化为步骤S5121。
步骤S5121,针对M个RTT中的每个RTT的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
预设事件为指示拥塞未发生的事件,具体可以根据实际需求进行设定。预设事件关联的状态特征为预设事件发生时所影响的状态特征。预设值可以根据实际需求进行设定。例如。预设值可以为0、1或2等。
例如,状态数据包括的状态特征和对应的特征值,如上述表2所示。为便于理解,以下以“状态特征(特征值)”方式表示,例如,状态数据包括:rtt_min(min)表示状态特征rtt_min对应的特征值大小为min。相应的,以上述表2所示状态特征为例,状态数据还可以包括lrtt(mean),delay(mean),cwnd_bytes(mean),inflight_bytes(mean),sent_bytes(sum),acked_bytes(sum),lost_bytes(sum)。
假设,预设值为0,预设事件可以为没有收到ACK且没有检测到丢包。此时,预设事件关联的状态特征为sent_bytes,acked_bytes,lost_bytes。
这种情况下,若t1时间段内收到ACK和/或检测到丢包,则网络传输线程从网络中采集t1时间段的状态数据为:rtt_min(min1),lrtt(mean2),delay(mean3),cwnd_bytes(mean4),inflight_bytes(mean5),sent_bytes(sum6),acked_bytes(sum7),lost_bytes(sum8)。
在t1的下一时间段t2内没有收到ACK且没有检测到丢包,则网络传输线程无需从网络中采集状态数据,继承t1的状态数据,并将t1的状态数据中sent_bytes、acked_bytes和lost_bytes的特征值设置为0,此时,时间段t2的状态数据为:rtt_min(min1),lrtt(mean2),delay(mean3),cwnd_bytes(mean4),inflight_bytes(mean5),sent_bytes(0),acked_bytes(0),lost_bytes(0)。
在一个时间段内发生预设事件,表明该时间段未发生拥塞,该时间段的状态数据无需整合。本申请实施例中,在一个时间段内发生预设事件时,网络传输线程可以继承上一时间段获取的状态数据,并将上一时间段获取的状态数据中预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。这样,可以保留该时间段的时序信息,进而网络传输线程可以利用RTT内多个时间段的状态数据来描述时序特征,以保证后续拥塞控制的准确性。
本申请实施例中,拥塞控制方法可以分为应用阶段和训练阶段。
在训练阶段,RL推理线程中的actor将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率,即Policy中包括的动作项的概率;按照动作项的概率分布,从多个动作项中确定目标动作项。
例如,动作项空间为:“0,/2,-10,+10,*2”。RL推理线程中的actor将状态向量和奖励值输入预设神经网络模型,得到:“0”的概率为0.7,“/2”的概率为0.2,“-10”的概率为0.05,“+10”的概率为0.03,“*2”的概率为0.02。此时,可以理解为,选择“0”的概率为0.7,选择“/2”的概率为0.2,选择“-10”的概率为0.05,选择“+10”的概率为0.03,选择“*2”的概率为0.02。RL推理线程中的actor按照动作项的概率分布,从多个动作项中确定目标动作项。
在应用阶段,RL推理线程中的actor将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率。RL推理线程中的actor可将概率最大的动作项作为目标动作项。
例如,动作项空间为:“0,/2,-10,+10,*2”。actor将状态向量和奖励值输入预设神经网络模型,得到:“0”的概率为0.7,“/2”的概率为0.2,“-10”的概率为0.05,“+10”的概率为0.03,“*2”的概率为0.02。0.7最大,因此,RL推理线程中的actor将0.7对应的动作项“0”作为目标动作项。
在本申请的一个实施例中,RL推理线程中的actor将状态向量和奖励值输入预设神经网络模型,除了可以得到多个动作项的概率,还可以得到价值(Value)。RL推理线程中的actor记录下输入的状态向量、奖励值、目标动作项和Value,作为一组拥塞控制数据。
经过预设时长后,RL推理线程中的actor获取到多组拥塞控制数据,这多组拥塞控制数据按时间顺序排序。RL推理线程中的Learner利用多组拥塞控制数据,确定损失值;若根据损失值确定所述预设神经网络模型收敛,则结束预设神经网络模型的训练;若根据所损失值确定所述预设神经网络模型未收敛,则调整预设神经网络模型的参数,并返回执行上述步骤S51,进行训练预设神经网络模型,直至预设神经网络模型收敛。
上述仅以目标动作项由actor确定为例进行说明,并不起限定作用。具体的训练过程可参见上述actor和Learner部分的相关描述。
与上述拥塞控制方法对应,本申请实施例还提供了一种拥塞控制装置,如图10所示,该装置包括:
第一获取单元101,用于获取M个RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,M大于1;
构建单元102,用于利用所获取的状态数据,构建状态向量;
预测单元103,用于将状态向量和奖励值输入预设神经网络模型,得到目标动作项;
控制单元104,用于按照目标动作项,进行拥塞控制。
一个可选的实施例中,每个RTT包括N个时间段,N大于1;
第一获取单元101,具体可以用于:收集M个RTT中每个RTT内预设的多个状态特征关联的状态数据;针对M个RTT中的每个RTT,基于多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据。
一个可选的实施例中,第一获取单元101,具体可以用于:
针对M个RTT中的每个RTT的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
一个可选的实施例中,状态数据包括多个状态特征和每个状态特征对应的一个特征值;
构建单元102,具体可以用于:
利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值,构建状态向量。
一个可选的实施例中,构建单元102,具体用于:
由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
一个可选的实施例中,特征值可以为最小值、最大值、均值、和值或方差;M为2。
一个可选的实施例中,预测单元103,具体可以用于:
将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率;将概率最大的动作项作为目标动作项。
一个可选的实施例中,预测单元103,具体可以用于:
将状态向量和奖励值输入预设神经网络模型,得到多个动作项的概率;按照动作项的概率分布,从多个动作项中确定目标动作项。
本申请实施例提供的技术方案中,利用M个RTT的状态数据,进行拥塞控制。在执行一次拥塞控制后,需要经过一个RTT后才能体现出本次拥塞控制所带来的效果。即,在执行一次拥塞控制后的第一个RTT的状态数据为:体现上一次拥塞控制对网络环境的影响;后续M-1个RTT的状态数据为:体现本次拥塞控制对网络环境的影响。因此,本申请实施例提供的技术方案中,将M个RTT作为一次状态观测的时间间隔,基于M个RTT的状态数据进行拥塞控制,即考虑了历史拥塞控制对网络环境的影响,也考虑了当前拥塞控制对网络环境的影响,这使得预设神经网络模型更容易理解网络环境,从而使得预设神经网络模型更为准确的进行拥塞控制,提高了拥塞控制效果。
与上述拥塞控制方法对应,本申请实施例还提供了一种电子设备,如图11所示,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
存储器113,用于存放计算机程序;
处理器111,用于执行存储器113上所存放的程序时,实现上述图5-9任一所示的拥塞控制方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一拥塞控制方法的步骤。
在本申请提供的又一实施例中,还提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述实施例中任一拥塞控制方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质、计算机程序实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (18)
1.一种拥塞控制方法,其特征在于,所述方法包括:
获取M个往返时延RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述M大于1;
利用所获取的状态数据,构建状态向量;
将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;
按照所述目标动作项,进行拥塞控制。
2.根据权利要求1所述的方法,其特征在于,每个RTT包括N个时间段,所述N大于1;
所述获取M个RTT的状态数据的步骤,包括:
收集M个RTT中每个RTT内预设的多个状态特征关联的状态数据;
针对M个RTT中的每个RTT,基于所述多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据。
3.根据权利要求2所述的方法,其特征在于,所述针对M个RTT中的每个RTT,基于所述多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据的步骤,包括:
针对M个RTT中的每个RTT的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,所述预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述状态数据包括多个状态特征和每个状态特征对应的一个特征值;
所述利用所获取的状态数据,构建状态向量的步骤,包括:
利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量。
5.根据权利要求4所述的方法,其特征在于,所述利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量的步骤,包括:
由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
6.根据权利要求4所述的方法,其特征在于,所述特征值为最小值、最大值、均值、和值或方差;所述M为2。
7.根据权利要求1所述的方法,其特征在于,所述将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项的步骤,包括:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;
将概率最大的动作项作为目标动作项。
8.根据权利要求1所述的方法,其特征在于,所述将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项的步骤,包括:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;
按照动作项的概率分布,从所述多个动作项中确定目标动作项。
9.一种拥塞控制装置,其特征在于,所述装置包括:
第一获取单元,用于获取M个往返时延RTT的状态数据,并根据预设奖励函数,确定当前网络环境的奖励值,所述M大于1;
构建单元,用于利用所获取的状态数据,构建状态向量;
预测单元,用于将所述状态向量和所述奖励值输入预设神经网络模型,得到目标动作项;
控制单元,用于按照所述目标动作项,进行拥塞控制。
10.根据权利要求9所述的装置,其特征在于,每个RTT包括N个时间段,所述N大于1;
所述第一获取单元,具体用于:收集M个RTT中每个RTT内预设的多个状态特征关联的状态数据;针对M个RTT中的每个RTT,基于所述多个状态特征,对该RTT内的状态数据进行整合,得到该RTT中每个时间段的状态数据。
11.根据权利要求10所述的装置,其特征在于,所述第一获取单元,具体用于:
针对M个RTT中的每个RTT的每个时间段,若该时间段内发生预设事件,则将上一时间段的状态数据中,所述预设事件关联的状态特征对应的特征值置为预设值,得到该时间段的状态数据。
12.根据权利要求9-11任一项所述的装置,其特征在于,所述状态数据包括多个状态特征和每个状态特征对应的一个特征值;
所述构建单元,具体用于:
利用所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值,构建状态向量。
13.根据权利要求12所述的装置,其特征在于,所述构建单元,具体用于:
由所获取的状态数据包括的特征值、预设数量个历史动作项以及执行所述历史动作项后的拥塞窗口值构建一维行向量,以得到状态向量。
14.根据权利要求12所述的装置,其特征在于,所述特征值为最小值、最大值、均值、和值或方差;所述M为2。
15.根据权利要求9所述的装置,其特征在于,所述预测单元,具体用于:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;将概率最大的动作项作为目标动作项。
16.根据权利要求9所述的装置,其特征在于,所述预测单元,具体用于:
将所述状态向量和所述奖励值输入预设神经网络模型,得到多个动作项的概率;按照动作项的概率分布,从所述多个动作项中确定目标动作项。
17.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110858642.5A CN113556780B (zh) | 2021-07-28 | 2021-07-28 | 一种拥塞控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110858642.5A CN113556780B (zh) | 2021-07-28 | 2021-07-28 | 一种拥塞控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113556780A true CN113556780A (zh) | 2021-10-26 |
CN113556780B CN113556780B (zh) | 2023-07-25 |
Family
ID=78104794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110858642.5A Active CN113556780B (zh) | 2021-07-28 | 2021-07-28 | 一种拥塞控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113556780B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070248013A1 (en) * | 2006-04-21 | 2007-10-25 | Microsoft Corporation | Enabling network devices to run multiple congestion control algorithms |
CN101795183A (zh) * | 2008-12-30 | 2010-08-04 | 宏达国际电子股份有限公司 | 识别混合式自动重发请求程序的方法及其通讯装置 |
CN110249568A (zh) * | 2017-02-05 | 2019-09-17 | Lg 电子株式会社 | 无线通信***中发送/接收无线信号的方法及其装置 |
CN110809288A (zh) * | 2019-11-04 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种网络拥塞控制方法、装置、设备及介质 |
US20200162962A1 (en) * | 2017-07-27 | 2020-05-21 | Huawei Technologies Co., Ltd. | Congestion Control Method and Related Device |
WO2020103855A1 (zh) * | 2018-11-20 | 2020-05-28 | 中兴通讯股份有限公司 | 一种信息中心网络中转发端口的确定方法及装置 |
CN112073986A (zh) * | 2019-06-11 | 2020-12-11 | 富士通株式会社 | 无线网络的状态监测装置及方法 |
CN112714074A (zh) * | 2020-12-29 | 2021-04-27 | 西安交通大学 | 智能tcp拥塞控制方法、***、设备和存储介质 |
CN113037648A (zh) * | 2021-03-10 | 2021-06-25 | 首都师范大学 | 数据传输方法及装置 |
-
2021
- 2021-07-28 CN CN202110858642.5A patent/CN113556780B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070248013A1 (en) * | 2006-04-21 | 2007-10-25 | Microsoft Corporation | Enabling network devices to run multiple congestion control algorithms |
CN101795183A (zh) * | 2008-12-30 | 2010-08-04 | 宏达国际电子股份有限公司 | 识别混合式自动重发请求程序的方法及其通讯装置 |
CN110249568A (zh) * | 2017-02-05 | 2019-09-17 | Lg 电子株式会社 | 无线通信***中发送/接收无线信号的方法及其装置 |
US20200162962A1 (en) * | 2017-07-27 | 2020-05-21 | Huawei Technologies Co., Ltd. | Congestion Control Method and Related Device |
WO2020103855A1 (zh) * | 2018-11-20 | 2020-05-28 | 中兴通讯股份有限公司 | 一种信息中心网络中转发端口的确定方法及装置 |
CN112073986A (zh) * | 2019-06-11 | 2020-12-11 | 富士通株式会社 | 无线网络的状态监测装置及方法 |
EP3751887A1 (en) * | 2019-06-11 | 2020-12-16 | Fujitsu Limited | State monitoring apparatus and method for wireless network |
CN110809288A (zh) * | 2019-11-04 | 2020-02-18 | 腾讯科技(深圳)有限公司 | 一种网络拥塞控制方法、装置、设备及介质 |
CN112714074A (zh) * | 2020-12-29 | 2021-04-27 | 西安交通大学 | 智能tcp拥塞控制方法、***、设备和存储介质 |
CN113037648A (zh) * | 2021-03-10 | 2021-06-25 | 首都师范大学 | 数据传输方法及装置 |
Non-Patent Citations (1)
Title |
---|
张莉;邹宽胜;: "基于模糊神经网络的RTT智能预测算法", 软件导刊, no. 09 * |
Also Published As
Publication number | Publication date |
---|---|
CN113556780B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021197364A1 (zh) | 一种用于服务的扩缩容的方法及相关设备 | |
Elgabli et al. | Reinforcement learning based scheduling algorithm for optimizing age of information in ultra reliable low latency networks | |
CN112118143B (zh) | 流量预测模型训练方法、流量预测方法、装置、设备及介质 | |
CN102724103B (zh) | 代理服务器、分层次网络***及分布式工作负载管理方法 | |
CN112532409B (zh) | 网络参数配置方法、装置、计算机设备以及存储介质 | |
US20140258382A1 (en) | Application congestion control | |
CN114866494B (zh) | 强化学习智能体训练方法、模态带宽资源调度方法及装置 | |
CN113422812B (zh) | 一种服务链部署方法及装置 | |
CN114866489A (zh) | 拥塞控制方法和装置及拥塞控制模型的训练方法和装置 | |
CN117082008B (zh) | 虚拟弹性网络数据传输调度方法、计算机装置及存储介质 | |
WO2017096837A1 (zh) | 节点间距离的度量方法及*** | |
Bhattacharyya et al. | QFlow: A learning approach to high QoE video streaming at the wireless edge | |
CN112019382B (zh) | 一种云计算管理平台的健康评估方法、***及装置 | |
CN113543160B (zh) | 5g切片资源配置方法、装置、计算设备及计算机存储介质 | |
CN113556780A (zh) | 一种拥塞控制方法及装置 | |
CN114650260B (zh) | 网络丢包类型识别方法、装置及电子设备 | |
CN114885028B (zh) | 业务调度方法、装置及计算机可读存储介质 | |
CN116842440A (zh) | 基于情境感知的自适应链路切换方法及***、设备、介质 | |
CN114448838B (zh) | ***可靠度评估方法 | |
AlQerm et al. | BEHAVE: Behavior-aware, intelligent and fair resource management for heterogeneous edge-IoT systems | |
Xia et al. | Glider: rethinking congestion control with deep reinforcement learning | |
CN115174419A (zh) | 截止时延约束下基于信息年龄的工业物联网调度方法 | |
CN117480510A (zh) | 生成用于机器学习模型预测的置信度分数 | |
Hagos et al. | Classification of delay-based TCP algorithms from passive traffic measurements | |
WO2016165471A1 (zh) | Hadoop集群组件指标的采集方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |