参数的处理方法、装置及存储介质与流程

文档序号:17536048发布日期:2019-04-29 14:00阅读:217来源:国知局
参数的处理方法、装置及存储介质与流程

本申请涉及计算机网络技术领域,尤其涉及参数的处理方法、装置及存储介质。



背景技术:

在计算机网络通信中,服务器与客户端之间基于某种网络传输协议进行通信。例如,传输控制协议(tcp,transmissioncontrolprotocol)是一种面向连接的传输层通信协议。为了防止网络的拥塞现象,研究人员提出了一系列的tcp拥塞控制算法,每个算法都具备自身的一套参数用于实现拥塞的控制。

在实际应用时,不同网络的数据传输质量差异很大,例如,光纤、无线局域网、无线蜂窝网等,即使同一网络在不同时刻也具有不同的网络质量。现有技术中,通常采用人工经验调参的方法,根据反馈的性能测试结果人工调整算法中参数的取值。但是,这种方法费时费力,无法保证在所有网络质量下都获得最佳性能,造成算法在某些网络中表现良好,而在某些网络中表现欠佳,降低了网络通信的吞吐量以及服务器的资源利用率。



技术实现要素:

有鉴于此,本申请提供了一种参数的处理方法、装置及存储介质,使得算法能够自适应各种不同的网络传输质量,提高了装置的资源利用率。

本申请的技术方案是这样实现的:

本申请提供了一种参数的处理方法,包括:

将基于网络传输协议的算法应用于一个网络时,设置所述算法中影响该网络传输性能的核心参数以及所述核心参数的多个候选取值;

针对每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值;

根据所述性能指标统计值,计算出每个候选取值对应的概率值;及,

根据各个概率值,从多个候选取值中确定出在该网络新建立的链接中所述核心参数的取值。

本申请实施例还提供了一种参数的处理装置,包括:

参数设置模块,用于将基于网络传输协议的算法应用于一个网络时,设置所述算法中影响该网络传输性能的核心参数以及所述核心参数的多个候选取值;

第一确定模块,用于针对所述参数设置模块设置的每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值;

计算模块,用于根据所述第一确定模块确定的性能指标统计值,计算出每个候选取值对应的概率值;及,

第二确定模块,用于根据所述计算模块得到的各个概率值,从多个候选取值中确定出在该网络新建立的链接中所述核心参数的取值。

本申请实施例又提供了一种计算机可读存储介质,存储有计算机可读指令,可以使至少一个处理器执行上述的方法。

与现有技术相比,本申请提供的方法,能够从算法核心参数的多个候选取值中,在线学习一种与当前网络的质量最匹配的参数取值,用于该网络后续链接中算法的参数配置中,这样,同一算法可以自适应于不同网络的传输质量,提高了算法的适用范围以及用户在不同网络中的传输性能,并且提升了参数的处理装置的资源利用率。

附图说明

为了更清楚的说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。其中,

图1为本申请一实施例所涉及的tcp拥塞控制算法应用系统的结构示意图;

图2为依据本申请一实施例的参数的处理方法的示例性流程图;

图3为依据本申请一实施例的为不同网络确定不同参数取值的示意图;

图4为依据本申请另一实施例的参数的处理方法的示例性流程图;

图5为依据本申请一实施例的为网络不同时刻确定不同参数取值的示意图;

图6为依据本申请一实施例的参数的处理方法的时序交互图;

图7为依据本申请一实施例的参数的处理装置的结构示意图;

图8为依据本申请一实施例的服务器的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例中,服务器和客户端之间基于网络传输协议进行数据通信。其中,网络传输协议规定服务器与客户端之间通过建立链接来实现数据的传输。例如,网络传输协议为tcp协议、用户数据报协议(udp,userdatagramprotocol)协议、互联网协议(ip,internetprotocol)等。

基于网络传输协议的算法用于针对链接实现特定的功能,例如,解决拥塞控制、提高数据传输速率等。需要说明的是,本申请实施例对具体的算法不做任何限定,只要这种算法中存在某一个或多个与网络相关的参数,即可调整该参数来显著的影响其在不同网络中的性能。

