一种基于业务类别的多链路传输智能报文调度方法与流程

文档序号:27758658发布日期:2021-12-03 23:02阅读:74来源:国知局
一种基于业务类别的多链路传输智能报文调度方法与流程

1.本发明涉及网络通信技术领域,更具体的,涉及一种基于业务类别的多链路传输智能报文调度方法。


背景技术:

2.目前,传统以tcp(transmission control protocol,传输控制协议)为代表的单路径传输协议难以满足用户在传输效率及可靠性方面的要求。随着多种无线接入技术的发展,大多数移动终端都配置了4g/3g和wifi接口,为实现基于多链路的数据传输提供了可能。近年来,ietf工作组提出了对传统tcp协议的扩展协议,多路径tcp(multi

path tcp,mptcp)。mptcp将单个tcp的数据分流到多个不同的子流,允许每一条子流走不同的物理链路,从而形成多条路径。相较于传统tcp协议,mptcp协议具有高吞吐量,高容忍度,高可靠性,高安全性等特点,既可以配置多个路径作为主力/备用链路增强会话的鲁棒性,又可以配置多个路径同时工作并行传输,提高整体吞吐量。
3.但是,目前的mptcp协议还不够完善,在异构多链路网络环境下,由于不同链路在带宽、往返时延(round

trip time,rtt)、丢包率等服务指标上存在较大的差异,使得mptcp的传输效果并不理想,面临队头阻塞(hol blocking)、带宽利用率低下、应用延迟增高、吞吐量下降等诸多问题。
4.如中国专利公开号:cn110278149a,公开日:2019

09

24,公开了一种基于深度强化学习的多路径传输控制协议数据包调度方法,首先通过设置周期性的调度机制,将数据包调度过程转化为马尔可夫决策过程。然后,使用actor

critic模型对mptcp数据包调度策略进行建模,通过深度强化学习学出各种网络环境下的最优数据包调度策略,以克服启发式mptcp数据包调度方法无法适应复杂多样的动态网络环境的问题。
5.针对以上现有技术专利,首先,数据包调度的策略是针对所有业务和整体的网络环境,优化其总的吞吐量和总的平均往返时延,奖赏函数为所有子流的总吞吐量和调度周期中所有数据包的平均往返时延的组合,缺乏针对传输性能个性化需求的调度机制。因此,在业务传输性能需求存在显著差异、所使用的链路性能严重不对称且不断变化的情况下,数据包调度器难以训练,所获得的调度策略难以满足每项业务对服务质量的个性化需求。其次,基于对多个状态参数进行线性组合以获得奖励函数本质上属于多目标优化,如何调整其中各项系数之间的比例以获得最佳的优化效果仍是一个难题,并未给出明确的解决方案。
6.因此,如何为mptcp制定合理的调度策略,特别是当应用层业务对服务质量需求不一致的时候,如何满足用户不同的服务质量需求、最优化网络资源利用率,成为网络通信领域一个具有挑战性的问题。


技术实现要素:

