一种数据传输方法、装置、电子设备及存储介质与流程

文档序号:25596157发布日期:2021-06-22 17:14阅读:99来源:国知局
一种数据传输方法、装置、电子设备及存储介质与流程

本申请涉及数据传输技术领域,具体涉及一种数据传输方法、装置、电子设备及存储介质。



背景技术:

随着云计算等大数据技术的发展,通过网络中的协议链路进行数据传输的场景越来越普遍,如何提升协议链路中的数据传输性能十分重要。

目前,通过协议链路进行数据传输的过程中,通常通过固定的数据传输加速策略进行数据传输加速处理,可以在一定程度上保证数据传输性能,例如,在数据传输过程中通过固定拥塞控制算法进行数据传输加速处理。

但是,通常使用固定的数据传输加速策略时,不能够有效应对数据传输全流程中网络环境的变化,因此,现有技术中,存在协议链路中的数据传输性能有限的问题。



技术实现要素:

本申请实施例提供一种数据传输方法及相关装置,旨在提升协议链路中的数据传输性能。

为解决上述技术问题,本申请实施例提供以下技术方案:

根据本申请的一个实施例,一种数据传输方法,其包括:获取通过目标协议链路传输历史数据时的历史链路状态信息;在所述目标协议链路上传输当前数据的过程中,获取所述目标协议链路中的当前链路状态信息;根据所述历史链路状态信息及所述当前链路状态信息,调整所述目标协议链路对应的数据加速传输策略;根据调整后的数据加速传输策略,控制所述目标协议链路加速传输所述当前数据,直至完成所述当前数据的传输。

根据本申请的一个实施例,一种数据传输装置,其包括:历史获取模块,用于获取通过目标协议链路传输历史数据时的历史链路状态信息;当前获取模块,用于在所述目标协议链路上传输当前数据的过程中,获取所述目标协议链路中的当前链路状态信息;动态调整模块,用于根据所述历史链路状态信息及所述当前链路状态信息,调整所述目标协议链路对应的数据加速传输策略;控制模块,用于根据调整后的数据加速传输策略,控制所述目标协议链路加速传输所述当前数据,直至完成所述当前数据的传输。

在本申请的一些实施例中,所述历史链路状态信息包括历史链路缓冲区大小信息;所述当前链路状态信息包括当前链路缓冲区大小信息;所述动态调整模块,包括:实时比较单元,用于实时比较所述历史链路缓冲区大小信息及所述当前链路缓冲区大小信息,得到比较结果;实时调整单元,用于根据所述比较结果,实时调整所述目标协议链路对应的数据加速传输策略。

在本申请的一些实施例中,所述历史链路缓冲区大小信息包括历史带宽时延积及发送数据量安全阈值,所述发送数据量安全阈值大于等于所述历史带宽时延积;所述当前链路缓冲区大小信息包括当前带宽时延积;所述实时调整单元,包括:第一调整子单元,用于当所述比较结果为所述当前带宽时延积小于所述历史带宽时延积时,将所述目标协议链路对应的数据加速传输策略调整为第一数据加速传输策略;第二调整子单元,用于当所述比较结果为所述当前带宽时延积大于所述历史带宽时延积,且所述当前带宽时延积小于等于所述发送数据量安全阈值时,将所述目标协议链路对应的数据加速传输策略调整为第二数据加速传输策略;第三调整子单元,用于当所述比较结果为所述当前带宽时延积大于所述发送数据量安全阈值时,将所述目标协议链路对应的数据加速传输策略调整为第三数据加速传输策略。

在本申请的一些实施例中,所述控制模块,包括:第一控制单元,用于当调整后的数据加速传输策略为所述第一数据传输加速策略时,控制所述目标协议链路上按照预定数据发送速率提升单次数据发送量,发送所述当前数据,直至所述目标协议链路上的单次数据发送量达到所述历史带宽时延积;第二控制单元,用于当调整后的数据加速传输策略为所述第二数据传输加速策略时,通过周期性带宽探测调整所述目标协议链路上的单次数据发送量,发送所述当前数据,直至所述目标协议链路上的当前带宽时延积达到所述发送数据量安全阈值;第三控制单元,用于当调整后的数据加速传输策略为所述第三数据传输加速策略时,控制所述目标协议链路上按照预定规则增加单次数据发送量,并且在所述目标协议链路上出现丢包时通过调整增加后的单次数据发送量,发送所述当前数据,直至完成所述当前数据的传输。

在本申请的一些实施例中,所述动态调整模块,包括:预定调整单元,用于当所述历史链路状态信息为空时,调整所述目标协议链路对应的数据加速传输策略为预设数据加速传输策略。

在本申请的一些实施例中,所述装置还包括:采集模块,用于获取通过所述目标协议链路每次传输历史数据时的链路缓冲区大小信息,得到历史链路缓冲区大小信息;归一化模块,用于将所述历史链路缓冲区大小信息进行归一化处理,得到所述历史链路状态信息。

在本申请的一些实施例中,所述历史链路缓冲区大小信息包括极限带宽时延积、拥塞带宽时延积及未确认数据量,所述极限带宽时延积为每次传输历史数据的最后传输时刻点所对应带宽时延积,所述拥塞带宽时延积为每次检测到传输发生拥塞的时刻点所对应带宽时延积,所述未确认数据量为每次检测到传输发生拥塞的时刻点已发送但未收到确认的数据量;所述归一化模块,包括:加权处理单元,用于将所有所述极限带宽时延积加权求和,得到历史带宽时延积;最大确认单元,用于将所有所述拥塞带宽时延积及未确认数据量中,最大的数值作为发送数据量安全阈值;信息确定单元,用于将所述历史带宽时延积及所述发送数据量安全阈值,作为所述历史链路状态信息。

在本申请的一些实施例中,所述加权处理单元,包括:前次获取子单元,用于获取前次极限带宽时延积,所述前次极限带宽时延积为传输前次历史数据时对应的极限带宽时延积,所述前次历史数据为所述当前数据之前一次所传输的数据;前续获取子单元,用于获取前续历史带宽时延积,所述前续历史带宽时延积为传输再前历史数据时对应的极限带宽时延积按照预定加权系数加权求和得到的,所述再前历史数据为所述前次历史数据之前所传输的数据;加权求和子单元,用于将所述前续历史带宽时延积与所述前次极限带宽时延积,按照所述预定加权系数加权求和,得到所述历史带宽时延积。

在本申请的一些实施例中,所述预定加权系数包括第一加权系数及第二加权系数;所述加权求和子单元,用于将所述前续历史带宽时延积与所述第一加权系数相乘,得到第一加权项;将所述前次极限带宽时延积与所述第二加权系数相乘,得到第二加权项;将所述第一加权项及所述第二加权项相加,得到所述历史带宽时延积。

在本申请的一些实施例中,所述历史获取模块,包括:哈希表获取单元,用于获取预设哈希表,所述预设哈希表用于保存协议链路对应的历史链路状态信息;查询单元,用于从所述预设哈希表中,查询所述目标协议链路对应的历史链路状态信息。

在本申请的一些实施例中,所述目标协议链路对应于目标数据发送方,所述预设哈希表中保存发送方标识及所述发送方标识所关联的历史链路状态信息;所述查询单元,包括:标识获取子单元,用于获取所述目标数据发送方的发送方标识;查询子单元,用于从所述预设哈希表中,查询所述目标数据发送方的发送方标识所关联的历史链路状态信息。

在本申请的一些实施例中,所述装置还包括更新模块,所述更新模块包括:本次采集单元,用于在所述目标协议链路中传输所述当前数据的过程中,获取本次链路缓冲区大小信息;本次归一化单元,用于将所述本次链路缓冲区大小信息与所述历史链路缓冲区大小信息进行归一化处理,得到更新后历史链路状态信息;更新单元,用于利用所述更新后历史链路状态信息,更新预设哈希表中所述目标协议链路对应的历史链路状态信息。