以tcp协议和基于tcp协议的拥塞控制算法为例,图1为本申请一实施例所涉及的tcp拥塞控制算法应用系统的结构示意图。如图1所示,该tcp拥塞控制算法系统100包括服务器110和客户端120。服务器110又具体包括:参数的处理装置111、tcp协议栈112和日志数据库115,其中,tcp协议栈112又包括拥塞控制算法模块113和其中的算法参数接口114。

根据本申请的实施例,将tcp拥塞控制算法应用于一个网络时,参数的处理装置111基于探索与利用问题(explorationvs.exploitationdilemma)在线优化参数配置,具体包括:设置算法中影响该网络传输性能的核心参数以及核心参数的多个候选取值;然后,参数的处理装置111周期性的从日志数据库115读取日志数据,针对每个候选取值,从日志数据中筛选出历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值;根据性能指标统计值,计算出每个候选取值对应的概率值;根据各个概率值,从多个候选取值中确定出在接下来新建立的链接中核心参数的最优取值。

参数的处理装置111将最优取值发送给算法参数接口114,算法参数接口114将接收到的最优取值转发给拥塞控制算法模块113,针对新建立的链接进行参数配置。拥塞控制算法模块113中所使用的拥塞控制算法,如tcp立方体(cubic)算法、tcp瓶颈带宽与往返时间(bbr,bottleneckbandwidthandround-triptime)算法等。然后,由tcp协议栈112完成整个协议架构的设计和实现,通过当前建立的新链接与客户端120进行双向数据通信。当基于该新链接的数据传输结束后,服务器110将收集此次传输相关的日志数据,写入日志数据库115中进行存储。

在实际应用时,tcp协议栈112是网络中各层协议的总和,用于反映一个网络中文件的传输过程,由上层协议到底层协议,再由底层协议到上层协议。其中,tcp协议为该协议栈112在传输层所使用的网络传输协议。在具体实现时,tcp协议栈112包括了用代码实现的各类库函数。

其中,服务器110可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。服务器110与客户端120之间可以通过无线网络或有线网络相连进行数据通信。

图2为依据本申请一实施例的参数的处理方法的示例性流程图。该方法应用于服务器或者参数的处理装置等电子设备,如图1中所示的服务器110或者参数的处理装置111。如图2所示,该方法可包括如下步骤:

步骤201,将基于网络传输协议的算法应用于一个网络时,设置算法中影响该网络传输性能的核心参数以及核心参数的多个候选取值。

通常,一个算法中涉及多个参数,这些参数对所应用的网络的传输性能会产生不同程度的影响。本步骤中,首先确定算法所涉及的核心参数,即在所应用的网络中传输性能影响较大的至少一个参数。

在本申请一实施例中,可以根据算法的设计原则,预先设定出对传输性能影响最大的至少一个核心参数。对于不同的网络,该核心参数是固定的。

例如,tcpcubic算法为当前linux内核的默认拥塞控制算法,该算法中存在一个对tcp传输性能有明显影响的核心参数,即检测到丢包后的拥塞窗口衰减系数,用p表示。该核心参数p的具体作用为,当cubic算法检测到网络中存在丢包时,将后续链接的拥塞窗口大小降为当前拥塞窗口大小的p倍,也意味着tcp传输的发送速率降低。

根据本申请实施例,在确定核心参数的多个候选取值时,可以首先确定核心参数的取值范围以及经验数值,根据取值范围和经验数值确定出多个候选取值。

例如,对于上述核心参数p,在现有技术中,p的默认值为0.7,这个经验数值为人工调优的结果。一般情况下,该参数的取值范围为(0,1]。若取值偏高,则可能造成网络拥塞无法缓解,从而进一步加剧拥塞;而若取值偏低,则可能造成网络速率降低过大,降低带宽利用率。所以,在真实的网络场景中,该参数存在优化的空间,即在高拥塞网络场景中,需要降低该参数的取值,比如0.5,以降低发送数据量,减少网络拥塞;但是在有些轻度丢包的网络场景中,则提高该取值,比如0.9,以减少不必要的传输降速,提升网络带宽利用率。