7.本发明为了解决以上现有技术中存在不足的问题,提供了一种基于业务类别的多
链路传输智能报文调度方法。
8.为实现上述本发明目的,采用的技术方案如下:
9.一种基于业务类别的多链路传输智能报文调度方法,所述的方法包括以下步骤:
10.s1:对发送方业务的传输性能需求类别判断;
11.s2:根据业务传输性能需求的类别,确定优化目标;
12.s3:根据优化目标,从神经网络模型集合中选择策略神经网络模型;
13.s4:将mptcp的数据包调度过程划分为数个调度周期,在每个调度周期,记录mptcp调度器的数据包分配状态,同时记录数据包分配状态下的数据传输状态;
14.s5:将数据传输状态、数据包分配状态作为mptcp调度器的环境状态,并输入策略神经网络模型,进行基于策略梯度的强化学习方法,实现多链路传输报文调度。
15.优选地,所述业务的传输性能需求的类别包括吞吐量、往返时延、时延抖动、高丢包率、中丢包率、低丢包率中的一种或多种;
16.所述的优化目标包括单位时间内的吞吐量最大、单位时间内的往返时延最低、单位时间内的抖动次数最低、单位时间内的丢包率最低;
17.所述的数据传输状态包括:mptcp子流在一个调度周期内的吞吐量、mptcp子流的拥塞窗口大小。
18.进一步地,所述的策略神经网络模型为由多个全连接层构成的深度神经网络,根据不同的优化目标,选择不同的损失函数进行优化。
19.再进一步地,步骤s5中,所述基于策略梯度的强化学习方法,包括以下步骤:
20.s501:将数据包分配状态输入策略神经网络模型,根据策略神经网络模型输出的调度动作,得到下一调度周期调度器的分配比例,根据分配比例获取下一个调度周期的mptcp调度器的数据包分配状态;
21.s502:根据两个调度周期不同数据包分配状态下的数据传输状态和优化目标,计算策略深度神经网络模型输出动作的奖励值;
22.s503:将每个调度周期的mptcp调度器的数据包分配状态、对应该状态的策略神经网络模型的输出动作、以及用于评价该输出动作好坏的奖励值组合为一个训练样本,存放在网络训练经验池中;
23.s504:策略神经网络模型从网络训练经验池中抽样训练样本进行网络参数更新,训练时根据每个调度周期对应的策略神经网络模型的输出动作,制作相应的样本标签,然后根据奖励值定义损失函数,并根据损失函数进行策略神经网络模型的参数更新,从而更新策略神经网络模型的数据包调度策略;
24.s505:将更新后的策略神经网络模型用于多链路传输报文调度,同时将更新后的策略神经网络模型加入神经网络模型集合,等待下一个调度周期进行调度使用。
25.再进一步地,步骤s501中,所述的mptcp调度器的数据包分配状态为调度器每一轮次分配到各个mptcp子流的数据包个数,具体表示为[x1,x2,...,x
i4
...x
n
],并设定限制条件为:
[0026][0027]
其中,x
i
表示每一轮数据包分配向第i条链路的数据包数,i=1、2、3、4、...、n;n为多链路传输的链路数量。
[0028]
再进一步地,步骤s501,所述的策略神经网络模型输出的调度动作为改变调度器分配状态的分配操作,写成动作列表的形式为:
[0029]
actions=([

1,+1,0,0

],[+1,

1,0,0

],[

1,0,+1,0

],[+1,0,

1,0

],

)(2)
[0030]
具体的,策略神经网络模型的输出为动作列表的下标,每个下标对应一个分配操作,改变任意两条链路的分配状态;分配操作的定义为将一条链路分配的数据包数减1,另一条分配的数据包数加1,动作列表包括多链路传输中所有可能的分配操作;同时保障调度器分配状态根据策略神经网络模型输出的动作进行转移后,依然满足限制条件。
[0031]
再进一步地,所述的样本标签具体表示为和动作列表相同尺寸的独热编码标签,根据策略神经网络模型的输出,将样本标签对应列表位置下标设置为1,其余设置为0。
[0032]
再进一步地,步骤s504,所述的奖励值定义为:
[0033][0034]
其中,表示不同优化目标下,训练样本当前调度器分配状态下所对应的数据传输状态,表示训练样本中转移到的下一个调度器分配状态下的数据传输状态;
[0035]
当策略神经网络模型输出动作使下一个数据包分配状态的数据传输状态优于当前数据包分配状态的数据传输状态时,r>0,表明输出为好动作,反之,r<0,表明输出为坏动作。
[0036]
再进一步地,步骤s504,所述的损失函数为:
[0037]
loss=mse(label

action)*r(4)
[0038]
其中,label为对应样本标签;action为策略神经网络模型输出的动作;mse为均方误差函数;r表示奖励值;
[0039]
当策略神经网络模型输出的动作使得状态转移增大吞吐量时,模型参数将向靠近对应样本标签的方向更新,而当策略神经网络模型输出的action使得状态转移减小吞吐量时,模型参数将向远离对应样本标签的方向更新。
[0040]
再进一步地,所述的网络训练经验池为一个存放训练样本的缓冲池;对训练样本的采集和策略神经网络模型的训练进行异步并发处理。
[0041]
本发明的有益效果如下:
[0042]
本发明根据业务的不同传输性能需求构建优化目标,解决对多个目标进行优化,难以平衡不同业务的需求,导致总传输效果不佳的问题,而且直接对目标进行优化,策略神经网络模型简单,降低了训练的难度和收敛时间。
附图说明
[0043]
图1是实施例1所述的多链路传输智能报文调度方法的步骤流程图。
[0044]
图2是实施例1所述的多链路传输智能报文调度方法及训练的流程框图。
[0045]
图3是实施例1循环调度步骤的流程图。
[0046]
图4是实施例1循环更新策略神经网络模型参数的流程图。
具体实施方式
[0047]
下面结合附图和具体实施方式对本发明做详细描述。
[0048]
实施例1
[0049]
如图1所示,一种基于业务类别的多链路传输智能报文调度方法,所述的方法包括以下步骤:
[0050]
s1:对发送方的网络流进行业务的传输性能需求类别判断;
[0051]
s2:根据业务传输性能需求的类别,确定优化目标;
[0052]
s3:根据优化目标,从神经网络模型集合中选择策略神经网络模型;
[0053]
s4:将mptcp的数据包调度过程划分为数个调度周期,在每个调度周期,记录mptcp调度器的数据包分配状态,同时记录数据包分配状态下的数据传输状态;
[0054]
s5:将数据传输状态和数据包分配状态作为mptcp调度器的环境状态,将环境状态输入策略神经网络模型,进行基于策略梯度的强化学习方法,实现多链路传输报文调度。
[0055]
在一个具体的实施例中,所述业务的传输性能需求的类别包括吞吐量、往返时延、时延抖动、高丢包率、中丢包率、低丢包率中的一种或多种;
[0056]
所述的优化目标包括单位时间内的吞吐量最大、单位时间内的往返时延最低、单位时间内的抖动次数最低、单位时间内的丢包率最低;
[0057]
所述的数据传输状态包括:mptcp子流在一个调度周期内的吞吐量、mptcp子流的拥塞窗口大小。
[0058]
在一个具体的实施例中,所述的策略神经网络模型为由多个全连接层构成的深度神经网络,根据不同的优化目标,选择不同的损失函数进行优化。
[0059]
步骤s5中,如图2所示,所述基于策略梯度的强化学习方法,包括以下步骤:
[0060]
s501:将数据包分配状态输入策略神经网络模型,根据策略神经网络模型输出的调度动作,得到下一调度周期调度器的分配比例,根据分配比例获得下一个调度周期的mptcp调度器的数据包分配状态;
[0061]
s502:根据两个调度周期不同数据包分配状态下的数据传输状态和优化目标,计算策略深度神经网络模型输出动作的奖励值;
[0062]
s503:将每个调度周期的mptcp调度器的数据包分配状态、对应该数据包分配状态的策略神经网络模型的输出动作,以及用于评价该输出动作好坏的奖励值组合为一个训练样本,存放在网络训练经验池中;
[0063]
s504:策略神经网络模型从网络训练经验池中抽样训练样本进行网络参数更新,训练时根据每个调度周期对应的策略神经网络模型的输出动作,制作相应的样本标签,然后根据奖励值定义损失函数,并根据损失函数进行策略神经网络模型的参数更新,从而更新策略神经网络模型的数据包调度策略;
[0064]
s505:将更新后的策略神经网络模型用于多链路传输报文调度,同时将更新后的策略神经网络模型加入神经网络模型集合,等待下一个调度周期进行调度时使用。
[0065]
在一个具体的实施例中,步骤s501中,所述的mptcp调度器的数据包分配状态为调度器每一轮次分配到各个mptcp子流的数据包个数,如本实施例以4条链路的多链路数据传输为例,具体表示为[x1,x2,x3,x4],并设定限制条件为:
[0066]
0<x1,x2,x3,x4<10,x1+x2+x3+x4=10(1)
[0067]
其中,x
i
表示每一轮数据包分配向第i条链路的数据包数,i=1、2、3、4。
[0068]
在一个具体的实施例中,步骤s501,策略神经网络模型根据输入的状态,输出对应
的调度动作,所述的策略神经网络模型输出的调度动作为改变调度器分配状态的分配操作,写成动作列表的形式为:
[0069]
actions=([

1,+1,0,0

],[+1,

1,0,0

],[

1,0,+1,0

],[+1,0,

1,0

],

)(2)
[0070]
具体的,策略神经网络模型的输出为动作列表的下标,每个下标对应一个分配操作,改变任意两条链路的分配状态;分配操作的定义为将一条链路分配的数据包数减1,另一条分配的数据包数加1,动作列表包括多链路传输中所有可能的分配操作,如本实施例以4条链路的多链路数据传输为例,则共有12种可能操作;同时保障调度器分配状态根据策略神经网络模型输出的动作进行转移后,依然可以满足限制条件。
[0071]
例如,输入比例为[2,2,3,3]对应的输出值在第0位概率值最大,代表动作列表中的[

1,+1,0,0],则调度器根据该动作将比例转移为[1,3,3,3]。转移之后若不符合对状态的限制要求,则需要随机选择一个符合限制要求的动作。
[0072]
在一个具体的实施例中,所述的样本标签具体表示为和动作列表相同尺寸的独热编码标签,根据策略神经网络模型的输出,将样本标签对应列表位置下标设置为1,其余设置为0。
[0073]
在一个具体的实施例中,调度器根据当前数据包分配状态和动作得到新的数据包分配比例,将新的数据包分配比例落实到网络环境中,并获取该比例状态下多路径传输的情况。多路径传输情况包括:各个子流在该比例下一个调度周期内的吞吐量、各个子流在该比例下的拥塞窗口大小。调度器根据前后数据包分配状态下的多路径传输情况来决定动作的奖励值。具体地,
[0074]
步骤s504所述优化目标为吞吐量最大,所述的奖励值定义为:
[0075][0076]
其中,表示不同优化目标下,训练样本当前调度器分配状态下所对应的数据传输状态,表示训练样本中转移到的下一个调度器分配状态下的数据传输状态;
[0077]
当策略神经网络模型输出动作使下一个数据包分配状态的数据传输状态优于当前数据包分配状态的数据传输状态时,r>0,表明输出为好动作,反之,r<0,表明输出为坏动作。
[0078]
在一个具体的实施例中,所述的网络训练经验池为一个存放训练样本的缓冲池;对训练样本的采集和策略神经网络模型的训练进行异步并发处理。
[0079]
如图3所示,在进行数据包调度之前,首先要设置调度周期,将一整个数据传输过程划分为连续的调度周期,具体设置调度周期为3s。之后建立mptcp连接,开始多路径数据传输。在每个调度周期开始时,首先记录调度器当前的分配状态,并将其作为策略神经网络模型的输入。策略神经网络模型根据输入的状态,输出对应的调度动作,即用于改变调度器数据包分配比例的操作的对应下标。调度器根据输出的调度动作,改变当前的数据包分配比例,并向多路径网络环境执行该比例。在该调度周期结束时,调度器记录该轮调度的传输情况,并且根据上一轮的传输情况,计算该轮动作的奖励值。最后将该轮的分配状态、策略神经网络模型对应输出的调度动作、评价该调度动作的奖励值组合为一个训练样本存放在经验池中,随后进入下一个调度周期。每个调度周期都循环进行上述流程,直到mptcp多路径传输结束。
[0080]
如图4所示,用深度神经网络来表示调度的策略函数,即输入策略神经网络模型不同的调度状态,对于每个状态策略神经网络输出对应的策略。神经网络有一个隐藏层,隐藏层有50个神经元,每个神经元使用relu激活函数。神经网络的学习率为0.001。在神经网络训练时,首先从经验池中随机采样一批数据样本用于训练,批训练个数为16个。由于经验池的存在,训练数据的采集和抽样是异步进行的,保障神经网络的训练和mptcp多路径数据包的调度过程不会互相阻塞。抽样到训练样本后,根据样本中的状态和动作制作对应的样本标签,具体表示为和动作列表相同尺寸的one

hot标签,根据神经网络的输出,将样本标签对应列表位置下标设置为1,其余设置为0。
[0081]
步骤s504,将策略神经网络模型根据动作对应的标签以及奖励值来更新网络参数所述的损失函数为:
[0082]
loss=mse(label

action)*r(4)
[0083]
其中,label为对应样本标签;action为策略神经网络模型输出的动作;mse为均方误差函数;r表示奖励值;
[0084]
使用adam优化器进行梯度下降,当策略神经网络模型输出的动作使得状态转移增大吞吐量时,模型参数将向靠近对应样本标签的方向更新,而当策略神经网络模型输出的action使得状态转移减小吞吐量时,模型参数将向远离对应样本标签的方向更新。
[0085]
训练策略神经网络模型过程与mptcp数据包调度过程并发进行,每次mptcp调度器输入状态,都会从更新后的策略神经网络模型进行动作选择并将新的训练样本加入经验池,不断优化mptcp的数据包调度策略,直至最优。
[0086]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1