根据本申请的另一实施例,一种电子设备可以包括:存储器,存储有计算机可读指令;处理器,读取存储器存储的计算机可读指令,以执行本申请实施例所述的方法。

根据本申请的另一实施例,一种存储介质,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行本申请实施例所述的方法。

根据本申请的另一实施例,一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所述的各种可选实现方式中提供的方法。

本申请实施例通过获取通过目标协议链路传输历史数据时的历史链路状态信息;在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息;根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略;根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输。

进而,在目标协议链路上传输当前数据的过程中,可以动态调整数据加速传输策略,控制目标协议链路加速传输当前数据,且数据加速传输策略的动态调整是基于在历史链路状态信息指导,可以有效应对协议链路中的各种链路状况,实现快速且安全的进行数据传输,有效提升目标协议链路的传输质量,提升协议链路中的数据传输性能。

附图说明

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

图1示出了可以应用本申请实施例的系统的示意图。

图2示出了可以应用本申请实施例的另一种系统200的示意图。

图3示出了根据本申请的一个实施例的数据传输方法的流程图。

图4示出了根据本申请的一个实施例的查询历史链路状态信息的方法的流程图。

图5示出了根据本申请的一个实施例的得到历史链路状态信息的方法的流程图。

图6示出了根据本申请的一个实施例的归一化处理方法的流程图。

图7示出了根据本申请的一个实施例的调整数据加速传输策略的方法流程图。

图8示出了应用本申请的实施例的一种场景下数据传输的流程图。

图9示出了根据本申请的一个实施例的数据传输装置的框图。

图10示出了根据本申请的一个实施例的电子设备的框图。

具体实施方式

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

在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

图1示出了可以应用本申请实施例的系统100的示意图。如图1所示,系统100可以包括服务器101、终端102,服务器101上可以接收、存储及分发数据,终端102也可以接收、存储及分发数据。

服务器101可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。服务器101可以执行后台任务,服务器101中可以存储数据资产。