因此,对于上述核心参数p,根据经验数值0.7和取值范围(0,1],设定候选取值的个数n=5,候选取值集合v={0.1,0.3,0.5,0.7,0.9},vn表示第n个取值,n=1,…,n,n为正整数。可见,经验数值0.7只是其中的一个候选取值,将和其他的候选取值一起通过在线学习过程从中选择出针对后续新链接的最佳数值。

在另一实施例中,根据对该网络传输性能的分析,从算法涉及的多个参数中确定出至少一个核心参数。对于不同的网络,所确定的核心参数可能是不同的。当确定出多个核心参数时,候选取值集合包括了每个核心参数候选取值的所有组合,每个组合被称为一套候选取值。

例如,有两个核心参数x和y同时影响拥塞控制算法,x有m个候选取值,xm代表第m个x的候选取值,m=1,…,m;y有n个候选取值,yn代表第n个y的候选取值,n=1,…,n。那么,候选取值集合v包括m*n套候选取值,表示为:

v={{x1,y1},{x1,y2},…,{x1,yn},…,{xm,y1},…,{xm,yn}}(1)

最终,针对新建立的链接,所确定的也是最优的一套候选取值,例如,{x1,y2}。相比于单个核心参数,这种情况可以更广泛的尝试多个核心参数不同的候选取值,更有机会获得全局最优的结果。

需要说明的是,本申请实施例中,对于候选取值的数值和数量不做具体限定,在具体应用时可以由专业人员通过经验数据来设定。

步骤202,针对每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值。

本申请实施例中,在每个链接完成数据的传输之后,协议栈会记录下本次链接的相关数据,将其存储为日志数据,例如,以文本形式存储在图1所示的日志数据库115中。基于日志数据筛选出用于在线学习的历史传输记录。历史传输记录包括基于算法建立的多个历史链接、每个历史链接所使用的核心参数的历史取值以及该历史链接的传输特征信息。该传输特征信息包括与基于该历史链接完成的数据传输相关的至少一个特征量。

以tcp协议为例,表1为根据一实施例的历史传输记录,包括多个tcp历史链接。每个tcp历史链接对应一条历史传输记录,包含但不限于:本次tcp链接使用的核心参数的历史取值以及多项传输特征信息,包括本次tcp链接建立的时刻(其中,utc表示世界标准时间)、源ip地址、源端口、目的ip地址、目的端口、本次tcp链接共传输的字节大小、本次tcp链接最小rtt、本次tcp链接的传输时间(指总耗时)、本次tcp链接是否被应用层限速。其中,一个链接可以在两个方向上传输数据,那么往返时间是指进行一次数据传输的往返时间。

表1历史传输记录示例

本申请实施例中,从多个候选取值中确定出在该网络新建立的链接中核心参数的取值,是基于探索与利用问题。所谓的探索是指在先验信息匮乏时,均匀的选择一个候选取值用于后续链接的数据传输;所谓的利用是指选择传输性能最高的那个候选取值用于后续链接的数据传输。基于这种探索与利用策略,在步骤203和步骤204中,将各个候选取值的性能指标统计值作为先验信息,从多个候选取值中确定出在该网络新建立的链接中核心参数的最优取值,所谓的“最优”指针对具体的性能指标而言的。

步骤203,根据性能指标统计值,计算出每个候选取值对应的概率值。

本步骤中,对于每个候选取值,可以将该候选取值对应的性能指标统计值与各个性能指标统计值之和的比值,作为该候选取值对应的概率值。

步骤204,根据各个概率值,从多个候选取值中确定出在该网络新建立的链接中核心参数的取值。

本步骤中,对于该网络新建立的链接,可以生成表征该新链接的数值,将该数值与各个概率值进行比较确定出新链接中所使用的核心参数的取值。

根据上述实施例,通过将基于网络传输协议的算法应用于一个网络时,设置算法中影响该网络传输性能的核心参数以及核心参数的多个候选取值;针对每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值;根据性能指标统计值,计算出每个候选取值对应的概率;及,根据各个概率值,从多个候选取值中确定出在该网络新建立的链接中核心参数的取值,可见,能够从算法核心参数的多个候选取值中,在线学习一种与当前网络的质量最匹配的参数取值,用于网络后续链接中算法的参数配置中,这样,不同的网络在线学习出的参数取值是不同的。

图3为依据本申请一实施例的为不同网络确定不同参数取值的示意图。如图3所示,针对算法301,它将应用于网络a(见331)、网络b(见332)、网络c(见333)。参数的处理装置302设置算法的核心参数为p以及n个候选取值v1,v2,…,vn,并基于历史传输记录通过在线学习确定出,在为用户新建立的链接中,网络a使用候选取值v1,网络b使用候选取值v2,网络c使用候选取值v3。

可见,同一算法可以自适应于不同网络的传输质量,提高了算法的适用范围以及用户在不同网络中的传输性能,并且提升了服务器的资源利用率。

图4为依据本申请另一实施例的参数的处理方法的示例性流程图。该方法应用于服务器或者参数的处理装置等电子设备,如图1中所示的服务器110或者参数的处理装置111。如图4所示,该方法可包括如下步骤:

步骤401,将基于网络传输协议的算法应用于一个网络时,设置算法中影响该网络传输性能的核心参数以及核心参数的多个候选取值。

此步骤为初始化步骤,具体的设置方法可参照上述步骤201的描述。

以tcpbbr算法为例,bbr算法是目前研究的最新tcp拥塞控制算法,正在推动应用于linux系统中,取代cubic成为linux内核的默认拥塞控制算法。bbr算法的核心参数是拥塞控制窗口w。

目前,bbr算法中默认采用2倍的网络可承载数据包大小(bdp,bandwidthdelayproduct)作为其拥塞控制窗口w。但是,研究数据表明,将2倍的bdp作为拥塞窗口,在某些网络中表现良好,取得较高的平均吞吐量,但是,在某些网络中表现差于cubic算法。鉴于此,在设置w的候选取值时,基于经验数值为2倍的bdp,设置候选取值集合包括5个元素,即v={1*bdp,2*bdp,4*bdp,6*bdp,8*bdp}。

步骤402,周期性读取该网络的日志数据,根据预设筛选策略从读取的日志数据中筛选出历史传输记录。

对于tcp链接,现有技术中,通常对于每一个新完成的链接都进行最优取值的选择,但是由于tcp链接通常具有并发性,比如,同一时刻会发生有数百条tcp链接的传输。为了减少计算负载和减少每次读取日志带来的输入输出(io)接口的消耗,本申请实施例中,采用周期性读取日志数据的方法,同时周期性决策当前场景中核心参数的最优取值。也就是说,这里的周期既是读取日志数据的周期,也是确定新链接中核心参数的最优取值的周期。例如,周期为10秒。

进一步,对读取的日志数据进行清理,根据预设的筛选策略排除异常链接,筛选出用于在线学习的历史传输记录。日志数据中包括有之前所建立的所有链接的所有相关信息,包括上述表1中列出的每个历史链接所使用的核心参数的历史取值以及该历史链接的传输特征信息。

根据本申请一实施例,若日志数据中一个历史链接被建立的时刻处于预设时间段之内,则将该历史链接加入历史传输记录中。为了适应不同时间段的网络变化,预先设定用于筛选链接的时间段。例如,用户使用网络的高峰时间段、非高峰时间段。