一种实施方式中,服务器101可以提供人工智能云服务,例如提供大型多人在线角色扮演游戏(mmorpg)的人工智能云服务。所谓人工智能云服务,一般也被称作是aiaas(aiasaservice,中文为“ai即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说aiaas平台会把几类常见的ai服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个ai主题商城:所有的开发者都可以通过api接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的ai框架和ai基础设施来部署和运维自已专属的云人工智能服务,例如,服务器101可以提供基于人工智能的数据处理。

终端102可以是边缘设备,例如智能手机,电脑等。用户可以通过终端102上的客户端进行数据的更新、修改及删除等操作。

其中,终端102上的客户端可以通过目标协议链路向服务器101传输数据,目标协议链路可以包括基于运输层协议的链路,例如传输控制协议(tcp,transmissioncontrolprotocol)链路或者用户数据报协议(udp,userdatagramprotocol)链路传输以及其他运输层协议。

终端102和服务器101可以通过无线通信方式进行直接或间接地连接,本申请在此不做特殊限制。

本示例的一种实施方式中,服务器101可以获取通过目标协议链路传输历史数据时的历史链路状态信息;在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息;根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略;根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输。

图2示出了可以应用本申请实施例的另一种系统200的示意图。如图2所示,系统200可以是由客户端201、多个节点202(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。

以分布式系统为区块链系统为例,参见图2,图2是本申请实施例提供的分布式系统200应用于区块链系统的一个可选的结构示意图,由多个节点202(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端201形成,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点202,节点包括硬件层、中间层、操作系统层和应用层。

参见图2示出的区块链系统中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

例如,应用实现的业务包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;

2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。

2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。

3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。

其中,节点202之间可以通过目标协议链路传输数据,目标协议链路可以包括基于运输层协议的链路,例如传输控制协议(tcp,transmissioncontrolprotocol)链路或者用户数据报协议(udp,userdatagramprotocol)链路传输以及其他运输层协议。

本示例的一种实施方式中,节点202可以获取通过目标协议链路传输历史数据时的历史链路状态信息;在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息;根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略;根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输。

图3示意性示出了根据本申请的一个实施例的数据传输方法的流程图。该数据传输方法的执行主体可以是具有计算处理功能的电子设备,比如图1中所示的服务器101或者终端102或者图2中的节点202或客户端201。

如图3所示,该数据传输方法可以包括步骤s210至步骤s240。

步骤s210,获取通过目标协议链路传输历史数据时的历史链路状态信息;

步骤s220,在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息;

步骤s230,根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略;

步骤s240,根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输。

下面描述数据传输时,所进行的各步骤的具体过程。

在步骤s210中,获取通过目标协议链路传输历史数据时的历史链路状态信息。

本示例的实施方式中,目标协议链路即基于数据传输协议建立的数据发送方(例如客户端)与数据接收方(例如服务器)之间的数据传输链路。本示例中,目标协议链路包括基于运输层协议的链路,例如传输控制协议(tcp,transmissioncontrolprotocol)链路或者用户数据报协议(udp,userdatagramprotocol)链路传输以及其他运输层协议。历史数据可以包括各类数据,例如文件及音视频会话等。

历史链路状态信息即通过目标协议链路传输历史数据时,目标协议链路对应的网络链路质量相关信息,例如,带宽信息、往返时延积信息(rtt)、拥塞窗口(cwnd)信息及发送窗口信息等与链路缓冲区(buffer)大小相关的信息。

其中,目标协议链路上每次传输数据的过程包括多次数据发送过程,例如目标协议链路从建立到断开视为进行一次数据传输过程,传输数据的过程中,将待发送的数据会打包为多个数据包,分多次进行发送,每次发送几个数据包。

获取通过目标协议链路传输历史数据时的历史链路状态信息,可以反映历史上目标协议链路的传输状态,对本次传输过程进行指导。

一种实施例中,目标协议链路为传输控制协议链路,该传输控制协议链路为客户端与服务器通过三次握手协议建立,即客户端在发送数据的准备阶段,服务器端和客户端之间进行三次握手交互,第一次握手:客户端发送第一连接报文(syn包(syn=j))到服务器,并进入连接发送状态(syn_send状态),等待服务器确认;第二次握手:服务器收到第一连接报文(syn包(syn=j)),通过确认响应(ack=j+1),确认客户端的第一连接报文,同时服务器发送第二连接报文,即syn+ack包(syn=k,ack=j+1),此时服务器进入连接发送状态(syn_recv状态);第三次握手:客户端收到服务器的syn+ack包,向服务器发送确认包ack(ack=k+1),此确认包ack(ack=k+1)发送完毕,客户端和服务器进入连接(established)状态,完成三次握手,连接建立后,客户端和服务器之间便可以开始进行数据传输。

一种实施例中,参阅图4,步骤s210,获取通过目标协议链路传输历史数据时的历史链路状态信息,包括:

步骤s310,获取预设哈希表,该预设哈希表用于保存协议链路对应的历史链路状态信息;

步骤s320,从预设哈希表中,查询目标协议链路对应的历史链路状态信息。

预设哈希表可以是链路管理模块(例如tcp模块)事先申请的哈希表,用于保存各协议链路的链路状态信息,以便按需获取,链路状态信息通过哈希码的形式保存在哈希表中同时可以保证数据安全性。

进而,在目标协议链路中准备开始传输当前数据时,便可以从哈希表中安全地获取目标协议链路对应的历史链路状态信息,在链路的缓冲区足够大时该哈希表中可以保存每次传输历史数据时的链路缓冲区大小信息;在链路的缓冲区较小时该哈希表中可以仅保存将历史链路缓冲区大小信息进行归一化处理,得到的历史链路状态信息。

可以理解,当目标协议链路中第一次传输数据时,获取到的该目标协议链路对应的历史链路状态信息为空,也即没有获取到该目标协议链路对应的历史链路状态信息。

一种实施例中,目标协议链路对应于目标数据发送方,预设哈希表中保存发送方标识及发送方标识所关联的历史链路状态信息;步骤s320,从预设哈希表中,查询目标协议链路对应的历史链路状态信息,包括:

获取目标数据发送方的发送方标识;

从所述预设哈希表中,查询目标数据发送方的发送方标识所关联的历史链路状态信息。

目标数据发送方可以是目标客户端,发送方标识即目标客户端的唯一标识(如客户端ip)。同一个数据接收方(例如服务器)可以对应于很多数据发送方,根据数据发送方的发送方标识可以准确确定该数据发送方与该数据接收方之间的协议链路。

进而,通过预设哈希表中保存发送方标识及发送方标识所关联的历史链路状态信息,对于同一个数据接收方,可以从所述预设哈希表中,通过查询目标数据发送方的发送方标识所关联的历史链路状态信息,准确获得目标协议链路对应的历史链路状态信息。

一种实施例中,目标协议链路对应于目标数据发送方及目标数据接收方,预设哈希表中保存发送方标识及接收方标识、及同时关联于该发送方标识及接收方标识的历史链路状态信息;从预设哈希表中,查询目标数据发送方的发送方标识所关联的历史链路状态信息,包括:

获取目标数据发送方的发送方标识及目标数据接收方的接收方标识;

从预设哈希表中,查询同时关联于目标数据发送方的发送方标识及目标数据接收方的接收方标识的历史链路状态信息。

这样可以进一步通过目标数据发送方的发送方标识及目标数据接收方的接收方标识,准确确定目标数据发送方及目标数据接收方之间的协议链路,对于多个数据接收方,可以从预设哈希表中,通过查询同时关联于目标数据发送方的发送方标识及目标数据接收方的接收方标识的历史链路状态信息,准确获得目标数据发送方及目标数据接收方之间的协议链路对应的历史链路状态信息。

一种实施例中,参阅图5,在步骤s210,获取通过目标协议链路传输历史数据时的历史链路状态信息之前,还包括:

步骤s410,获取通过目标协议链路每次传输历史数据时的链路缓冲区大小信息,得到历史链路缓冲区大小信息;

步骤s420,将历史链路缓冲区大小信息进行归一化处理,得到历史链路状态信息。

链路缓冲区大小信息可以包括协议链路中的带宽信息、往返时延积信息(rtt)、拥塞窗口(cwnd)信息及发送窗口信息等与链路缓冲区(buffer)大小相关的信息。其中链路缓冲区是在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,链路缓冲区(buffer)大小极大的影响协议链路中的数据传输性能,进而,这些链路缓冲区大小信息可以有效反应传输数据时的网络链路质量。

获取通过目标协议链路每次传输历史数据时的链路缓冲区大小信息,得到历史链路缓冲区大小信息,进行归一化处理,得到历史链路状态信息,进而历史链路状态信息综合该目标协议链路中历史上的所有的链路缓冲区大小信息,保证历史链路状态信息对于数据传输策略动态调整指导的可靠性。相较于仅采用单次链路缓冲区大小信息进行指导的实施方式,可以有效提升指导可靠性。

一种实施例中,参阅图6,历史链路缓冲区大小信息包括极限带宽时延积、拥塞带宽时延积及未确认数据量,该极限带宽时延积为每次传输历史数据的最后传输时刻点所对应带宽时延积,该拥塞带宽时延积为每次检测到传输发生拥塞的时刻点所对应带宽时延积,该未确认数据量为每次检测到传输发生拥塞的时刻点已发送但未收到确认的数据量;步骤s420,将历史链路缓冲区大小信息进行归一化处理,得到历史链路状态信息,包括:

步骤s510,将所有极限带宽时延积加权求和,得到历史带宽时延积;

步骤s520,将所有拥塞带宽时延积及未确认数据量中,最大的数值作为发送数据量安全阈值;

步骤s530,将历史带宽时延积及发送数据量安全阈值,作为历史链路状态信息。

带宽时延积(bdp)由链路带宽与最小往返延时(rtt)的相乘获得。即一倍带宽时延积为发送方完全利用链路带宽所需的最小数据包发送量。

该极限带宽时延积为每次传输历史数据的最后传输时刻点所对应带宽时延积,可以是每次传输历史数据的完成的时刻点所对应带宽时延积,即每次正常传输数据时的最大带宽时延积。每次传输历史数据的完成后,若还在进行数据加速处理(例如数据很少,传输完成,但是慢启动算法还在执行),则最后传输时刻点所对应带宽时延积可以是数据加速处理完成的时刻点所对应带宽时延积。

该拥塞带宽时延积为每次检测到传输发生拥塞的时刻点所对应带宽时延积,例如目标协议链路中某次传输历史数据过程中,检测到发送2次拥塞,则在2次发生拥塞的时刻点均获取带宽时延积。其中,可以在发送方发送出去数据后,预定时间段内没有接受到确认时,认为协议链路中发生拥塞。

该未确认数据量为每次检测到传输发生拥塞的时刻点已发送但未收到确认的数据量,例如,目标协议链路中某次传输历史数据过程中,某个发生拥塞的时刻点发送出去10个数据包,但是仅接收到2个数据包的确认,其他8个即已发送但未收到确认的数据量。

将所有极限带宽时延积加权求和,得到的历史带宽时延积,可以基于历史带宽时延积有效综合该目标协议链路上正常传输数据时的最大带宽时延积。将所有拥塞带宽时延积及未确认数据量中,最大的数值作为发送数据量安全阈值,可以基于发送数据量安全阈值有效反映该目标协议链路上最大可承受的数据发送量。

进而,将历史带宽时延积及发送数据量安全阈值,作为历史链路状态信息,可以基于历史链路状态信息对当前数据的传输进行正常传输时的最大带宽时延积及最大可承受的数据发送量的指导。

一种实施例中,步骤s510,将所有极限带宽时延积加权求和,得到历史带宽时延积,包括:

获取前次极限带宽时延积,该前次极限带宽时延积为传输前次历史数据时对应的极限带宽时延积,该前次历史数据为当前数据之前一次所传输的数据;

获取前续历史带宽时延积,该前续历史带宽时延积为传输再前历史数据时对应的极限带宽时延积按照预定加权系数加权求和得到的,该再前历史数据为前次历史数据之前所传输的数据;

将前续历史带宽时延积与前次极限带宽时延积,按照预定加权系数加权求和,得到历史带宽时延积。

前次历史数据为当前数据之前一次所传输的数据,例如,当前数据为目标协议链路中第6次传输的数据(即例如客户端与服务器第6次建立该目标协议链路来传输当前数据),则前次历史数据为目标协议链路中第5次传输的数据(即例如客户端与服务器第5次建立该目标协议链路来传输前次历史数据)。

再前历史数据为前次历史数据之前所传输的数据,即例如目标协议链路中第1至第4次传输的数据(即例如客户端与服务器第1至第4次建立该目标协议链路来传输再前历史数据)。

该前续历史带宽时延积为传输再前历史数据时对应的极限带宽时延积按照预定加权系数加权求和得到的,即例如,第1次的极限带宽时延积与第2次的极限带宽时延积按照预定加权系数加权求和得到第二历史带宽时延积(作为第3次传输数据的指导),第二历史带宽时延积与第3次的极限带宽时延积按照预定加权系数加权求和得到第三历史带宽时延积(作为第4次传输数据的指导),第三历史带宽时延积与第4次的极限带宽时延积按照预定加权系数加权求和得到第四历史带宽时延积(作为第5次传输数据的指导),可以理解,第1次的极限带宽时延积直接作为第一历史带宽时延积(作为第2次传输数据的指导)。

进而,将前续历史带宽时延积与前次极限带宽时延积,按照预定加权系数加权求和,得到历史带宽时延积(作为本次传输当前数据的指导),申请人发现,这样可以可靠地综合历史上的极限带宽时延积进行传输指导。

一种实施例中,可以根据公式:bdpwma2=bdpwma1/m+bdpf/n,将前续历史带宽时延积与前次极限带宽时延积,按照预定加权系数加权求和,得到历史带宽时延积,其中,bdpwma2为历史带宽时延积,bdpwma1为前续历史带宽时延积,bdpf为前次极限带宽时延积,m及n为预定加权系数,m+n=1。

一种实施例中,预定加权系数包括第一加权系数及第二加权系数步骤,将前续历史带宽时延积与前次极限带宽时延积,按照预定加权系数加权求和,得到历史带宽时延积,包括:将前续历史带宽时延积与第一加权系数相乘,得到第一加权项;将前次极限带宽时延积与第二加权系数相乘,得到第二加权项;将第一加权项及第二加权项相加,得到历史带宽时延积。

本示例中,可以根据公式:bdpwma21=bdpwma1/2+bdpf/2,将前续历史带宽时延积与前次极限带宽时延积,按照第一加权系数为1/2,第二加权系数为1/2,加权求和,得到第一历史带宽时延积,其中,bdpwma21为第一历史带宽时延积,bdpwma1为前续历史带宽时延积,bdpf为前次极限带宽时延积,m=1/2及n=1/2为预定加权系数,m+n=1。根据公式:bdpwma22=bdpwma1/8+7*bdpf/8,将前续历史带宽时延积与前次极限带宽时延积,按照第一加权系数为1/8,第二加权系数为7/8,加权求和,得到第二历史带宽时延积,其中,bdpwma22为第二历史带宽时延积,bdpwma1为前续历史带宽时延积,bdpf为前次极限带宽时延积,m=1/8及n=7/8为预定加权系数,m+n=1。申请人发现基于这两种预定加权系数中的一种,可以进一步可靠保证历史带宽时延积的指导可靠性。

在步骤s220中,在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息。

本示例的实施方式中,当前数据为目标协议链路上本次所传输的数据。当前链路状态信息即通过目标协议链路传输当前数据时,目标协议链路对应的网络链路质量相关信息,例如,当前的带宽信息、往返时延积信息(rtt)、拥塞窗口(cwnd)信息及发送窗口信息等与链路缓冲区(buffer)大小相关的信息,这些链路缓冲区(buffer)大小相关的信息可以有效反应当前的网络链路质量情况。

在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息,即在目标协议链路上准备开始传输数据的时刻(可以是目标协议链路建立的时刻点)到目标协议链路上传输数据传输结束的时刻(可以是目标协议链路断开的时刻点),持续获取目标协议链路中的当前链路状态信息。

在步骤s230中,根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略。

本示例的实施方式中,数据加速传输策略即控制在协议链路上传输数据量的策略。数据加速传输策略可以包括:基于慢启动算法的加速传输策略(即控制拥塞窗口(单次数据发送量,即发送方一次发送的数据量)大小呈指数增长的策略)、基于链路容量的拥塞控制算法的加速传输策略(即通过周期性带宽探测,实时测量带宽和时延,认为链路上数据总量大于带宽时延乘积时出现拥塞,进而控制拥塞窗口大小的策略,链路容量的拥塞控制算法如bbr算法)、基于丢包的拥塞控制算法的加速传输策略(即将丢包视为出现拥塞,采取缓慢带宽探测的方法,逐渐增大拥塞窗口,当出现丢包时,将拥塞窗口减小,丢包的拥塞控制算法如reno、cubic等算法)以及基于学习的拥塞控制算法的加速传输策略(即基于训练数据(包括历史链路状态信息及当前链路状态信息样本)训练的机器学习模型,实现的基于机器学习模型,根据历史链路状态信息及当前链路状态信息,控制拥塞窗口大小的策略)等策略。

在目标协议协议链路上传输当前数据过程中,比较历史链路状态信息及在传输当前数据过程中获取的当前链路状态信息,可以持续确定目标协议协议链路上传输当前数据过程中链路质量信息,进而可以根据链路质量信息选择适应当前数据传输的数据加速传输策略,实现动态调整目标协议链路对应的数据加速传输策略。

可以在目标协议协议链路上传输当前数据过程中,根据实时确定的链路质量信息,进行多个预设的数据加速传输策略的切换,有效利用不同数据加速传输策略的优势,保证当前使用的数据加速传输策略的可靠性。

一种实施例中,参阅图7,历史链路状态信息包括历史链路缓冲区大小信息;当前链路状态信息包括当前链路缓冲区大小信息;步骤s230,根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略,包括:

步骤s610,实时比较历史链路缓冲区大小信息及当前链路缓冲区大小信息,得到比较结果;

步骤s620,根据比较结果,实时调整目标协议链路对应的数据加速传输策略。

实时比较历史链路缓冲区大小信息及当前链路缓冲区大小信息,即在目标协议链路中传输当前数据的过程中,将实时采集的当前链路缓冲区大小信息与历史链路缓冲区大小信息进行不断比较,得到差别信息,该差别信息可以反映当前传输过程的网络链路质量,进而可以根据比较结果,实时调整目标协议链路对应的数据加速传输策略。

一种实施例中,历史链路缓冲区大小信息包括历史带宽时延积及发送数据量安全阈值,发送数据量安全阈值大于等于历史带宽时延积;当前链路缓冲区大小信息包括当前带宽时延积;步骤s420,根据比较结果,实时调整目标协议链路对应的数据加速传输策略,包括:

当比较结果为当前带宽时延积小于历史带宽时延积时,将目标协议链路对应的数据加速传输策略调整为第一数据加速传输策略;

当比较结果为当前带宽时延积大于历史带宽时延积,且当前带宽时延积小于等于发送数据量安全阈值时,将目标协议链路对应的数据加速传输策略调整为第二数据加速传输策略;

当比较结果为当前带宽时延积大于发送数据量安全阈值时,将目标协议链路对应的数据加速传输策略调整为第三数据加速传输策略。

当前带宽时延积小于历史带宽时延积时,说明当前传输阶段(该阶段通常为刚开始数据传输的阶段)的数据发送量远未达到链路的极限发送量。当前带宽时延积大于历史带宽时延积,且当前带宽时延积小于等于发送数据量安全阈值时,说明当前传输阶段的数据发送量可能超过链路的极限发送量,但是出现拥塞的可能性较低。

进而,对于上述三种链路传输状况,通过第一数据加速传输策略、第二数据加速传输策略及第三数据加速传输策略的对应调整,可以分别基于对应每种链路传输状况的数据加速传输策略及时可靠地控制数据加速传输。

一种实施例中,第一数据传输加速策略包括慢启动算法,第二数据传输加速策略包括基于链路容量的拥塞控制算法,第三数据传输加速策略包括基于丢包的拥塞控制算法。

慢启动算法即控制拥塞窗口(即发送方一次发送的数据量)大小呈指数增长的策略;基于链路容量的拥塞控制算法即实时测量网络带宽和时延,认为链路上数据总量大于带宽时延乘积时出现拥塞,进而控制拥塞窗口大小的策略,如bbr算法;基于丢包的拥塞控制算法即将丢包视为出现拥塞,采取缓慢带宽探测的方法,逐渐增大拥塞窗口,当出现丢包时,将拥塞窗口减小,如reno及cubic等算法。申请人发现,这样可以有效应对各链路传输状况,安全高效地进行数据传输。

本示例的实施方式中,第一数据传输加速策略为慢启动算法,第二数据传输加速策略为bbr算法,所述第三数据传输加速策略为cubic算法。申请人发现这样可以最为安全高效地进行数据传输。

一种实施例中,步骤s230,根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略,包括:

当历史链路状态信息为空时,调整目标协议链路对应的数据加速传输策略为预设数据加速传输策略。

当历史链路状态信息为空时,说明该目标协议链路为第一次传输数据或者第一次建立该目标协议链路。此时,调整目标协议链路对应的数据加速传输策略为预设数据加速传输策略,即按照预设数据加速传输策略控制该目标协议链路传输当前数据。预设数据加速传输策略可以为基于链路容量的拥塞控制算法或者基于丢包的拥塞控制算法。

一种实施例中,当历史链路状态信息为空时,调整目标协议链路对应的数据加速传输策略为bbr算法。

在步骤s240中,根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输。

本示例的实施方式中,通过目标协议链路上传输当前数据的过程中,将数据传输策略动态切换为调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,例如,在第一时间段使用第一数据加速传输策略控制目标协议链路加速传输当前数据,在第二时间段切换为第二数据加速传输策略控制目标协议链路加速传输当前数据,直至完成当前数据的传输,可以有效保证目标协议链路上传输当前数据的过程中各种网络状况得以可靠应对。

一种实施例中,步骤s240,根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输,包括:

当调整后的数据加速传输策略为第一数据传输加速策略时,控制目标协议链路上按照预定数据发送速率提升单次数据发送量,发送当前数据,直至目标协议链路上的单次数据发送量达到历史带宽时延积;

当调整后的数据加速传输策略为第二数据传输加速策略时,通过周期性带宽探测调整目标协议链路上的单次数据发送量,发送当前数据,直至目标协议链路上的当前带宽时延积达到发送数据量安全阈值;

当调整后的数据加速传输策略为第三数据传输加速策略时,控制目标协议链路上按照预定规则增加单次数据发送量,并且在目标协议链路上出现丢包时通过调整增加后的单次数据发送量,发送当前数据,直至完成当前数据的传输。

本示例的实施方式中,第一数据传输加速策略可以是基于慢启动算法的加速传输策略,可以控制拥塞窗口(单次数据发送量,即发送方一次发送的数据量;当前数据在发送时会拆分成很多数据包进行多次发送,单次数据发送量即每次发送时的数据包数量)大小呈指数增长,快速发送当前数据,直至目标协议链路上的单次数据发送量达到历史带宽时延积。

第二数据传输加速策略可以是基于链路容量的拥塞控制算法的加速传输策略,可以通过周期性带宽探测,实时测量目标协议链路上的带宽和时延,将测量的带宽和时延的乘积作为单次数据发送量,并且认为目标协议链路上的数据总量大于带宽和时延的乘积时出现拥塞,进而调整单次数据发送量大小,链路容量的拥塞控制算法如bbr算法。

第三数据传输加速策略可以是基于丢包的拥塞控制算法的加速传输策略,可以将丢包视为出现拥塞,采取缓慢带宽探测的方法,逐渐增大单次数据发送量,当出现丢包时,将拥塞窗口减小,丢包的拥塞控制算法如reno、cubic等算法。

以这种方式可以在当前数据的传输过程中有效应对数据传输全流程中网络环境的变化,有效提升目标协议链路中当前数据的传输性能。

一种实施例中,在步骤s240,根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输之后,还包括:

在目标协议链路中传输当前数据的过程中,获取本次链路缓冲区大小信息;

将本次链路缓冲区大小信息与历史链路缓冲区大小信息进行归一化处理,得到更新后历史链路状态信息;

利用更新后历史链路状态信息,更新预设哈希表中目标协议链路对应的历史链路状态信息。

这样利用更新后历史链路状态信息,更新预设哈希表中目标协议链路对应的历史链路状态信息,可以在下次在该目标协议链路上传输数据时,获取更新后历史链路状态信息进行传输指导。其中,归一化处理的实施方式如前述实施例所述。

其中,本次链路缓冲区大小信息可以包括包括当前极限带宽时延积、当前拥塞带宽时延积及当前未确认数据量;该当前极限带宽时延积为传输当前数据的过程中的最后传输时刻点所对应带宽时延积;该当前拥塞带宽时延积为传输当前数据的过程中,检测到传输发生拥塞的时刻点所对应带宽时延积;该当前未确认数据量为传输当前数据的过程中,检测到传输发生拥塞的时刻点已发送但未收到确认的数据量。

带宽时延积(bdp)由链路带宽与最小往返延时(rtt)的相乘获得。即一倍带宽时延积为发送方完全利用链路带宽所需的最小数据包发送量。

该当前极限带宽时延积为传输当前数据的过程中的最后传输时刻点所对应带宽时延积,可以是传输当前数据完成的时刻点所对应带宽时延积,即正常传输当前数据时的最大带宽时延积。传输当前数据完成后,若还在进行数据加速处理(例如数据很少,传输完成,但是慢启动算法还在执行),则最后传输时刻点所对应带宽时延积可以是数据加速处理完成的时刻点所对应带宽时延积。

该当前拥塞带宽时延积为传输当前数据的过程中,检测到传输发生拥塞的时刻点所对应带宽时延积,例如目标协议链路中传输当前数据过程中,检测到发送2次拥塞,则在2次发生拥塞的时刻点均获取带宽时延积。其中,可以在发送方发送出去数据后,预定时间段内没有接受到确认时,认为协议链路中发生拥塞。

该当前未确认数据量为传输当前数据的过程中,检测到传输发生拥塞的时刻点已发送但未收到确认的数据量,例如,目标协议链路中传输当前数据过程中,某个发生拥塞的时刻点发送出去10个数据包,但是仅接收到2个数据包的确认,其他8个即已发送但未收到确认的数据量。

历史链路缓冲区大小信息可以包括历史带宽时延积及发送数据量安全阈值。

一种实施例中,将本次链路缓冲区大小信息与历史链路缓冲区大小信息进行归一化处理,得到更新后历史链路状态信息,包括:

将当前极限带宽时延积与历史带宽时延积加权求和,得到更新后历史带宽时延积;将所有当前拥塞带宽时延积、所有当前未确认数据量及发送数据量安全阈值中,最大的数值作为更新后发送数据量安全阈值;将更新后历史带宽时延积及更新后发送数据量安全阈值,作为更新后历史链路状态信息。

一种实施例中,将当前极限带宽时延积与历史带宽时延积加权求和,得到更新后历史带宽时延积,包括:将当前极限带宽时延积与历史带宽时延积,按照预定加权系数加权求和,得到更新后历史带宽时延积。

一种实施例中,预定加权系数包括第一加权系数及第二加权系数;步骤,将当前极限带宽时延积与历史带宽时延积,按照预定加权系数加权求和,得到更新后历史带宽时延积,包括:将历史带宽时延积与第一加权系数相乘,得到第一加权项;将当前极限带宽时延积与所述第二加权系数相乘,得到第二加权项;将第一加权项及第二加权项相加,得到更新后历史带宽时延积。

一示例中,该第一加权系数为二分之一,该第二加权系数为二分之一,可以根据公式:bdpwma31=bdpwma2/2+bdpnow/2,将当前极限带宽时延积与历史带宽时延积,按照第一加权系数及第二加权系数进行加权求和,得到第一更新后历史带宽时延积,其中,bdpwma31为第一更新后历史带宽时延积,bdpwma2为历史带宽时延积,bdpnow为当前极限带宽时延积,m=1/2及n=1/2为预定加权系数,m+n=1。

一示例中,该第一加权系数为八分之一,该第二加权系数为八分之七,根据公式:bdpwma32=bdpwma2/8+7*bdpnow/8,将当前极限带宽时延积与历史带宽时延积,按照第一加权系数及第二加权系数进行加权求和,得到第二更新后历史带宽时延积,其中,bdpwma32为第二更新后历史带宽时延积,bdpwma2为历史带宽时延积,bdpnow为当前极限带宽时延积,m=1/8及n=7/8为预定加权系数,m+n=1。

一种实施例中,当历史链路状态信息为空时,调整目标协议链路对应的数据加速传输策略为预设数据加速传输策略;在步骤s240,根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输之后,还包括:在目标协议链路中传输当前数据的过程中,获取本次链路缓冲区大小信息;将本次链路缓冲区大小信息作为历史链路状态信息,保存至预设哈希表中。

一种实施例中,将本次链路缓冲区大小信息作为历史链路状态信息包括:根据公式:bdpwma31=bdpnow,将当前极限带宽时延积bdpnow作为更新后历史带宽时延积bdpwma31。根据公式:x*2=max{bdpnow,xi}及xi=max{inflighti,bdpi},将当前极限带宽时延积bdpnow及所有当前拥塞带宽时延积bdpi、所有当前未确认数据量inflighti中,最大的数值作为更新后发送数据量安全阈值x*2

以这种方式,基于步骤s210-步骤s240,进而,在目标协议链路上传输当前数据的过程中,可以动态调整数据加速传输策略,控制目标协议链路加速传输当前数据,且数据加速传输策略的动态调整是基于在历史链路状态信息指导,可以有效应对协议链路中的各种链路状况,实现快速且安全的进行数据传输,有效提升目标协议链路的传输质量,提升协议链路中的数据传输性能。

根据上述实施例所描述的方法,以下将举例作进一步详细说明。

图8示出了应用本申请的实施例的一种场景下数据传输的流程图。该场景下目标协议链路为传输控制协议(tcp,transmissioncontrolprotocol)链路。其中,数据传输方法基于服务器端(即数据接收方)实现,对中间路由以及客户端没有要求,服务器端在tcp模块生效的时候,动态申请一个哈希表(即预设哈希表)用来储存每一个客户端ip(即数据发送方的发送方标识)对应的历史链路状态信息。

该场景下的数据传输可以包括如图7所示的步骤s710至步骤s730;步骤s710中,查询历史链路状态信息;步骤s720中,传输当前数据;步骤s730中,更新哈希表。

步骤s710中,服务器端会“获取通过该传输控制协议链路传输历史数据时的历史链路状态信息”,该步骤具体始于客户端与服务器的tcp三次握手协议完成,建立传输控制协议链路。此时,服务器通过客户端ip映射从哈希表中查询客户端ip对应的条目,检查该条目下是否存在客户端ip对应的历史链路状态信息(即获取预设哈希表,该预设哈希表用于保存协议链路对应的历史链路状态信息;从预设哈希表中,查询该传输控制协议链路对应的历史链路状态信息)。

步骤s720中,服务器端会“在该传输控制协议链路上传输当前数据的过程中,获取该传输控制协议链路中的当前链路状态信息;根据历史链路状态信息及当前链路状态信息,调整该传输控制协议链路对应的数据加速传输策略;根据调整后的数据加速传输策略,控制该传输控制协议链路加速传输当前数据,直至完成当前数据的传输”。

具体地,服务器端如果查询到客户端ip对应的历史链路状态信息,则获取到该传输控制协议链路对应的历史链路状态信息(即命中),进而,启动本技术。如果没有查询到客户端ip对应的历史链路状态信息,则获取到的该传输控制协议链路对应的历史链路状态信息为空(即没有命中),进而回退bbr算法。

启动本技术,即实时比较历史链路缓冲区大小信息及当前链路缓冲区大小信息,得到比较结果;根据比较结果,实时调整目标协议链路对应的数据加速传输策略。其中,历史链路缓冲区大小信息包括历史带宽时延积bdpwma2及发送数据量安全阈值x*,发送数据量安全阈值x*大于等于历史带宽时延积bdpwma2;当前链路缓冲区大小信息包括当前带宽时延积bdpnow。

根据比较结果,实时调整该传输控制协议链路对应的数据加速传输策略,具体包括:从数据传输开始,当比较结果为当前带宽时延积bdpnow小于历史带宽时延积bdpwma2时,将该传输控制协议链路对应的数据加速传输策略调整为第一数据加速传输策略;当比较结果为当前带宽时延积bdpnow大于历史带宽时延积bdpwma2,且当前带宽时延积bdpnow小于等于发送数据量安全阈值x*时,将该传输控制协议链路对应的数据加速传输策略调整为第二数据加速传输策略;最后,当比较结果为当前带宽时延积bdpnow大于发送数据量安全阈值x*时,将该传输控制协议链路对应的数据加速传输策略调整为第三数据加速传输策略。

其中,第一数据传输加速策略为基于慢启动算法的加速传输策略,第二数据传输加速策略为基于bbr算法的加速传输策略,所述第三数据传输加速策略为基于cubic算法的加速传输策略。申请人发现这样可以最为安全高效地进行数据传输。

在数据开始发送的阶段,一倍带宽时延积(bdp)为理想慢启动阈值,如果在开始阶段便启动基于bbr算法的加速传输策略,在bbr算法自身的bbr慢启动阶段(startup)末期,发送数据量接近一倍带宽时延积(bdp)的三倍,因为bbr算法在检测到带宽不随发送速率(pacingrate)增加而增加的时候才会退出bbr慢启动,而bbr算法的带宽探测存在滞后性的问题(约为1个往返延时(rtt))。而启动本技术后,在数据传输初期,通过调整数据加速传输策略调整为基于慢启动算法的加速传输策略,可以接管bbr自身的bbr慢启动阶段,可以通过慢启动快速提升发送数据量至平滑带宽时延积(即历史带宽时延积bdpwma2)。

之后,本技术会在当前带宽时延积bdpnow大于历史带宽时延积bdpwma2时,立即退出慢启动,并启动基于bbr算法的加速传输策略进行周期性带宽探测(可以以每八个往返延时为一个预定周期提升25%发送速率,进行带宽探测)控制,以进行数据传输的控制。在使用bbr算法进行周期性带宽探测的时候,如果当前带宽时延积bdpnow超过发送数据量安全阈值x*时,本技术会启动基于cubic算法的加速传输策略进行进一步的带宽探测控制,以继续进行数据传输的控制。这样可以有效避免bbr算法在浅缓冲区网络环境下存在高丢包率(即探测过程中发送数据量过大导致传输拥塞的概率高),而bbr算法对丢包无感的问题,此时使用cubic算法可以在避免过度探测导致丢包的同时兼顾有效带宽探测。

回退bbr算法,即当历史链路状态信息为空时,调整该传输控制协议链路对应的数据加速传输策略为预设数据加速传输策略,其中预设数据加速传输策略为基于bbr算法的加速传输策略。

步骤s730中,对于启动本技术的情况,在该传输控制协议链路中传输当前数据的过程中,获取本次链路缓冲区大小信息;将本次链路缓冲区大小信息与历史链路缓冲区大小信息进行归一化处理,得到更新后历史链路状态信息;利用更新后历史链路状态信息,更新预设哈希表中该传输控制协议链路对应的历史链路状态信息。对于回退bbr算法的情况,在该传输控制协议链路中传输当前数据的过程中,获取本次链路缓冲区大小信息;将本次链路缓冲区大小信息作为历史链路状态信息,保存至预设哈希表中。

具体地,根据客户端ip地址来更新哈希表中对应条目的历史链路状态信息(包括更新后历史带宽时延积和更新后发送数据包安全阈值)。

其中,对于启动本技术的情况,根据公式:bdpwma31=bdpwma2/2+bdpnow/2,将当前极限带宽时延积bdpnow与历史带宽时延积bdpwma2,按照第一加权系数加权求和,得到更新后历史带宽时延积bdpwma31。

根据公式:x*2=max{x*1,xi}及xi=max{inflighti,bdpi},将所有当前拥塞带宽时延积bdpi、所有当前未确认数据量inflighti及发送数据量安全阈值x*1中,最大的数值作为更新后发送数据量安全阈值x*2

对于回退bbr算法的情况,根据公式:bdpwma31=bdpnow,将当前极限带宽时延积bdpnow作为更新后历史带宽时延积bdpwma31。

根据公式:x*2=max{bdpnow,xi}及xi=max{inflighti,bdpi},将当前极限带宽时延积bdpnow及所有当前拥塞带宽时延积bdpi、所有当前未确认数据量inflighti中,最大的数值作为更新后发送数据量安全阈值x*2

其中,当前极限带宽时延积bdpnow为传输当前数据的最后传输时刻点所对应带宽时延积,最后传输时刻点的确定包括:确定数据传输是否完成,如果确定数据传输完成,且慢启动已经退出,则最后传输时刻点为数据传输完成的时刻点;如果确定数据传输完成,且慢启动未退出(即数据加速处理完成),则最后传输时刻点为慢启动退出的时刻点。

进而,基于本申请的方案,通过对比历史链路缓冲区大小信息与当前链路缓冲区大小信息的差异,动态调整tcp传输过程中数据加速传输策略(包括bbr算法和cubic算法)的选择,在兼顾带宽探测和友好性基础上避免了tcp传输在浅缓冲区中过度丢包,提高了tcp传输在深缓冲区中的抢占性。在该传输控制协议链路上传输当前数据的过程中,可以动态调整数据加速传输策略,控制该传输控制协议链路加速传输当前数据,且数据加速传输策略的动态调整是基于在历史链路状态信息指导,可以有效应对协议链路中的各种链路状况,实现快速且安全的进行数据传输,有效提升该传输控制协议链路的传输质量,提升协议链路中的数据传输性能。

进一步的,将本申请的方案,应用于现有tcp协议栈中并且在真实网络中上做测试。协议链路的命中率(获取到协议链路对应的历史链路信息的概率)随部署时间增长而增长,第一天命中率可达70%,第二天接近80%,之后趋近于稳定,在第七天接近90%。这表明,相当一部分客户端存在频繁访问同一服务器的现象。相比较原本tcp框架下每一次数据传输都需要独立进行链路探测,而基于本申请的方案加速的当前数据可以在传输历史数据的历史链路信息指导下快速且安全的进行数据传输。

为便于更好的实施本申请实施例提供的数据传输方法,本申请实施例还提供一种基于上述数据传输方法的数据传输装置。其中名词的含义与上述数据传输方法中相同,具体实现细节可以参考方法实施例中的说明。图9示出了根据本申请的一个实施例的数据传输装置的框图。

如图9所示,数据传输装置800中可以包括历史获取模块810、当前获取模块820、动态调整模块830及控制模块840。

历史获取模块810可以用于获取通过目标协议链路传输历史数据时的历史链路状态信息;当前获取模块820可以用于在所述目标协议链路上传输当前数据的过程中,获取所述目标协议链路中的当前链路状态信息;动态调整模块830可以用于根据所述历史链路状态信息及所述当前链路状态信息,调整所述目标协议链路对应的数据加速传输策略;控制模块840可以用于根据调整后的数据加速传输策略,控制所述目标协议链路加速传输所述当前数据,直至完成所述当前数据的传输。

在本申请的一些实施例中,所述历史链路状态信息包括历史链路缓冲区大小信息;所述当前链路状态信息包括当前链路缓冲区大小信息;所述动态调整模块830包括:实时比较单元,用于实时比较所述历史链路缓冲区大小信息及所述当前链路缓冲区大小信息,得到比较结果;实时调整单元,用于根据所述比较结果,实时调整所述目标协议链路对应的数据加速传输策略。

在本申请的一些实施例中,所述历史链路缓冲区大小信息包括历史带宽时延积及发送数据量安全阈值,所述发送数据量安全阈值大于等于所述历史带宽时延积;所述当前链路缓冲区大小信息包括当前带宽时延积;所述实时调整单元,包括:第一调整子单元,用于当所述比较结果为所述当前带宽时延积小于所述历史带宽时延积时,将所述目标协议链路对应的数据加速传输策略调整为第一数据加速传输策略;第二调整子单元,用于当所述比较结果为所述当前带宽时延积大于所述历史带宽时延积,且所述当前带宽时延积小于等于所述发送数据量安全阈值时,将所述目标协议链路对应的数据加速传输策略调整为第二数据加速传输策略;第三调整子单元,用于当所述比较结果为所述当前带宽时延积大于所述发送数据量安全阈值时,将所述目标协议链路对应的数据加速传输策略调整为第三数据加速传输策略。

在本申请的一些实施例中,所述控制模块840包括:第一控制单元,用于当调整后的数据加速传输策略为所述第一数据传输加速策略时,控制所述目标协议链路上按照预定数据发送速率提升单次数据发送量,发送所述当前数据,直至所述目标协议链路上的单次数据发送量达到所述历史带宽时延积;第二控制单元,用于当调整后的数据加速传输策略为所述第二数据传输加速策略时,通过周期性带宽探测调整所述目标协议链路上的单次数据发送量,发送所述当前数据,直至所述目标协议链路上的当前带宽时延积达到所述发送数据量安全阈值;第三控制单元,用于当调整后的数据加速传输策略为所述第三数据传输加速策略时,控制所述目标协议链路上按照预定规则增加单次数据发送量,并且在所述目标协议链路上出现丢包时通过调整增加后的单次数据发送量,发送所述当前数据,直至完成所述当前数据的传输。

在本申请的一些实施例中,所述动态调整模块830包括:预定调整单元,用于当所述历史链路状态信息为空时,调整所述目标协议链路对应的数据加速传输策略为预设数据加速传输策略。

在本申请的一些实施例中,所述装置还包括:采集模块,用于获取通过所述目标协议链路每次传输历史数据时的链路缓冲区大小信息,得到历史链路缓冲区大小信息;归一化模块,用于将所述历史链路缓冲区大小信息进行归一化处理,得到所述历史链路状态信息。

在本申请的一些实施例中,所述历史链路缓冲区大小信息包括极限带宽时延积、拥塞带宽时延积及未确认数据量,所述极限带宽时延积为每次传输历史数据的最后传输时刻点所对应带宽时延积,所述拥塞带宽时延积为每次检测到传输发生拥塞的时刻点所对应带宽时延积,所述未确认数据量为每次检测到传输发生拥塞的时刻点已发送但未收到确认的数据量;所述归一化模块,包括:加权处理单元,用于将所有所述极限带宽时延积加权求和,得到历史带宽时延积;最大确认单元,用于将所有所述拥塞带宽时延积及未确认数据量中,最大的数值作为发送数据量安全阈值;信息确定单元,用于将所述历史带宽时延积及所述发送数据量安全阈值,作为所述历史链路状态信息。

在本申请的一些实施例中,所述加权处理单元,包括:前次获取子单元,用于获取前次极限带宽时延积,所述前次极限带宽时延积为传输前次历史数据时对应的极限带宽时延积,所述前次历史数据为所述当前数据之前一次所传输的数据;前续获取子单元,用于获取前续历史带宽时延积,所述前续历史带宽时延积为传输再前历史数据时对应的极限带宽时延积按照预定加权系数加权求和得到的,所述再前历史数据为所述前次历史数据之前所传输的数据;加权求和子单元,用于将所述前续历史带宽时延积与所述前次极限带宽时延积,按照所述预定加权系数加权求和,得到所述历史带宽时延积。

在本申请的一些实施例中,所述预定加权系数包括第一加权系数及第二加权系数;所述加权求和子单元,用于将所述前续历史带宽时延积与所述第一加权系数相乘,得到第一加权项;将所述前次极限带宽时延积与所述第二加权系数相乘,得到第二加权项;将所述第一加权项及所述第二加权项相加,得到所述历史带宽时延积。

在本申请的一些实施例中,所述历史获取模块810包括:哈希表获取单元,用于获取预设哈希表,所述预设哈希表用于保存协议链路对应的历史链路状态信息;查询单元,用于从所述预设哈希表中,查询所述目标协议链路对应的历史链路状态信息。

在本申请的一些实施例中,所述目标协议链路对应于目标数据发送方,所述预设哈希表中保存发送方标识及所述发送方标识所关联的历史链路状态信息;所述查询单元,包括:标识获取子单元,用于获取所述目标数据发送方的发送方标识;查询子单元,用于从所述预设哈希表中,查询所述目标数据发送方的发送方标识所关联的历史链路状态信息。

在本申请的一些实施例中,所述装置还包括更新模块,所述更新模块包括:本次采集单元,用于在所述目标协议链路中传输所述当前数据的过程中,获取本次链路缓冲区大小信息;本次归一化单元,用于将所述本次链路缓冲区大小信息与所述历史链路缓冲区大小信息进行归一化处理,得到更新后历史链路状态信息;更新单元,用于利用所述更新后历史链路状态信息,更新预设哈希表中所述目标协议链路对应的历史链路状态信息。

以这种方式,基于数据传输装置800,通过获取通过目标协议链路传输历史数据时的历史链路状态信息;在目标协议链路上传输当前数据的过程中,获取目标协议链路中的当前链路状态信息;根据历史链路状态信息及当前链路状态信息,调整目标协议链路对应的数据加速传输策略;根据调整后的数据加速传输策略,控制目标协议链路加速传输当前数据,直至完成当前数据的传输。

进而,进而,在目标协议链路上传输当前数据的过程中,可以动态调整数据加速传输策略,控制目标协议链路加速传输当前数据,且数据加速传输策略的动态调整是基于在历史链路状态信息指导,可以有效应对协议链路中的各种链路状况,实现快速且安全的进行数据传输,有效提升目标协议链路的传输质量,提升协议链路中的数据传输性能。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图10所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:

该电子设备可以包括一个或者一个以上处理核心的处理器901、一个或一个以上计算机可读存储介质的存储器902、电源903和输入单元904等部件。本领域技术人员可以理解,图10中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器901是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器902内的软件程序和/或模块,以及调用存储在存储器902内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器901可包括一个或多个处理核心;优选的,处理器901可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器901中。

存储器902可用于存储软件程序以及模块,处理器901通过运行存储在存储器902的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器902可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器902还可以包括存储器控制器,以提供处理器901对存储器902的访问。

电子设备还包括给各个部件供电的电源903,优选的,电源903可以通过电源管理系统与处理器901逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源903还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该电子设备还可包括输入单元904,该输入单元904可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器901会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器902中,并由处理器901来运行存储在存储器902中的应用程序,从而实现各种功能,如下:

获取通过目标协议链路传输历史数据时的历史链路状态信息;

在所述目标协议链路上传输当前数据的过程中,获取所述目标协议链路中的当前链路状态信息;

根据所述历史链路状态信息及所述当前链路状态信息,调整所述目标协议链路对应的数据加速传输策略;

根据调整后的数据加速传输策略,控制所述目标协议链路加速传输所述当前数据,直至完成所述当前数据的传输。

一种实施例中,所述历史链路状态信息包括历史链路缓冲区大小信息;所述当前链路状态信息包括当前链路缓冲区大小信息;所述根据所述历史链路状态信息及所述当前链路状态信息,调整所述目标协议链路对应的数据加速传输策略,包括:

实时比较所述历史链路缓冲区大小信息及所述当前链路缓冲区大小信息,得到比较结果;

根据所述比较结果,实时调整所述目标协议链路对应的数据加速传输策略。

一种实施例中,所述历史链路缓冲区大小信息包括历史带宽时延积及发送数据量安全阈值,所述发送数据量安全阈值大于等于所述历史带宽时延积;所述当前链路缓冲区大小信息包括当前带宽时延积;所述根据所述比较结果,实时调整所述目标协议链路对应的数据加速传输策略,包括:

当所述比较结果为所述当前带宽时延积小于所述历史带宽时延积时,将所述目标协议链路对应的数据加速传输策略调整为第一数据加速传输策略;

当所述比较结果为所述当前带宽时延积大于所述历史带宽时延积,且所述当前带宽时延积小于等于所述发送数据量安全阈值时,将所述目标协议链路对应的数据加速传输策略调整为第二数据加速传输策略;

当所述比较结果为所述当前带宽时延积大于所述发送数据量安全阈值时,将所述目标协议链路对应的数据加速传输策略调整为第三数据加速传输策略。

一种实施例中,所述根据调整后的数据加速传输策略,控制所述目标协议链路加速传输所述当前数据,直至完成所述当前数据的传输,包括:

当调整后的数据加速传输策略为所述第一数据传输加速策略时,控制所述目标协议链路上按照预定数据发送速率提升单次数据发送量,发送所述当前数据,直至所述目标协议链路上的单次数据发送量达到所述历史带宽时延积;

当调整后的数据加速传输策略为所述第二数据传输加速策略时,通过周期性带宽探测调整所述目标协议链路上的单次数据发送量,发送所述当前数据,直至所述目标协议链路上的当前带宽时延积达到所述发送数据量安全阈值;

当调整后的数据加速传输策略为所述第三数据传输加速策略时,控制所述目标协议链路上按照预定规则增加单次数据发送量,并且在所述目标协议链路上出现丢包时通过调整增加后的单次数据发送量,发送所述当前数据,直至完成所述当前数据的传输。

一种实施例中,所述根据所述历史链路状态信息及所述当前链路状态信息,调整所述目标协议链路对应的数据加速传输策略,包括:

当所述历史链路状态信息为空时,调整所述目标协议链路对应的数据加速传输策略为预设数据加速传输策略。

一种实施例中,在所述获取通过目标协议链路传输历史数据时的历史链路状态信息之前,所述方法还包括:

获取通过所述目标协议链路每次传输历史数据时的链路缓冲区大小信息,得到历史链路缓冲区大小信息;

将所述历史链路缓冲区大小信息进行归一化处理,得到所述历史链路状态信息。

一种实施例中,所述历史链路缓冲区大小信息包括极限带宽时延积、拥塞带宽时延积及未确认数据量,所述极限带宽时延积为每次传输历史数据的最后传输时刻点所对应带宽时延积,所述拥塞带宽时延积为每次检测到传输发生拥塞的时刻点所对应带宽时延积,所述未确认数据量为每次检测到传输发生拥塞的时刻点已发送但未收到确认的数据量;

所述将所述历史链路缓冲区大小信息进行归一化处理,得到所述历史链路状态信息,包括:

将所有所述极限带宽时延积加权求和,得到历史带宽时延积;

将所有所述拥塞带宽时延积及未确认数据量中,最大的数值作为发送数据量安全阈值;

将所述历史带宽时延积及所述发送数据量安全阈值,作为所述历史链路状态信息。

一种实施例中,所述将所有所述极限带宽时延积加权求和,得到历史带宽时延积,包括:

获取前次极限带宽时延积,所述前次极限带宽时延积为传输前次历史数据时对应的极限带宽时延积,所述前次历史数据为所述当前数据之前一次所传输的数据;

获取前续历史带宽时延积,所述前续历史带宽时延积为传输再前历史数据时对应的极限带宽时延积按照预定加权系数加权求和得到的,所述再前历史数据为所述前次历史数据之前所传输的数据;

将所述前续历史带宽时延积与所述前次极限带宽时延积,按照所述预定加权系数加权求和,得到所述历史带宽时延积。

一种实施例中,所述预定加权系数包括第一加权系数及第二加权系数;所述将所述前续历史带宽时延积与所述前次极限带宽时延积,按照所述预定加权系数加权求和,得到所述历史带宽时延积,包括:

将所述前续历史带宽时延积与所述第一加权系数相乘,得到第一加权项;

将所述前次极限带宽时延积与所述第二加权系数相乘,得到第二加权项;

将所述第一加权项及所述第二加权项相加,得到所述历史带宽时延积。

一种实施例中,所述获取通过目标协议链路传输历史数据时的历史链路状态信息,包括:

获取预设哈希表,所述预设哈希表用于保存协议链路对应的历史链路状态信息;

从所述预设哈希表中,查询所述目标协议链路对应的历史链路状态信息。

一种实施例中,所述目标协议链路对应于目标数据发送方,所述预设哈希表中保存发送方标识及所述发送方标识所关联的历史链路状态信息;所述从所述预设哈希表中,查询所述目标协议链路对应的历史链路状态信息,包括:

获取所述目标数据发送方的发送方标识;

从所述预设哈希表中,查询所述目标数据发送方的发送方标识所关联的历史链路状态信息。

一种实施例中,在所述根据调整后的数据加速传输策略,控制所述目标协议链路加速传输所述当前数据,直至完成所述当前数据的传输之后,所述方法还包括:

在所述目标协议链路中传输所述当前数据的过程中,获取本次链路缓冲区大小信息;

将所述本次链路缓冲区大小信息与所述历史链路缓冲区大小信息进行归一化处理,得到更新后历史链路状态信息;

利用所述更新后历史链路状态信息,更新预设哈希表中所述目标协议链路对应的历史链路状态信息。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请上述实施例中各种可选实现方式中提供的方法。

本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。

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