图5为依据本申请一实施例的为网络不同时刻确定不同参数取值的示意图。如图5所示,对于算法501应用于网络a(见503)时,参数的处理装置502对时间轴进行监测,基于历史高峰时间段内的历史传输记录,可以确定出在即将到来的高峰时间段使用核心参数p的最佳取值为v2。基于历史非高峰时间段内的历史传输记录,可以确定出在即将到来的非高峰时间段使用核心参数p的最佳取值为v1。在一天之内,将有多个高峰时间段和非高峰时间段,那么最佳取值将不断随之变化。

又如,预设时间段为最近t个小时的tcp链接。如表1所示,对序号为1的历史链接,该链接被建立的时刻为2018-01-0113:00:01。若t=2,将该时刻和当前时刻相比是在最近2个小时之内,那么将该历史链接加入历史传输记录中。

为了适应不同地点的网络变化,还可以预先指定源ip地址或者目标ip地址。例如,和链接被建立的时刻结合起来,仅考虑最近t个小时内某个指定ip地址段的链接,加入历史传输记录中。相比于现有技术中,为了考虑全局整体收益,需要建立在一个稳定的网络环境中。而上述根据链接被建立的时刻和ip地址进行筛选,可以满足不同时间段、不同地点的网络变化。

根据本申请另一实施例,若日志数据中一个历史链接在网络传输协议限定的应用层中未被限速,则将该历史链接加入历史传输记录中。考虑到被人为限速的历史链接无法准确反映网络的质量,这里被认为是异常链接,进行排除,而是将未被限速的历史链接加入到历史传输记录中。

根据本申请又一实施例,若日志数据中一个历史链接的传输时间大于该历史链接最小往返时间的k倍时,则将该历史链接加入历史传输记录中,其中,k为正整数。这里是将传输时间小于某个阈值的链接定义为异常链接,这个阈值是通过最小往返时间来限定的,例如k=10。

考虑到在公共网络中,一般无法识别哪些是高拥塞网络,哪些是低度丢包的网络,但是基本的目标都是提高网络的平均吞吐量。因此,在后续的步骤中,基于探索与利用问题进行在线学习,自动地为当前网络选择出后续参数的最优数值。

步骤403,针对每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值。

本步骤中,性能指标统计值包括带宽、往返时间、丢包率及其加权组合中的任一项。历史传输记录包括基于算法建立的多个历史链接、每个历史链接所使用的核心参数的历史取值以及该历史链接的传输特征信息。基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值,具体包括如下步骤:

步骤4031,确定历史取值与该候选取值相同的多个历史链接。

若候选取值为vn,历史取值可能为v1,…,vn中的任何一个,那么将历史取值为vn的j个历史链接确定出来,记为l1,…,lj。

步骤4032,根据该多个历史链接中每个历史链接的传输特征信息,计算该历史链接的性能指标的数值。

本步骤中,性能指标是针对每个历史链接而言的。例如,针对拥塞控制算法,性能指标包括带宽、往返时间、丢包率及其加权组合中的任一项。核心参数的取值将影响性能指标的结果。

根据本申请一实施例,性能指标是指带宽。由于核心参数p的设置会影响拥塞控制算法的行为,进而影响用户的带宽。针对p选择不同的取值,可以从数据传输的结果中观测到不同的带宽。在线学习时则利用带宽来表征候选取值的概率。

根据本申请另一实施例,传输特征信息中包括一个历史链接的带宽、往返时间以及丢包率,性能指标设置为带宽、往返时间以及丢包率的加权组合。将性能指标记为u,那么有

u=α·bandwidth-β·rtt-γ·loss(2)

其中,α代表带宽bandwidth的权重,β代表往返时间rtt的权重,γ代表丢包率loss的权重。

在实际应用时,可以根据网络中所提供的业务配置权重的数值。比如,对于强调带宽的业务,带宽的权重α配置的高一些;对于强调实时性的业务,往返时间的权重β将配置的高一些;对于强调带宽成本的业务,丢包率的权重γ可以配置的高一些。

步骤4033,对性能指标的各个数值进行统计,得到该候选取值对应的性能指标统计值。

在进行统计时,现有技术一般采用平均值作为性能指标,但是考虑到网络带宽的极差很大且变化带有突发性,为了减少网络带宽突发造成的数据扰动,根据本申请一实施例,将各个历史链接的带宽的中位数(或者中值)作为性能指标统计值,来表征平均意义上的带宽。

例如,对于第n个候选取值,步骤3031中确定出j个历史链接l1,…,lj,步骤3032中确定出第j个历史链接的性能指标的数值为uj,那么在本步骤中,将u1,…,uj按大小顺序排列起来,形成一个数列,处于数列中间位置的数值即为中位数,将其作为性能指标统计值bn。

步骤404,对各个性能指标统计值进行归一化。

本步骤中,为了减少性能指标统计值中出现异常值产生的影响,例如,带宽中位数的变化极差很大,此时可以对各个性能指标统计值bn进行归一化,将bn规整到[0,1]区间,用θn表示。

根据本申请一实施例,为了增加不同参数对tcp性能影响的区分度,采用最大-最小值(max-min)归一化方法,即根据预设的百分位阈值,计算各个性能指标统计值的最大值和最小值;根据最大值和最小值,对各个性能指标统计值进行归一化。例如,预设的百分位阈值为95%,在所有的性能指标统计值中,将最大值设定为95分位数,用bmax表示;将最小值设定为5分位数,用bmin表示。

若bn<bmin,则θn=0;若bn>bmax,则θn=1;否则,

步骤405,根据归一化的性能指标统计值,计算出每个候选取值对应的概率值。

本步骤中,可以根据各种基于探索与利用问题的解决方案,例如,ε-贪婪(greedy)算法、上限置信区间1(ucb,upperconfidencebound)算法、柔性最大(softmax)算法、汤普森采样算法等,由各个归一化的性能指标统计值计算出概率值。下面以softmax算法为例,计算概率值的方法包括如下步骤:

步骤4051,计算各个候选取值对应的历史链接的总量,根据总量计算加权因子。

若总量记为c,加权因子计算为

其中,v为经验值。这里,τ>0类似于模拟退火中的温度参数。若τ趋近于0,将只选择最优的那个候选取值,也就是基于利用策略;反之,若τ趋近于+∞,那么将均匀的选取所有候选取值,也就是基于探索策略。可以看出,τ随着链接总量的增加而变小,意味着当对不同取值尝试的总次数增加时,更确定某一个取值的性能,而更倾向于利用策略。

步骤4052,对于每个候选取值,执行如下处理:使用加权因子对该候选取值对应的性能指标统计值进行加权,得到加权后统计值;计算该候选取值对应的加权后统计值与各个加权后统计值之和的比值,作为该候选取值对应的概率值。

基于softmax算法,加权后统计值为那么第n个候选取值对应的概率值用βn计算为:

步骤406,预先设置概率下限,对各个概率值进行平滑。

本步骤中,为了避免候选取值的选择落入局部最优,可以为每个候选取值被选择的概率配置一个下限。例如,下限由μ表示,例如μ=0.01。其物理意义为,不管某个候选取值对应的传输性能有多差,均至少保证其有μ的概率被选择。

根据概率下限μ对各个概率值βn进行平滑时,计算公式为:

这里,对βn乘上一个加权系数(1-nμ),是为了保证平滑后的各个概率值的总和仍为1。这样,平滑后的各个概率值都大于概率下限。

步骤407,根据平滑后的各个概率值,从多个候选取值中确定出在该网络新建立的链接中核心参数的取值。

本步骤中,各个概率值构成一个概率分布,基于随机数和这个概率分布来确定新链接中核心参数的取值。具体包括如下步骤:

步骤4071,根据各个概率值生成多个概率区间,其中,每个概率值对应一个概率区间。

这里的概率区间是个累计概率值,第k个概率区间为[0,bk],k=1,…,n,其中,bk可以计算为:

步骤4072,产生随机数,并确定随机数所落入的概率区间以及该概率区间对应的概率值,将与该概率值对应的候选取值确定为核心参数的取值。

本步骤中,可以产生0至1之间均匀分布的随机数x,确定随机值x落入第n′个概率区间的计算方法为:

这样,n′这个索引所对应的候选取值vn′即为后续新建立的链接中核心参数p的最优取值。

然后,按照上述步骤402中设定的周期,重复执行步骤402-407,读取日志数据进行在线学习,确定出下一个周期中所建立的多个新链接的最优取值。

以tcp协议为例,图6为依据本申请一实施例的参数的处理方法的时序交互图。如图6所示,在tcp服务器和tcp客户端之间传输数据时,拥塞控制算法的核心参数可以根据网络的传输性能自适应地调整取值。具体地,tcp服务器又具体包括参数的处理装置(具体为在线学习模块)、日志收集模块和协议栈。交互的步骤具体包括:

步骤601,协议栈初始配置tcp拥塞控制算法中所有参数的取值,其中核心参数p的初始取值为v1,使用这个v1与tcp客户端进行双向数据的传输。

步骤602,在传输结束后,日志收集模块收集协议栈性能日志。

步骤603,在线学习模块周期性读取日志收集模块中的日志数据。

步骤604,在线学习模块对读取到的日志数据进行在线学习,输出下一个周期中所有链接使用的最优数值v2。

本步骤中,在线学习模块根据上述实施例中的方法,对日志数据进行分析,根据传输性能的指标值,例如平均意义上的带宽、平均意义上的吞吐量,计算出针对下一个周期的最优数值。

步骤605,在线学习模块将最优数值v2发送给协议栈进行拥塞控制算法的参数配置。

步骤606,协议栈使用v2与tcp客户端进行双向数据的传输。

步骤607,在传输结束后,日志收集模块收集协议栈性能日志。

步骤608,在线学习模块周期性读取日志收集模块中的日志数据。

步骤609,在线学习模块对读取到的日志数据进行在线学习,输出又一个周期中所有链接使用的最优数值v3。

步骤610,在线学习模块将最优数值v3发送给协议栈进行算法的参数配置。

步骤611,协议栈使用v3与tcp客户端进行双向数据的传输。

后续将重复上述的处理,周期性的读取日志并输出后续使用的最优数值。

通过上述实施例,从多个候选取值中在线学习出与当前网络、当前时间段最匹配的参数取值,并应用于tcp拥塞控制算法,可以提高tcp拥塞控制算法的适用范围,并提高用户在网络不同质量中的平均tcp吞吐量。

图7为依据本申请一实施例的参数的处理装置的结构示意图。如图7所示,装置700包括:

参数设置模块710,用于将基于网络传输协议的算法应用于一个网络时,设置算法中影响该网络传输性能的核心参数以及核心参数的多个候选取值;

第一确定模块720,用于针对参数设置模块710设置的每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值;

计算模块730,用于根据第一确定模块720确定的性能指标统计值,计算出每个候选取值对应的概率值;及,

第二确定模块740,用于根据计算模块730得到的各个概率值,从多个候选取值中确定出在该网络新建立的链接中核心参数的取值。

在本申请一实施例中,装置700还包括:

读取模块750,用于周期性读取该网络的日志数据;

筛选模块760,用于根据预设筛选策略从读取模块750读取的日志数据中筛选出历史传输记录。

在本申请一实施例中,筛选模块760用于,若日志数据中一个历史链接被建立的时刻处于预设时间段之内,则将该历史链接加入历史传输记录中。

在本申请一实施例中,筛选模块760用于,若日志数据中一个历史链接在网络传输协议限定的应用层中未被限速,则将该历史链接加入历史传输记录中。

在本申请一实施例中,筛选模块760用于,若日志数据中一个历史链接的传输时间大于该历史链接最小往返时间的k倍时,则将该历史链接加入历史传输记录中,其中,k为正整数。

在本申请一实施例中,历史传输记录包括基于算法建立的多个历史链接、每个历史链接所使用的核心参数的历史取值以及该历史链接的传输特征信息,第一确定模块720用于,确定历史取值与该候选取值相同的多个历史链接;根据该多个历史链接中每个历史链接的传输特征信息,计算该历史链接的性能指标的数值;对性能指标的各个数值进行统计,得到该候选取值对应的性能指标统计值。

在本申请一实施例中,计算模块730用于,根据预设的百分位阈值,计算各个性能指标统计值的最大值和最小值;根据最大值和最小值,对各个性能指标统计值进行归一化;根据各个归一化的性能指标统计值,计算概率值。

在本申请一实施例中,计算模块730用于,计算各个候选取值对应的历史链接的总量,根据总量计算加权因子;对于每个候选取值,执行如下处理:使用加权因子对该候选取值对应的性能指标统计值进行加权,得到加权后统计值;计算该候选取值对应的加权后统计值与各个加权后统计值之和的比值,作为为该候选取值对应的概率值。

在本申请一实施例中,参数设置模块710用于,预先设置概率下限;

第二确定模块740用于,根据参数设置模块710设置的概率下限对各个概率值进行平滑,平滑后的各个概率值都大于概率下限;根据平滑后的各个概率值确定核心参数的取值。

在本申请一实施例中,第二确定模块740用于,根据各个概率值生成多个概率区间,其中,每个概率值对应一个概率区间;产生随机数,并确定随机数所落入的概率区间以及该概率区间对应的概率值,将与该概率值对应的候选取值确定为核心参数的取值。

在本申请一实施例中,性能指标统计值包括带宽、往返时间、丢包率及其加权组合中的任一项。

图8为依据本申请一实施例的服务器的结构示意图。该服务器是任何基于网络传输协议的服务器产品,包括但不限于内容分发网络(cdn,contentdeliverynetwork)服务器。该服务器800可包括:处理器810、存储器820、端口830以及总线840。处理器810和存储器820通过总线840互联。处理器810可通过端口830接收和发送数据。其中,

处理器810用于执行存储器820存储的机器可读指令模块。

存储器820存储有处理器810可执行的机器可读指令模块。处理器810可执行的指令模块包括:参数设置模块821、第一确定模块822、计算模块823和第二确定模块824。其中,

参数设置模块821被处理器810执行时可以为:将基于网络传输协议的算法应用于一个网络时,设置算法中影响该网络传输性能的核心参数以及核心参数的多个候选取值;

第一确定模块822被处理器810执行时可以为:针对参数设置模块821设置的每个候选取值,基于该网络的历史传输记录,确定使用该候选取值进行数据传输的历史链接以及该候选取值对应的性能指标统计值;

计算模块823被处理器810执行时可以为:根据第一确定模块822确定的性能指标统计值,计算出每个候选取值对应的概率值;及,

第二确定模块824被处理器810执行时可以为:根据计算模块823得到的各个概率值,从多个候选取值中确定出在该网络新建立的链接中核心参数的取值。

在一实施例中,处理器810可执行的指令模块还包括:读取模块825和筛选模块826,其中,

读取模块825被处理器810执行时可以为:周期性读取该网络的日志数据;

筛选模块826被处理器810执行时可以为:根据预设筛选策略从读取模块825读取的日志数据中筛选出历史传输记录。

在一实施例中,参数设置模块821被处理器810执行时进一步可以为:预先设置概率下限;

第二确定模块824被处理器810执行时进一步可以为:根据参数设置模块821设置的概率下限对各个概率值进行平滑,平滑后的各个概率值都大于概率下限;根据平滑后的各个概率值确定核心参数的取值。

由此可以看出,当存储在存储器820中的指令模块被处理器810执行时,可实现前述各个实施例中参数设置模块、第一确定模块、计算模块、第二确定模块、读取模块和筛选模块的各种功能。

上述装置和系统实施例中,各个模块及单元实现自身功能的具体方法在方法实施例中均有描述,这里不再赘述。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

另外,本申请的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本申请。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此,本申请还公开了一种计算机可读存储介质,其中存储有计算机可读指令,可以使至少一个处理器执行上述任何一种方法实施例。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1