本申请涉及互联网技术领域,尤其涉及一种数据传输方法、装置、设备以及可读存储介质。
背景技术:
随着互联网技术的快速发展,人们之间的远程沟通方式愈发的简单、方便、实惠,从最原始的纸质信件到有线电话,再到现在的无线电话以及软件沟通,目前,人们更偏向于使用基于网际互联协议语音或视频(voiceandvideooverinternetprotocol,vvoip)应用来进行远程沟通。
在现有技术中,发送终端与接收终端之间有数据传输时,vvoip应用会在两端之间创建一条传输链路,因为只有一条传输链路,所以当这条传输链路信号不佳时,会直接影响到发送终端与接收终端之间的数据传输质量,可能会导致数据延时,甚至发生丢包风险,所以现有技术远远满足不了大规模vvoip应用的发展需求。
技术实现要素:
本申请实施例提供一种数据传输方法、装置、设备以及可读存储介质,可以提高数据传输质量。
本申请实施例一方面提供一种数据传输方法,包括:
获取数据包;
确定发送终端与接收终端之间的至少两条传输链路,获取上述至少两条传输链路分别对应的链路质量属性;
获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;
根据上述传输需求信息以及上述链路质量属性,从上述至少两条传输链路中确定用于传输上述数据包的目标传输链路。
本申请实施例一方面提供了一种数据传输装置,包括:
第一获取模块,用于获取数据包;
第一确定模块,用于确定发送终端与接收终端之间的至少两条传输链路,获取上述至少两条传输链路分别对应的链路质量属性;
第二获取模块,用于获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;
第二确定模块,用于根据上述传输需求信息以及上述链路质量属性,从上述至少两条传输链路中确定用于传输上述数据包的目标传输链路。
其中,上述第二确定模块,包括:
获取总匹配度单元,用于获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度;
第一确定链路单元,用于根据上述总匹配度从上述至少两条传输链路中确定用于传输上述数据包的上述目标传输链路。
其中,上述传输需求信息包括通信质量需求信息、流量需求信息以及资源消耗需求信息;上述链路质量属性包括链路通信质量、链路流量属性以及资源消耗属性;
上述获取总匹配度单元,包括:
第一获取子单元,用于获取上述通信质量需求信息与上述至少两条传输链路分别对应的上述链路通信质量之间的质量匹配度;
上述第一获取子单元,还用于获取上述流量需求信息与上述至少两条传输链路分别对应的上述链路流量属性之间的流量匹配度;
上述第一获取子单元,还用于获取上述资源消耗需求信息与上述至少两条传输链路分别对应的上述资源消耗属性之间的资源匹配度;
第二获取子单元,用于根据上述质量匹配度、上述流量匹配度以及上述资源匹配度,获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度。
其中,上述传输需求信息为需求栈,上述需求栈包括至少两个需求信息;
上述第二确定模块,具体用于根据上述至少两个需求信息在上述需求栈中的位置顺序,将每个需求信息依次与上述至少两条传输链路分别对应的上述链路质量属性进行匹配,直至确定上述至少两条传输链路中存在满足目标需求信息的上述目标传输链路,停止对上述需求栈中的需求信息匹配;上述目标需求信息属于上述需求栈。
其中,上述需求栈包括需求信息ki和需求信息ki 1,且上述需求信息ki在上述需求栈中的位置,位于需求信息ki 1在上述需求栈中的位置之前,i为正整数;
上述第二确定模块,包括:
获取匹配度单元,用于从上述需求栈中获取上述需求信息ki,获取上述需求信息ki与上述至少两条传输链路分别对应的上述链路质量属性之间的第一匹配度;
选择链路单元,用于根据上述第一匹配度在上述至少两条传输链路中,选择满足上述需求信息ki的传输链路;
第二确定链路单元,用于若存在至少两条满足上述需求信息ki的传输链路,则确定满足上述需求信息ki的传输链路为待选传输链路;
上述获取匹配度单元,还用于从上述需求栈中删除上述需求信息ki,获取上述需求信息ki 1,获取上述需求信息ki 1与上述待选传输链路分别对应的上述链路质量属性之间的第二匹配度;
上述选择链路单元,还用于根据上述第二匹配度在上述待选传输链路中,选择满足上述需求信息ki 1的传输链路;
上述第二确定链路单元,还用于若存在一个满足上述需求信息ki 1的传输链路,则确定满足上述需求信息ki 1的传输链路为用于传输上述数据包的上述目标传输链路,停止对上述需求栈中的需求信息匹配。
其中,上述第一确定模块,包括:
获取通信质量单元,用于获取第一周期内的上述至少两条传输链路分别对应的上述链路通信质量;
获取流量属性单元,用于获取上述第一周期内的上述至少两条传输链路分别对应的上述链路流量属性;
获取资源消耗单元,用于获取上述第一周期内的上述至少两条传输链路分别对应的上述资源消耗属性;
确定质量属性单元,用于根据上述链路通信质量、上述链路流量属性以及上述资源消耗属性,确定上述第一周期内的上述至少两条传输链路分别对应的上述链路质量属性;上述数据传输请求处于第二周期内,上述第一周期与上述第二周期为时间上连续的周期。
其中,上述第一周期内的上述至少两条传输链路包括活跃传输链路,上述活跃传输链路是指在上述第一周期内传输第一历史数据包的链路;
上述获取通信质量单元,包括:
第一质量评估子单元,用于根据测试数据包对上述第一周期内的上述至少两条传输链路分别进行第一质量评估,得到上述至少两条传输链路分别对应的第一传输质量;
第二质量评估子单元,用于根据上述第一历史数据包对上述第一周期内的上述活跃传输链路进行第二质量评估,得到上述活跃传输链路的第二传输质量;
确定通信质量子单元,用于根据上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
其中,上述链路流量属性包括第一流量属性、第二流量属性以及第三流量属性;
上述获取流量属性单元,包括:
获取网络类型子单元,用于获取上述第一周期内的上述至少两条传输链路分别对应的网络接入类型;上述网络接入类型包括上述发送终端的网络接入类型以及上述接收终端的网络接入类型;
确定流量属性子单元,用于若上述至少两条传输链路包括第一传输链路,则确定上述第一传输链路为上述第一流量属性;上述第一传输链路对应的上述网络接入类型均为第一网络类型;
上述确定流量属性子单元,还用于若上述至少两条传输链路包括第二传输链路,则确定上述第二传输链路为上述第二流量属性;上述第二传输链路对应的上述网络接入类型均为第二网络类型;
上述确定流量属性子单元,还用于若上述至少两条传输链路包括第三传输链路,则确定上述第三传输链路为上述第三流量属性;上述第三传输链路对应的上述网络接入类型包括上述第一网络类型以及上述第二网络类型。
其中,上述资源消耗属性包括第一资源消耗属性和第二资源消耗属性;
上述获取资源属性单元,包括:
确定中转子单元,用于将上述至少两条传输链路中包含中转节点的传输链路,确定为中转传输链路,为上述中转传输链路设置上述第一资源消耗属性;
确定直连子单元,用于将上述至少两条传输链路中不包含中转节点的传输链路,确定为直连传输链路,为上述直连传输链路设置上述第二资源消耗属性。
其中,上述第一质量评估子单元,包括:
获取测试质量子单元,用于当达到上述第二周期内的起始时间戳时,对上述至少两条传输链路分别发送上述测试数据包,获取上述至少两条传输链路传输上述测试数据包分别对应的链路测试质量;
获取信号强度子单元,用于获取上述至少两条传输链路在上述起始时间戳分别对应的网络信号强度;
评估第一传输子单元,用于根据上述链路测试质量以及上述网络信号强度,评估上述至少两条传输链路分别对应的上述第一传输质量。
其中,上述第二质量评估子单元,包括:
获取传输质量子单元,用于获取上述活跃传输链路传输上述第一历史数据包的传输质量集合,根据上述传输质量集合,确定上述活跃传输链路的平均传输质量;
确定第二传输子单元,用于将上述平均传输质量确定为上述活跃传输链路的上述第二传输质量。
其中,上述确定通信质量子单元,包括:
获取历史质量子单元,用于获取上述至少两条传输链路分别对应的链路历史通信质量;上述链路历史通信质量为上述至少两条传输链路在历史周期内传输第二历史数据包分别对应的链路通信质量;
确定链路质量子单元,用于根据上述链路历史通信质量、上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
其中,上述第一周期内的上述至少两条传输链路还包括闲置传输链路,上述闲置传输链路是指在上述第一周期内处于闲置状态的传输链路;
上述确定链路质量子单元,具体用于根据上述第一传输质量以及上述第二传输质量,确定上述活跃传输链路的活跃链路通信质量;
上述确定链路质量子单元,具体用于根据上述链路历史通信质量、上述活跃链路通信质量、历史通信质量评估权重以及通信质量评估权重确定上述活跃传输链路的上述链路通信质量;
上述确定链路质量子单元,具体用于根据上述第一传输质量确定上述闲置传输链路的闲置链路通信质量;
上述确定链路质量子单元,具体用于根据上述链路历史通信质量、上述闲置链路通信质量、上述历史通信质量评估权重以及上述通信质量评估权重确定上述闲置传输链路的上述链路通信质量。
其中,上述第二确定模块,还包括:
新增链路单元,用于当上述至少两条传输链路分别对应的上述总匹配度均小于匹配度阈值时,在上述发送终端以及上述接收终端之间增加中转节点,根据所增加的中转节点,创建新增传输链路;
第三确定链路单元,用于将上述新增传输链路确定为用于传输上述数据包的上述目标传输链路。
其中,上述获取流量属性单元,还包括:
增加链路子单元,用于若上述发送终端的网络接入类型或上述接收终端的网络接入类型增加,则根据所增加的网络接入类型,在上述发送终端以及上述接收终端之间增加传输链路;
删除链路子单元,用于若上述发送终端的网络接入类型或上述接收终端的网络接入类型减少,则根据所减少的网络接入类型,在上述发送终端以及上述接收终端之间删除传输链路。
其中,上述确定链路质量子单元,还具体用于当上述闲置传输链路连续处于闲置状态的时长大于闲置时间阈值时,删除上述闲置传输链路。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与上述存储器、上述网络接口相连,其中,上述网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行如本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,以执行如本申请实施例中的方法。
本申请实施例通过获取发送终端所发送数据包,可以确定接收上述数据包的接收终端;然后确定上述发送终端以及上述接收终端之间的至少两条传输链路,进而获取上述至少两条传输链路分别对应的链路质量属性;同时获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;最后通过考虑上述传输需求信息以及上述链路质量属性,从至少两条传输链路中选择出目标传输链路。上述可知,本申请可以根据至少两条传输链路分别对应的链路质量属性,选择适合传输数据包的目标传输链路,进而可以提高数据传输质量。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种系统架构示意图;
图1b是本申请实施例提供的一种vvoip系统装置图;
图2a是本申请实施例提供的一种数据传输的场景示意图;
图2b是本申请实施例提供的一种数据传输的场景示意图;
图3a是本申请实施例提供的一种直连传输链路的结构示意图;
图3b是本申请实施例提供的一种中转传输链路的结构示意图;
图4是本申请实施例提供的一种数据传输方法的流程示意图;
图5为本申请实施例提供的一种数据传输的场景示意图;
图6是本申请实施例提供的一种传输链路决策的结构示意图;
图7是本申请实施例提供的一种数据传输方法的流程示意图;
图8是本申请实施例提供的一种数据传输的场景示意图;
图9是本申请实施例提供的一种数据传输装置的结构示意图;
图10是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1a,是本申请实施例提供的一种系统架构示意图。如图1a所示,不同终端(也包括图1a中移动终端20、服务器30、有线/无线电话40、笔记本50以及台式电脑60)之间通过互联网协议(internetprotocol,ip)网络10,进行语音和/或视频通信,这类基于ip网络10的音视频通信传输技术指的是基于网际互联协议语音或视频(voiceandvideooverinternetprotocol,vvoip)技术。vvoip应用可以分为两大类:基于ip网络10的软件通信(包括语音和/或视频)以及基于ip网络10的硬件通信(包括语音和/或视频),软件通信是在电脑(例如笔记本50)/手机(例如移动终端20)/平板上安装基于ip网络10的通信应用软件,然后在有网络(包括有线网络和无线网络)的情况下,和对方(移动终端20或者笔记本50均可)进行通信;虽然从外表看vvoip应用中的硬件通信与传统电话一致,但工作原理大相径庭,传统电话利用公众交换电话网络(publicswitchedtelephonenetwork,pstn)来传播音频数据,而vvoip应用则是将模拟的音频数据流或视频数据流经过ip网络10的网络电话网关器(internettelephonegatewaydevice,itg),转换成数字数据流,再经过压缩编码,以封包(packet)的方式传输,在接收侧,在对数据包的接收、包的解码以及数模转换的类似步骤之后(通常是与发送侧相反的顺序),再现了原始的音频流或视频流;其中,经过压缩之后的音频数据包(语音频道)可能只需要6.3kps,并且可以和其它形式的数据包(例如视频数据包或者冗余数据包)共同使用一条传输链路,相对于传统电话而言,其语音频道需要64kbps,是vvoip应用的十倍,且不能和其它数据共享传输链路,这也是为什么基于ip网络10的电话费率可以比传统电话低廉那么多的原因。
进一步地,请参见图1b,是本申请实施例提供的一种vvoip系统装置图。如图1b所示,本申请提供的vvoip系统可以分为以下三层(因为通信终端10既可以为发送终端,也可以为接收终端,且通信原理类似,故在此不标注通信终端10为发送终端或接收终端,通信终端20亦如此):
第一,应用层。在vvoip应用中,声音和画面通过数据流的形式在发送终端以及接收终端之间进行传输,因此vvoip应用先在应用层中对音视频数据拆分,然后进行采集和编码,产生音频数据包和视频数据包等,具体过程可以包括以下:
1)量化采样:将模拟电信号按照某种采样方法,比如脉冲编码调制(pulsecodemodulation,pcm)转换成数字信号;
2)封包:将一定时长的数字化之后的音视频数据组合为一帧,随后,按照国际电信联盟(internationaltelecommunicationunion,itu)的标准,将这些音视频帧封装到一个实时传输协议(real-timetransportprotocol,rtp)报文中,并将上述音视频帧进一步封装到用户数据报协议(userdatagramprotocol,udp)报文和ip报文中,生成音频数据包和/或视频数据包等。
第二,适配层。适配层主要负责链路管理、链路质量监控和链路选择。
1)链路管理:负责链路的增、减、状态更新等逻辑。新增可用网络,比如无线局域网(wirelessfidelity,wifi)启用的情况下打开数据网络会触发新增链路,当前所有链路质量属性都不佳的情况下,也会尝试新增链路;可用网络减少,例如关闭wifi或者关闭数据网络,或者当前某条传输链路闲置率高时,会触发关闭这些特定传输链路。
2)链路质量监控:通过对传输链路进行历史传输质量统计,以及主动发送测试数据包测量传输链路相结合的方式,对所有链路进行周期性质量评估,评估结果用于决策音视频数据所对应发送的传输链路。
3)链路选择:应用层生成的数据包到达适配层以后,链路选择模块根据数据包的特性,可以包括数据包种类、大小、是否冗余包,和所有传输链路的链路质量特性,可以包括链路类型、网卡类型、综合质量评分等,决策该数据包使用哪条传输链路进行发送。
第三,链路层。链路层负责传输链路具体的处理逻辑,包括创建、销毁等。链路层可以同时包含多条中转传输链路(包括中转传输链路b)和多条直连传输链路(包括直连传输链路a),对于中转传输链路b来说,链路层主要负责用户端和中转服务器节点30的交互对接,例如通信终端10将自身产生的数据包通过中转传输链路b传输至中转服务器节点30,然后中转服务器节点30通过中转传输链路b将上述数据包传输至通信终端20;对于直连传输链路a来说,链路层主要负责通信终端10以及通信终端20的网络地址转换(networkaddresstranslation,nat)。如果通信终端10或者通信终端20有多个接入网络,比如无线局域网和数据网络都启用,那么传输链路可以选择不同的接入网络,但同一条传输链路只能接入一种网络。
可选的,当通信终端10为发送终端时,还可以将在应用层所生成的数据包发送至vvoip应用的后台服务器上,后台服务器接收到数据包后,会获取通信终端10以及通信终端20之间的至少两条传输链路,然后对至少两条传输链路分别进行质量评估,以及获取上述至少两条传输链路分别对应的链路属性,再根据数据包分别对应的数据属性,获取数据属性分别对应的传输需求信息,最后根据至少两条传输链路分别对应的链路质量属性以及传输需求信息,从至少两条传输链路中确定用于传输数据包的目标传输链路,即执行主体可以位于决策系统中的应用后台服务器上。
其中,图1a中的终端以及图1b中的通信终端10、通信终端20可以包括手机、平板电脑、笔记本电脑、掌上电脑、智能音响、移动互联网设备(mid,mobileinternetdevice)、pos(pointofsales,销售点)机、可穿戴设备(例如智能手表、智能手环等)等。
进一步地,请参见图2a,是本申请实施例提供的一种数据传输的场景示意图。随着移动终端技术的发展和网络带宽的提升,越来越多的用户选择使用vvoip应用来进行远程沟通。在vvoip应用中,声音和画面通过数据流的形式在用户之间进行传输,传输数据流的vvoip应用需要低延时、高稳定性特点才能提供高质量的vvoip服务,随着硬件设备和音视频编解码技术的发展,数据传输链路的质量属性成为影响vvoip服务质量的关键因素。目前由于没有对音视频数据进行细粒度划分,只是基于连续时间段,对发送终端20所产生的音视频数据生成数据包,所以现有技术中,vvoip服务一般采用单条传输链路来传输音视频数据(音视频数据流);同时传输链路质量(包括丢包、延时等)会随着传输链路的网络接入属性(wifi信道干扰、数据流量信号强度等因素),和网络节点拥塞状态的改变而变化,传输链路质量抖动会造成音视频卡顿,频繁卡顿会大大降低用户体验(qualityofexperience,qoe)。
本申请提出一种采用多链路同时传输数据的vvoip系统,充分利用终端设备的网络接入资源和网络节点资源,通过把音视频数据动态地调度到不同的传输链路,从而实现提升vvoip传输质量的稳定性,提升用户qoe的目的。
为了便于理解和叙述,先对传输链路进行简单介绍,传输链路是指vvoip应用产生的音视频数据传输到对端客户端所经过的网络路径,也可称为数据链路或者数据传输链路。
请参见图2a,发送终端20接入的网络有数据流量网络和wifi网络,其中,数据流量网络可以包括第三代移动通信技术(the3rdgenerationmobilecommunicationtechnology,3g)网络、第四代移动通信技术(the4thgenerationmobilecommunicationtechnology,4g)网络以及第五代移动通信技术(the5thgenerationmobilecommunicationtechnology,5g)网络,本实施例中以4g网络为例进行说明,接收终端30接入的网络有wifi网络,则发送终端20与接收终端30之间的传输链路情况,请一并参见图3a以及图3b,图3a是本申请实施例提供的一种直连传输链路的结构示意图,图3b是本申请实施例提供的一种中转传输链路的结构示意图。如图3a所示,vvoip系统控制的是发送终端20所对应的接入网络以及接收终端30所对应的接入网络,因为发送终端20有两个接入网络,分别为wifi网络和4g网络,接收终端30有一个接入网络,即wifi网络,那么可以在发送终端20和接收终端30之间基于ip网络10(包括上述的wifi网络和4g网络),同时建立两条相互独立的直连传输链路,直连传输链路50d由发送终端20的wifi网络与接收终端30的wifi网络组成,直连传输链路50c由发送终端20的4g网络与接收终端30的wifi网络组成,两条直连传输链路之间存在带宽抢占的概率很低,利用直连传输链路(也包括直连传输链路50d以及直连传输链路50c)传输音视频数据时,传输方式简单且传输效率高,但是建立直连传输链路可能会失败,链路稳定性较弱且不可控。
如图3b所示,vvoip系统能够控制的除了发送终端20所对应的接入网络,以及接收终端30所对应的接入网络外,还能通过连接不同的中转节点来构造中转传输链路。同样的,如图3b所示,假设发送终端20有两个的接入网络,分别为wifi网络和4g网络,接收终端30有一个接入网络,即wifi网络,那么可以在发送终端20和接收终端30之间基于ip网络10(包括上述的wifi网络、4g网络以及中转节点),同时建立至少两条中转传输链路,可以包括但不仅限于以下组合:发送终端20的wifi网络和接收终端30的wifi网络接入中转节点40a,构成中转传输链路50a;发送终端20的4g网络和接收终端30的wifi网络接入中转节点40b,构成中转传输链路50b。部署在不同运营商和不同地区的中转节点均为不同中转节点,而接入不同中转节点时,传输链路也都会有差异,所以只要选择不同的中转节点就可以构成不同的链路,如图3b所示,发送终端20的4g网络和接收终端30的wifi网络接入中转节点40c,构成一条新的中转传输链路50f。需要注意的是,中转传输链路(也包括中转传输链路50a中转传输链路50b以及中转传输链路50f)中的中转节点(也包括中转节点40a、中转节点40b以及中转节点40c)不只包括一个中转服务器,即中转节点可以包括多个中转服务器,例如发送终端20通过4g网络将数据包传输至发送终端20所对应的中转服务器a,然后中转服务器a将数据包传输至接收终端30所对应的中转服务器b,最后中转服务器b将数据包传输至接收终端30,且中转服务器1与中转服务器2之间可以存在中转服务器c。利用中转传输链路传输音视频数据时,传输链路质量会比直连传输链路质量好,稳定性较高,且可控,但是会增加中转服务器成本和带宽成本,且带宽成本的增加已经成为很多vvoip服务提供者发展的重大障碍。
如图2a所示,发送终端20在与接收终端30的通话过程中,实时向应用服务器40发送数据传输请求,上述数据传输请求中包含数据包20a以及接收终端30的接收终端标识30a,其中,接收终端标识30a用于表明上述接收终端30的身份;应用服务器40接收到数据传输请求后,首先获取数据包20a以及接收终端标识30a,然后根据上述数据包20a,获取上述数据包20a所对应的传输需求信息;根据上述接收终端标识30a获取发送终端20与接收终端30之间的至少两条传输链路,然后获取上述至少两条传输链路分别对应的链路质量属性,最后根据传输需求信息以及链路质量属性确定目标传输链路,上述目标传输链路用于将上述数据包20a传输至接收终端30。
请参见图2a,获取上述至少两条传输链路分别对应的链路质量属性的具体过程可以包括如下:应用服务器40首先根据接收终端标识30a,确定接收终端30,请一并参见图3a以及图3b,获取发送终端20与接收终端30之间的至少两条传输链路,假设发送终端20与接收终端30在上一个周期内存在4条传输链路,如图2a所示,四条传输链路分别为中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d,则根据上述中转传输链路50a在上一个周期内传输历史数据包的传输质量,确定中转传输链路50a链路通信质量。根据中转传输链路50a分别对应的网络接入类型,确定中转传输链路50a的链路流量属性,如图3b所示,若中转传输链路50a由发送终端20的wifi网络、接收终端30的wifi网络以及中转节点40a构成,则中转传输链路50a的链路流量属性为第一流量属性,第一流量属性为低流量属性,即表明中转传输链路50a中所消耗的数据流量较低。若中转传输链路50a由发送终端20的4g网络、接收终端30的wifi网络以及中转节点40b构成,则中转传输链路50a的链路流量属性为第三流量属性,第三流量属性为中流量属性,即表明中转传输链路50a中需要消耗一部分数据流量。由于中转传输链路50a包含中转节点,例如图3b所示的中转节点40b,所以确定中转传输链路50a的资源消耗属性为第一资源消耗属性,第一资源消耗属性为高成本属性,即表明中转传输链路50a的中转节点计算大且宽带资源消耗多。最后根据中转传输链路50a的链路通信质量、链路流量属性以及资源消耗属性确定中转传输链路50a的链路质量属性500a。确定直连传输链路50c的链路通信质量过程,与确定中转传输链路50a的链路通信质量过程相似,且确定直连传输链路50c的链路流量属性过程与确定中转传输链路50a的链路流量属性过程也相似,故在此不再进行赘述,由于直连传输链路50c不包含中转节点,即发送终端20与接收终端30直接进行点对点(peer-to-peer,p2p)传输,所以确定直连传输链路50c的资源消耗属性为第二资源消耗属性,第二资源消耗属性为低成本成本属性,即表明直连传输链路50c的没有中转节点计算且宽带资源消耗少。最后根据直连传输链路50c的链路通信质量、链路流量属性以及资源消耗属性确定直连传输链路50c的链路质量属性500c。同理,根据上述过程可以确定中转传输链路50b的链路质量属性500b,以及确定直连传输链路50d的链路质量属性500d,故在此不再进行赘述。
再请参见图2a,获取上述数据包20a的传输需求信息的具体过程可以包括如下:如图2a所示,应用服务器40获取上述数据包20a,首先获取上述数据包20a所分别对应的数据属性,数据属性可以根据数据种类分为视频类型、音频类型以及冗余类型。在图2a中,数据包20a可以具体包含3个数据包,分别为视频数据包200a(即为视频类型的数据包)、音频数据包200b(即为音频类型的数据包)以及冗余数据包200c(即为冗余类型的数据包)。考虑到数据包类型不同,其传输需求信息也会不同,所以为了充分且合理的利用上述提及的四条传输链路(包括中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d)网络资源,本申请提出一种针对于音视频数据粒度的传输链路选择策略。vvoip系统给每种类型的数据包定义一个传输需求信息,对于音频数据包200b而言,由于音频码率不会太高,另外考虑到用户对于音频质量非常敏感,所以音频数据包200b的传输需求信息201b优先考虑的是链路传输(通信)质量,其次是流量消耗,最后是成本;对于视频数据包200a而言,由于传输码率较大,所以视频数据包200a的传输需求信息201a优先考虑降低用户的流量消耗,其次是链路传输质量,最后考虑成本;对于冗余数据包200c而言,系统会优先考虑低流量和低成本两个需求;其中,低成本主要是指中转节点计算低以及带宽资源消耗少、低流量主要是指发送终端20和接收终端30的4g数据流量消耗少。
最后应用服务器40根据前述提及的链路质量属性以及传输需求信息,对数据传输请求中的视频数据包200a、音频数据包200b以及冗余数据包200c分别选择合适的目标传输链路,值得注意的是,视频数据包200a、音频数据包200b以及冗余数据包200c,在中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d中,确定目标传输链路(目标传输链路属于中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d)时,是相互独立的,所以目标传输链路可能为一条,此时,视频数据包200a、音频数据包200b以及冗余数据包200c共用目标传输链路传输数据至接收终端30,如图2a所示,中转传输链路50a为目标传输链路;也可能包括三条,此时,视频数据包200a确定一条目标传输链路、音频数据包200b确定一条目标传输链路,以及冗余数据包200c确定一条目标传输链路,分别用各自的目标传输链路传输数据至接收终端30。
数据属性还可以根据数据容量大小分为大容量数据包以及小容量数据包,然后再对大容量数据包(或小容量数据包)进行种类划分,小容量数据包可以参见图2a的实施例,在此不再进行赘述。请参见图2b,是本申请实施例提供的一种数据传输的场景示意图。如图2b所示,发送终端20向接收终端30发送电影20a,由于电影20a数据容量较大,且与发送终端20以及接收终端30实时视频通信不同,所以当应用服务器40获取到发送终端20传输的电影20a时,先对电影20a进行音视频数据划分,得到音视频数据帧200,…,音视频数据帧201,然后根据音视频数据帧200可以得到对应的视频数据包200a、音频数据包200b以及冗余数据包200c,…,根据音视频数据帧201可以得到对应的视频数据包201a、音频数据包201b以及冗余数据包201c,与图2a实施例不同的是,本实施例可以同时传输多个音视频数据帧至接收终端30,其中,音视频数据帧200对应的数据包(包括视频数据包200a、音频数据包200b以及冗余数据包200c)与音视频数据帧201对应的数据包(包括视频数据包201a、音频数据包201b以及冗余数据包201c)相互独立选择传输链路(包括图2b中的中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d)作为目标传输链路,其过程与他2a中一致,此处不再进行赘述。
其中,本申请实施例所提供的vvoip系统可以包括应用服务器40、发送终端20、接收终端30以及中转服务器(包括中转服务器40a、中转服务器40b以及中转服务器40c),且本申请实施例中的执行主体可以位于vvoip系统中的应用服务器40上,也可以位于vvoip系统中的发送终端20上,若执行主体位于发送终端20上时,则由发送终端自身选择目标传输链路来传输由音视频数据生成的数据包,此时可以参见本申请实施例所提供的图1b。
进一步地,请参见图4,是本申请实施例提供的一种数据传输方法的流程示意图。如图4所示,上述方法可以包括:
步骤s101,获取数据包。
具体的,实际上,数据包主要是根据发送终端所传输的音视频数据拆分生成的,根据数据格式,数据包可以为视频数据包、音频数据包和冗余数据包等,根据数据储存大小,数据包可以分为大容量数据包以及小容量数据包。若用户(终端)之间利用vvoip应用传输时,携带文本格式,则为文本数据包,由于文本数据包内存小,结构简单,因此传输需求简单,在本申请中不做详细叙述。
为了便于理解和区分,将生成数据包的时间周期称为数据包周期,假设数据包周期为50ms,即发送终端每50ms生成一个数据传输请求(数据传输请求携带数据包)传输至接收终端,请一并参见图2a,假设在本申请实施例中,一个音视频数据根据数据格式可以拆分为一个视频数据包200a、一个音频数据包200b以及一个冗余数据包200c,则发送终端20每50ms生成一个视频数据包200a、一个音频数据包200b以及一个冗余数据包200c传输至接收终端。将对传输链路(包括图2a中的中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d)进行传输质量评估的时间周期称为质量评估周期,假设质量评估周期为2s,即每2s对4条传输链路进行一次传输质量评估,上一个质量评估周期的4条传输链路分别对应的质量评估结果用于确定下一个质量评估周期的目标传输链路。综上可知,一个质量评估周期内包含有40个数据包周期。
可选的,将vvoip系统中的数据包周期切割成若干时间段,该若干时间段对应的时长可以固定不变,本申请实施例是以等长时间段为例进行说明,或者,各时间段的时长也可以按照预设的变化策略进行调整,如各时间段的时长可以各不相等,或者,各时间段的时长也可以部分相等,其余部分各不相等。同理,上述质量评估周期对应时长亦如此,故在此不再进行赘述。
步骤s102,确定发送终端以及接收终端之间的至少两条传输链路,获取至少两条传输链路分别对应的链路质量属性。
具体的,获取第一周期内的上述至少两条传输链路分别对应的上述链路通信质量,获取上述第一周期内的上述至少两条传输链路分别对应的上述链路流量属性,获取上述第一周期内的上述至少两条传输链路分别对应的上述资源消耗属性,根据上述链路通信质量、上述链路流量属性以及上述资源消耗属性,确定上述第一周期内的上述至少两条传输链路分别对应的上述链路质量属性,上述数据传输请求处于第二周期内,上述第一周期与上述第二周期为时间上连续的周期。
上述第一周期内的上述至少两条传输链路包括活跃传输链路,上述活跃传输链路是指在上述第一周期内传输第一历史数据包的链路,根据测试数据包对上述第一周期内的上述至少两条传输链路分别进行第一质量评估,得到上述至少两条传输链路分别对应的第一传输质量;根据上述第一历史数据包对上述第一周期内的上述活跃传输链路进行第二质量评估,得到上述活跃传输链路的第二传输质量,根据上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
上述链路流量属性包括第一流量属性、第二流量属性以及第三流量属性,获取上述第一周期内的上述至少两条传输链路分别对应的网络接入类型,上述网络接入类型包括上述发送终端的网络接入类型以及上述接收终端的网络接入类型;若上述至少两条传输链路包括第一传输链路,则确定上述第一传输链路为上述第一流量属性;上述第一传输链路对应的上述网络接入类型均为第一网络类型;若上述至少两条传输链路包括第二传输链路,则确定上述第二传输链路为上述第二流量属性,上述第二传输链路对应的上述网络接入类型均为第二网络类型;若上述至少两条传输链路包括第三传输链路,则确定上述第三传输链路为上述第三流量属性上述第三传输链路对应的上述网络接入类型包括上述第一网络类型以及上述第二网络类型。
上述资源消耗属性包括第一资源消耗属性和第二资源消耗属性;将上述至少两条传输链路中包含中转节点的传输链路,确定为中转传输链路,为上述中转传输链路设置上述第一资源消耗属性;将上述至少两条传输链路中不包含中转节点的传输链路,确定为直连传输链路,为上述直连传输链路设置上述第二资源消耗属性。
由步骤s101可知,上一个质量评估周期的4条传输链路(包括图2a中的中转传输链路50a、中转传输链路50b、直连传输链路50c以及直连传输链路50d)所分别对应的质量评估结果,用于确定下一个质量评估周期的目标传输链路。需要注意的是,本申请不仅仅根据链路通信质量(即质量评估结果)确定目标传输链路,因为传输链路的链路流量属性和资源消耗属性也是影响vvoip应用稳定性的重要因素,只是传输链路一旦生成,其链路流量属性不会更改,资源消耗属性变化也不大,所以可以默认为同一条传输链路,在上一个质量评估周期内的链路流量属性和资源消耗属性,与在下一个质量评估周期内的链路流量属性和资源消耗属性等同。
请一并参见图2a,首先获取第一周期内的活跃传输链路以及闲置传输链路,上述活跃传输链路是指在上述第一周期内传输第一历史数据包的链路,上述闲置传输链路是指在第一周期内处于闲置状态的传输链路;实际上,第一历史数据包为第一周期内的数据包集合,因为在2s内,可以产生120个数据包(包括40个视频数据包200a、40个音频数据包200b以及40个冗余数据包200c),假设图2a中的中转传输链路50a、中转传输链路50b以及直连传输链路50d为活跃传输链路,直连传输链路50c为闲置传输链路,请一并参见图5,为本申请实施例提供的一种数据传输的场景示意图。如图5所示,在第一周期内,中转传输链路50a将发送终端20生成的视频数据包200a传输至接收终端30,中转传输链路50b将发送终端20生成的音频数据包200b传输至接收终端30,直连传输链路50d将发送终端20生成的冗余数据包200c传输至接收终端30;应用服务器40获取到发送终端20发送的数据传输请求(数据传输请求处于第二周期内,上述第一周期与上述第二周期为时间上连续的周期)时,则需要对上一个周期(即第一周期)内的4条传输链路进行质量评估。
当达到第二周期内的起始时间戳时,应用服务器40主动评估中转传输链路50a、中转传输链路50b、直连传输链路50d以及直连传输链路50c分别对应的第一传输质量,具体过程为发送测试数据包300至上述四条传输链路,评估四条传输链路分别对应的传输质量,在一种可行的实现方案中,上述传输质量可以包括但不限于:链路的丢包数据、延迟数据、抖动数据和所传输数据的码率,并采用国际电信联盟(internationaltelecommunicationunion,itu)的e模型(e-model),来计算第一传输质量。
上述评估的传输质量针对于发送终端20与接收终端30之间的所有传输链路,还要根据上述第一历史数据包对上述第一周期内的活跃传输链路进行质量评估,如图5所示,根据视频数据包200a对中转传输链路50a进行第二质量评估,根据音频数据包200b对中转传输链路50b进行第二质量评估,根据冗余数据包200c对直连传输链路50d进行第二质量评估;在一种可行的实现方案中,上述传输质量可以包括但不限于:链路的丢包数据、延迟数据、抖动数据和所传输数据的码率,并采用itu的e模型来计算第二传输质量。
根据公式(1)确定四条传输链路分别对应的链路通信质量,其中,ni表示第二传输质量,mi表示第一传输质量,即根据中转传输链路50a的第一传输质量以及第二传输质量,确定中转传输链路50a的链路通信质量;根据中转传输链路50b的第一传输质量以及第二传输质量,确定中转传输链路50b的链路通信质量;根据直连传输链路50c的第一传输质量以及第二传输质量,确定直连传输链路50c的链路通信质量;根据直连传输链路50d的第一传输质量(因为直连传输链路50d为闲置传输链路),确定直连传输链路50d的链路通信质量。考虑到第二质量评估粒度更细,评分可参考性更强,在依据公式(1)计算链路通信质量时,公式(1)中的α实际取值会小于0.5。
进一步地,请参见图3a以及图3b,确定四条传输链路的链路流量属性以及资源消耗属性。四条传输链路的链路属性可以由一个三元组表示,三元组分别代表通信终端20的接入网络(包括无线网络和数据流量网络),通信终端30的接入网络(即无线网络)以及中转节点。如果中转节点为空,那么表示直连传输链路,如果中转节点非空,那么表示中转传输链路。若中转传输链路50a为图3b中的中转传输链路50a,即由发送终端20的wifi网络、接收终端30的wifi网络以及中转节点40a组成,则确定中转传输链路50a的链路流量属性为第一流量属性,即为低流量属性;因为中转传输链路50a包含有中转节点40a,所以中转传输链路50a的资源消耗会比直连传输链路大,将中转传输链路50a设置第一资源消耗属性,即高成本。若中转传输链路50b为图3b中的中转传输链路50b,即由发送终端20的4g网络、接收终端30的wifi网络以及中转节点40b组成,则确定中转传输链路50b的链路流量属性为第三流量属性,即为中流量属性;因为中转传输链路50b包含有中转节点40b,所以中转传输链路50b的资源消耗会比直连传输链路大,将中转传输链路50a也设置第一资源消耗属性。若直连传输链路50c为图3a中的直连传输链路50c,即由发送终端20的4g网络以及接收终端30的wifi网络组成,则确定直连传输链路50c的链路流量属性为第三流量属性,即为中流量属性;若直连传输链路50d为图3a中的直连传输链路50d,即由发送终端20的wifi网络以及接收终端30的wifi网络组成,则确定直连传输链路50d的链路流量属性为第一流量属性,即为低流量属性;由于直连传输链路不需要中转节点,宽带需求较小,所以上述直连传输链路50c以及上述直连传输链路50d的资源消耗均较小,将上述直连传输链路50c以及上述直连传输链路50d分别设置为第二资源消耗属性,即低成本。除此之外,当传输链路的两端接入网络均为4g网络时,传输链路还可能为高流量属性。
步骤s103,获取数据包对应的数据属性,根据数据属性获取数据包对应的传输需求信息。
具体的,请一并参见图6,是本申请实施例提供的一种传输链路决策的结构示意图。为了充分合理利用多链路资源,本申请提出一种针对于音视频数据粒度的传输链路选择策略,如图6所示,首先,vvoip系统给每种属性的数据包定义一个需求栈(传输需求信息),每个需求栈中包含传输该属性的数据包的传输需求信息,比如高质量(步骤s102计算的链路通信质量)、低成本(中转节点计算和带宽资源消耗少)、低流量(用户4g数据流量消耗少)等,位于需求栈顶的需求优先级最高。对于音频数据包,由于音频码率不会太高,另外考虑到用户对于音频质量非常敏感,所以最优先考虑的是传输质量;对于视频数据包,由于传输码率较大,所以需要优先考虑降低用户的流量消耗;对于冗余数据包,系统会优先考虑低流量和低成本两个需求。
步骤s104,根据传输需求信息以及链路质量属性,从至少两条传输链路中确定用于传输数据包的目标传输链路。
具体的,上述传输需求信息包括通信质量需求信息、流量需求信息以及资源消耗需求信息,上述链路质量属性包括链路通信质量、链路流量属性以及资源消耗属性;获取上述通信质量需求信息与上述至少两条传输链路分别对应的上述链路通信质量之间的质量匹配度;获取上述流量需求信息与上述至少两条传输链路分别对应的上述链路流量属性之间的流量匹配度;获取上述资源消耗需求信息与上述至少两条传输链路分别对应的上述资源消耗属性之间的资源匹配度;根据上述质量匹配度、上述流量匹配度以及上述资源匹配度,获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度,根据上述总匹配度从上述至少两条传输链路中确定用于传输上述数据包的上述目标传输链路。
可选的,上述需求栈包括需求信息ki和需求信息ki 1,且上述需求信息ki在上述需求栈中的位置,位于需求信息ki 1在上述需求栈中的位置之前,i为正整数;从上述需求栈中获取上述需求信息ki,获取上述需求信息ki与上述至少两条传输链路分别对应的上述链路质量属性之间的第一匹配度;根据上述第一匹配度在上述至少两条传输链路中,选择满足上述需求信息ki的传输链路;若存在至少两条满足上述需求信息ki的传输链路,则确定满足上述需求信息ki的传输链路为待选传输链路;从上述需求栈中删除上述需求信息ki,获取上述需求信息ki 1,获取上述需求信息ki 1与上述待选传输链路分别对应的上述链路质量属性之间的第二匹配度;根据上述第二匹配度在上述待选传输链路中,选择满足上述需求信息ki 1的传输链路;若存在一个满足上述需求信息ki 1的传输链路,则确定满足上述需求信息ki 1的传输链路为用于传输上述数据包的上述目标传输链路,停止对上述需求栈中的需求信息匹配。
步骤s101至步骤s103,可得第一周期内的至少两条传输链路分别对应的链路质量属性,以及确定第二周期内的数据包分别对应的传输需求信息,然后根据上述传输需求信息从上述至少两条传输链路中确定目标传输链路,用于传输第二周期内的数据包(或者数据包集合),具体过程为:以图5中的中转传输链路50为例叙述,首先对音频数据包、视频数据包以及冗余数据包的传输需求信息分别进行定义,如数据包的通信质量需求阈值、数据包的流量需求阈值、数据包的资源消耗需求阈值等,然后将中转传输链路50a的链路通信质量,与数据包的通信质量需求信息进行匹配,获取与数据包的质量匹配度,若质量匹配度大于通信质量需求阈值,则保留中转传输链路50a,若质量匹配度小于通信质量需求阈值,则不考虑中转传输链路50a;将中转传输链路50a的链路流量属性,与数据包的流量需求信息进行匹配,获取与数据包的流量匹配度;将中转传输链路50a的资源消耗属性,与数据包的资源消耗需求信息进行匹配,获取与数据包的资源匹配度;最后根据中转传输链路50a的质量匹配度、流量匹配度以及资源匹配度,确定中转传输链路50a与数据包的总匹配度;第一周期内的其他传输链路亦以上述过程分别确定与数据包的总匹配度,然后根据至少两条传输链路的总匹配度排名确定第二周期内的目标传输链路。若至少两条传输链路的总匹配度均小于匹配度阈值时,则在发送终端以及接收终端之间新增传输链路,并将新增传输链路确定为用于传输数据包的目标传输链路。
可选的,请参见图6,在已知音频数据包、视频数据包以及冗余数据包的传输需求信息后,基于优先级选择目标传输链路,以音频数据包为例进行叙述。当发送终端传输至接收终端的数据包为音频数据包时,vvoip应用先从需求栈集合(需求栈集合中包含各种属性数据对应的需求栈)中拷贝一份音频数据包对应的音频数据需求栈,从音频数据需求栈中选择第一需求信息,此时第一需求信息为高传输质量(请参见步骤s103),因此从上述至少两条传输链路中优先选择传输质量最高的传输链路,当此条件满足时,可以不考虑第二需求信息和余下的需求信息;当有两条以上的传输链路均满足第一需求信息时,保留满足第一需求信息的传输链路,称之为待选传输链路;将第一需求信息从音频数据需求栈中删除,并从音频数据需求栈中获取第二需求信息(第二需求信息为流量网络损耗小),然后根据第二需求信息,从上述待选传输链路中获取流量损耗最小的传输链路,当此条件满足时,可以不考虑余下的需求信息,将流量损耗最小的传输链路确定为目标传输链路;若待选传输链路中存在至少两条传输链路均流量损耗小,则将第二需求信息从音频数据需求栈中删除,然后根据第三需求信息去确定目标传输链路,直至剩下一条传输链路,将其确定为目标传输链路去传输上述音频数据包。
综上可得,在确定了数据包的传输需求信息后,vvoip系统会依据传输需求信息的优先级从传输链路池(至少两条传输链路)中选择一条目标传输链路发送该数据包,如果有两条或两条以上传输链路同时满足传输需求信息,那么重复操作,直到找到一条唯一的传输链路。
本申请实施例通过获取数据包,确定接收上述数据包的接收终端;然后确定上述发送终端以及上述接收终端之间的至少两条传输链路,进而获取上述至少两条传输链路分别对应的链路质量属性;同时获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;最后通过考虑上述传输需求信息以及上述链路质量属性,从至少两条传输链路中选择出目标传输链路。上述可知,本申请通过考虑不同属性的数据,其所需的传输要求会存在差异,因此将不同属性的数据所分别对应的传输需求信息,与链路质量属性结合,从而可以灵活决策使用目标传输链路传输当前数据包,进而可以合理地利用传输链路之间的网络资源,来提高数据传输质量。
进一步地,请参见图7,是本申请实施例提供的一种数据传输方法的流程示意图。如图7所示,上述方法可以包括:
步骤s201,当达到上述第二周期内的起始时间戳时,对上述至少两条传输链路分别发送上述测试数据包,获取上述至少两条传输链路传输上述测试数据包分别对应的链路测试质量。
具体的,请一并参见图5,如图5所示,中转传输链路50a、中转传输链路50b以及直连传输链路50d为活跃传输链路,直连传输链路50c为闲置传输链路。当上述活跃传输链路传输数据包时,虽然闲置传输链路处于闲置状态,但基于链路流量属性以及链路资源消耗属性,在确定下一周期的目标传输链路时,应该考虑闲置传输链路,特别是在活跃传输链路传输数据包不理想的情况下。故对图5中的四条传输链路分别发送测试数据包300,可以获取中转传输链路50a、中转传输链路50b、直连传输链路50d分别对应的链路测试质量,通过获取直连传输链路50c的连通性、丢包、延时等关键指标,获取其对应的链路测试质量,进而可以确定直连传输链路50c对应的链路网络节点是否成功连接,即确定发送终端20对应的路由器,与接收终端30对应的路由器是否能成功交换测试数据包300,或者说测试直连传输链路50c运行是否正常,网络是否畅通。
步骤s202,获取上述至少两条传输链路在上述起始时间戳分别对应的网络信号强度。
具体的,根据传输信道辅助功能接口,可以获取至少两条传输链路在上述第二周期起始时间戳分别对应的网络信号强度。
步骤s203,根据上述链路测试质量以及上述网络信号强度,评估上述至少两条传输链路分别对应的上述第一传输质量。上述第一传输质量
具体的,在每个传输周期内,发送终端传输数据的传输链路虽然只能根据数据包选择,但是仍然需要维持一些处于闲置状态的闲置传输链路,而通过对闲置传输链路发送测试数据包,即可以获取其对应的第一传输质量,又可以对其在闲置时间阈值内进行保活,即下一个传输周期,发送终端可以选择闲置传输链路传输数据包。
步骤s204,获取上述至少两条传输链路分别对应的链路历史通信质量;上述链路历史通信质量为上述至少两条传输链路在历史周期内传输第二历史数据包分别对应的链路通信质量。
具体的,考虑到网络质量的抖动性,在评估一条传输链路的链路通信质量时,vvoip系统会参考历史t个周期(过期淘汰,第t个周期相隔最久)的传输质量。
步骤s205,获取上述活跃传输链路传输上述第一历史数据包的传输质量集合,根据上述传输质量集合,确定上述活跃传输链路的平均传输质量。
具体的,请一并参见图8,是本申请实施例提供的一种数据传输的场景示意图。如图8所示,假设以2s为一个质量评估周期,在0s开始传输数据包,10s-12s为当前周期,即本申请实施例中的第二周期,8s-10s为本申请实施例中的第一周期,数据包20a为第二周期内传输的数据包,数据包250b为第一历史数据包,因为数据包周期比质量评估周期端,所以第一历史数据包为至少2个,例如数据包周期为50ms,则在8s-10s内,会生成120个数据包(包括40个音频数据包、40个视频数据包以及40个冗余数据包),根据传输第一历史数据包的传输质量集合,就可以确定活跃传输链路的平均传输质量。
步骤s206,将上述平均传输质量确定为上述活跃传输链路的上述第二传输质量。
具体的,以图5中的中转传输链路50a为例,在8s-10s内,中转传输链路50a可能传输40个视频数据包,每传输1个视频数据包,就对其进行一次第二质量评估,得到第二子传输质量,传输完40个视频数据包时,即第10s,可以对所有的第二子传输质量求平均传输质量,并将上述平均传输质量确定为第二传输质量。
步骤s207,根据上述第一传输质量以及上述第二传输质量,确定上述活跃传输链路的活跃链路子通信质量。
具体的,步骤s207的具体实现过程可以请参见上述图4中的步骤s102,此处不再进行赘述。
步骤s208,根据上述链路历史通信质量、上述活跃链路子通信质量、历史通信质量评估权重以及子通信质量评估权重确定上述活跃传输链路的上述链路通信质量。
具体的,由步骤s204-步骤s207可知,当前周期的链路通信质量不仅与第一周期的链路通信质量相关,也与链路历史通信质量相关。请一并参见图8,假设0s-2s为第四历史周期,且为起始周期,2s-4s为第三历史周期、4s-6s为第二历史周期、6s-8s为第一历史周期,8s-10s为第一周期,10s-12s为第二周期,即当前周期。以图5中的中转传输链路50a为例叙述,中转传输链路50a的第四历史链路通信质量(第四历史周期内的链路通信质量)是根据vvoip系统设置的初始链路通信质量、第四链路通信质量(根据中转传输链路50a传输历史视频数据包210b所确定)以及β4、β初始值确定,其中,β4为第四历史通信质量评估权重,β初始值为系统设置的初始权重;第三历史链路通信质量(第三历史周期内的链路通信质量),是根据第四历史链路通信质量、第三链路通信质量(根据中转传输链路50a传输历史视频数据包220b所确定)以及β4、β3确定,其中,β3为第三历史通信质量评估权重,并且β3>β4且β4 β3=1,同理,确定第二历史周期内的链路通信质量以及第一历史周期内的链路通信质量,参考4个历史周期,则第一周期内的链路通信质量由第四历史链路通信质量、第三历史链路通信质量、第二历史链路通信质量、第一历史链路通信质量、第一周期内的链路通信质量,以及上述4个历史链路通信质量分别对应的评估权重以及子通信质量评估权重确定。上述过程可以以公式(2)表述:
步骤s209,根据上述第一传输质量确定上述闲置传输链路的闲置链路子通信质量。
具体的,步骤s209的具体实现过程可以请参见上述图4中的步骤s102,此处不再进行赘述。
步骤s210,根据上述链路历史通信质量、上述闲置链路子通信质量、上述历史通信质量评估权重以及上述子通信质量评估权重确定上述闲置传输链路的上述链路通信质量
具体的,步骤s210的具体实现过程可以请参见上述步骤s208,此处不再进行赘述。
本申请实施例通过获取数据包,确定接收上述数据包的接收终端;然后确定上述发送终端以及上述接收终端之间的至少两条传输链路,进而获取上述至少两条传输链路分别对应的链路质量属性;同时获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;最后通过考虑上述传输需求信息以及上述链路质量属性,从至少两条传输链路中选择出目标传输链路。上述可知,本申请通过考虑不同属性的数据,其所需的传输要求会存在差异,因此将不同属性的数据所分别对应的传输需求信息,与链路质量属性结合,从而可以灵活决策使用目标传输链路传输当前数据包,进而可以合理地利用传输链路之间的网络资源,来提高数据传输质量。
请参见图9,是本申请实施例提供的一种数据传输装置的结构示意图。上述数据传输装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据传输装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该数据传输装置1可以包括:第一获取模块11、第一确定模块12、第二获取模块13以及第二确定模块14。
第一获取模块11,用于获取数据包;
第一确定模块12,用于确定发送终端以及接收终端之间的至少两条传输链路,获取上述至少两条传输链路分别对应的链路质量属性;
第二获取模块13,用于获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;
第二确定模块14,用于根据上述传输需求信息以及上述链路质量属性,从上述至少两条传输链路中确定用于传输上述数据包的目标传输链路。
其中,第一获取模块11、第一确定模块12、第二获取模块13以及第二确定模块14的具体功能实现方式可以参见上述图4对应实施例中的步骤s101-步骤s104,这里不再进行赘述。
再请参见图9,上述第二确定模块14可以包括:获取总匹配度单元141以及第一确定链路单元142。
获取总匹配度单元141,用于获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度;
第一确定链路单元142,用于根据上述总匹配度从上述至少两条传输链路中确定用于传输上述数据包的上述目标传输链路。
其中,获取总匹配度单元141以及第一确定链路单元142的具体功能实现方式可以参见上述图4对应实施例中的步骤s104,这里不再进行赘述。
再请参见图9,上述获取总匹配度单元141可以包括:第一获取子单元1411以及第二获取子单元1412。
第一获取子单元1411,用于获取上述通信质量需求信息与上述至少两条传输链路分别对应的上述链路通信质量之间的质量匹配度;
上述第一获取子单元1411,还用于获取上述流量需求信息与上述至少两条传输链路分别对应的上述链路流量属性之间的流量匹配度;
上述第一获取子单元1411,还用于获取上述资源消耗需求信息与上述至少两条传输链路分别对应的上述资源消耗属性之间的资源匹配度;
第二获取子单元1412,用于根据上述质量匹配度、上述流量匹配度以及上述资源匹配度,获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度。
其中,第一获取子单元1411以及第二获取子单元1412的具体功能实现方式可以参见上述图4对应实施例中的步骤s104,这里不再进行赘述。
再请参见图9,上述第二确定模块14可以具体用于根据上述至少两个需求信息在上述需求栈中的位置顺序,将每个需求信息依次与上述至少两条传输链路分别对应的上述链路质量属性进行匹配,直至确定上述至少两条传输链路中存在满足目标需求信息的上述目标传输链路,停止对上述需求栈中的需求信息匹配;上述目标需求信息属于上述需求栈。
其中,第二确定模块14的具体功能实现方式可以参见上述图4对应实施例中的步骤s104,这里不再进行赘述。
再请参见图9,上述第二确定模块14可以包括:获取匹配度单元143、选择链路单元144以及第二确定链路单元145。
获取匹配度单元143,用于从上述需求栈中获取上述需求信息ki,获取上述需求信息ki与上述至少两条传输链路分别对应的上述链路质量属性之间的第一匹配度;
选择链路单元144,用于根据上述第一匹配度在上述至少两条传输链路中,选择满足上述需求信息ki的传输链路;
第二确定链路单元145,用于若存在至少两条满足上述需求信息ki的传输链路,则确定满足上述需求信息ki的传输链路为待选传输链路;
上述获取匹配度单元143,还用于从上述需求栈中删除上述需求信息ki,获取上述需求信息ki 1,获取上述需求信息ki 1与上述待选传输链路分别对应的上述链路质量属性之间的第二匹配度;
上述选择链路单元144,还用于根据上述第二匹配度在上述待选传输链路中,选择满足上述需求信息ki 1的传输链路;
上述第二确定链路单元145,还用于若存在一个满足上述需求信息ki 1的传输链路,则确定满足上述需求信息ki 1的传输链路为用于传输上述数据包的上述目标传输链路,停止对上述需求栈中的需求信息匹配。
其中,获取匹配度单元143、选择链路单元144以及第二确定链路单元145的具体功能实现方式可以参见上述图4对应实施例中的步骤s104,这里不再进行赘述。
再请参见图9,上述第一获取模块12可以包括:获取通信质量单元121、获取流量属性单元122、获取资源消耗单元123以及确定质量属性单元124。
获取通信质量单元121,用于获取第一周期内的上述至少两条传输链路分别对应的上述链路通信质量;
获取流量属性单元122,用于获取上述第一周期内的上述至少两条传输链路分别对应的上述链路流量属性;
获取资源消耗单元123,用于获取上述第一周期内的上述至少两条传输链路分别对应的上述资源消耗属性;
确定质量属性单元124,用于根据上述链路通信质量、上述链路流量属性以及上述资源消耗属性,确定上述第一周期内的上述至少两条传输链路分别对应的上述链路质量属性;上述数据传输请求处于第二周期内,上述第一周期与上述第二周期为时间上连续的周期。
其中,获取通信质量单元121、获取流量属性单元122、获取资源消耗单元123以及确定质量属性单元124的具体功能实现方式可以参见上述图4对应实施例中的步骤s102,这里不再进行赘述。
再请参见图9,上述获取通信质量单元121可以包括:第一质量评估子单元1211、第二质量评估子单元1212以及确定通信质量子单元1213。
第一质量评估子单元1211,用于根据测试数据包对上述第一周期内的上述至少两条传输链路分别进行第一质量评估,得到上述至少两条传输链路分别对应的第一传输质量;
第二质量评估子单元1212,用于根据上述第一历史数据包对上述第一周期内的上述活跃传输链路进行第二质量评估,得到上述活跃传输链路的第二传输质量;
确定通信质量子单元1213,用于根据上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
其中,第一质量评估子单元1211、第二质量评估子单元1212以及确定通信质量子单元1213的具体功能实现方式可以参见上述图4对应实施例中的步骤s102,这里不再进行赘述。
再请参见图9,上述获取流量属性单元122可以包括:获取网络类型子单元1221以及确定流量属性子单元1222。
获取网络类型子单元1221,用于获取上述第一周期内的上述至少两条传输链路分别对应的网络接入类型;上述网络接入类型包括上述发送终端的网络接入类型以及上述接收终端的网络接入类型;
确定流量属性子单元1222,用于若上述至少两条传输链路包括第一传输链路,则确定上述第一传输链路为上述第一流量属性;上述第一传输链路对应的上述网络接入类型均为第一网络类型;
上述确定流量属性子单元1222,还用于若上述至少两条传输链路包括第二传输链路,则确定上述第二传输链路为上述第二流量属性;上述第二传输链路对应的上述网络接入类型均为第二网络类型;
上述确定流量属性子单元1222,还用于若上述至少两条传输链路包括第三传输链路,则确定上述第三传输链路为上述第三流量属性;上述第三传输链路对应的上述网络接入类型包括上述第一网络类型以及上述第二网络类型。
其中,获取网络类型子单元1221以及确定流量属性子单元1222的具体功能实现方式可以参见上述图4对应实施例中的步骤s102,这里不再进行赘述。
再请参见图9,上述获取资源属性单元123可以包括:确定中转子单元1231以及确定直连子单元1232。
确定中转子单元1231,用于将上述至少两条传输链路中包含中转节点的传输链路,确定为中转传输链路,为上述中转传输链路设置上述第一资源消耗属性;
确定直连子单元1232,用于将上述至少两条传输链路中不包含中转节点的传输链路,确定为直连传输链路,为上述直连传输链路设置上述第二资源消耗属性。
其中,确定中转子单元1231以及确定直连子单元1232的具体功能实现方式可以参见上述图4对应实施例中的步骤s102,这里不再进行赘述。
再请参见图9,上述第一质量评估子单元1211可以包括:获取测试质量子单元12111、获取信号强度子单元12112以及评估第一传输子单元12113。
获取测试质量子单元12111,用于当达到上述第二周期内的起始时间戳时,对上述至少两条传输链路分别发送上述测试数据包,获取上述至少两条传输链路传输上述测试数据包分别对应的链路测试质量;
获取信号强度子单元12112,用于获取上述至少两条传输链路在上述起始时间戳分别对应的网络信号强度;
评估第一传输子单元12113,用于根据上述链路测试质量以及上述网络信号强度,评估上述至少两条传输链路分别对应的上述第一传输质量。
其中,获取测试质量子单元12111、获取信号强度子单元12112以及评估第一传输子单元12113的具体功能实现方式可以参见上述图7对应实施例中的步骤s201-步骤s203,这里不再进行赘述。
再请参见图9,上述第二质量评估子单元1212可以包括:获取传输质量子单元12121以及确定第二传输子单元12122。
获取传输质量子单元12121,用于获取上述活跃传输链路传输上述第一历史数据包的传输质量集合,根据上述传输质量集合,确定上述活跃传输链路的平均传输质量;
确定第二传输子单元12122,用于将上述平均传输质量确定为上述活跃传输链路的上述第二传输质量。
其中,获取传输质量子单元12121以及确定第二传输子单元12122的具体功能实现方式可以参见上述图7对应实施例中的步骤s205-步骤s206,这里不再进行赘述。
再请参见图9,上述确定通信质量子单元1213可以包括:获取历史质量子单元12131以及确定链路质量子单元12132。
获取历史质量子单元12131,用于获取上述至少两条传输链路分别对应的链路历史通信质量;上述链路历史通信质量为上述至少两条传输链路在历史周期内传输第二历史数据包分别对应的链路通信质量;
确定链路质量子单元12132,用于根据上述链路历史通信质量、上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
其中,获取历史质量子单元12131以及确定链路质量子单元12132的具体功能实现方式可以参见上述图7对应实施例中的步骤204,这里不再进行赘述。
再请参见图9,上述确定链路质量子单元12132,具体用于根据上述第一传输质量以及上述第二传输质量,确定上述活跃传输链路的活跃链路通信质量;
上述确定链路质量子单元12132,具体用于根据上述链路历史通信质量、上述活跃链路通信质量、历史通信质量评估权重以及通信质量评估权重确定上述活跃传输链路的上述链路通信质量;
上述确定链路质量子单元12132,具体用于根据上述第一传输质量确定上述闲置传输链路的闲置链路通信质量;
上述确定链路质量子单元12132,具体用于根据上述链路历史通信质量、上述闲置链路通信质量、上述历史通信质量评估权重以及上述通信质量评估权重确定上述闲置传输链路的上述链路通信质量。
其中,确定链路质量子单元12132的具体功能实现方式可以参见上述图7对应实施例中的步骤s207-步骤s210,这里不再进行赘述。
再请参见图9,上述第二确定模块14还可以包括:新增链路单元145以及第三确定链路单元146。
新增链路单元145,用于当上述至少两条传输链路分别对应的上述总匹配度均小于匹配度阈值时,在上述发送终端以及上述接收终端之间增加中转节点,根据所增加的中转节点,创建新增传输链路;
第三确定链路单元146,用于将上述新增传输链路确定为用于传输上述数据包的上述目标传输链路。
其中,新增链路单元145以及第三确定链路单元146的具体功能实现方式可以参见上述图4对应实施例中的步骤s104,这里不再进行赘述。
再请参见图9,上述获取流量属性单元122还可以包括:增加链路子单元1223以及删除链路子单元1224。
增加链路子单元1223,用于若上述发送终端的网络接入类型或上述接收终端的网络接入类型增加,则根据所增加的网络接入类型,在上述发送终端以及上述接收终端之间增加传输链路;
删除链路子单元1224,用于若上述发送终端的网络接入类型或上述接收终端的网络接入类型减少,则根据所减少的网络接入类型,在上述发送终端以及上述接收终端之间删除传输链路。
其中,增加链路子单元1223以及删除链路子单元1224的具体功能实现方式可以参见上述图4对应实施例中的步骤s102,这里不再进行赘述。
再请参见图9,上述确定链路质量子单元12132,还具体用于当上述闲置传输链路连续处于闲置状态的时长大于闲置时间阈值时,删除上述闲置传输链路。
其中,确定链路质量子单元12132的具体功能实现方式可以参见上述图7对应实施例中的步骤s209,这里不再进行赘述。
本申请实施例通过获取数据包,确定接收上述数据包的接收终端;然后确定上述发送终端以及上述接收终端之间的至少两条传输链路,进而获取上述至少两条传输链路分别对应的链路质量属性;同时获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;最后通过考虑上述传输需求信息以及上述链路质量属性,从至少两条传输链路中选择出目标传输链路。上述可知,本申请通过考虑不同属性的数据,其所需的传输要求会存在差异,因此将不同属性的数据所分别对应的传输需求信息,与链路质量属性结合,从而可以灵活决策使用目标传输链路传输当前数据包,进而可以合理地利用传输链路之间的网络资源,来提高数据传输质量。
请参见图10,是本申请实施例提供的一种计算机设备的结构示意图。如图10所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(display)、键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是非易失性的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图10所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图10所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取数据包;
确定发送终端与接收终端之间的至少两条传输链路,获取上述至少两条传输链路分别对应的链路质量属性;
获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;
根据上述传输需求信息以及上述链路质量属性,从上述至少两条传输链路中确定用于传输上述数据包的目标传输链路。
在一个实施例中,上述处理器1001在执行根据上述传输需求信息以及上述链路质量属性,从上述至少两条传输链路中确定用于传输上述数据包的目标传输链路时,具体执行以下步骤:
获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度;
根据上述总匹配度从上述至少两条传输链路中确定用于传输上述数据包的上述目标传输链路。
在一个实施例中,上述传输需求信息包括通信质量需求信息、流量需求信息以及资源消耗需求信息;上述链路质量属性包括链路通信质量、链路流量属性以及资源消耗属性;
上述处理器1001在执行获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度时,具体执行以下步骤:
获取上述通信质量需求信息与上述至少两条传输链路分别对应的上述链路通信质量之间的质量匹配度;
获取上述流量需求信息与上述至少两条传输链路分别对应的上述链路流量属性之间的流量匹配度;
获取上述资源消耗需求信息与上述至少两条传输链路分别对应的上述资源消耗属性之间的资源匹配度;
根据上述质量匹配度、上述流量匹配度以及上述资源匹配度,获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度。
在一个实施例中,上述传输需求信息为需求栈,上述需求栈包括至少两个需求信息;
上述处理器1001在执行根据上述传输需求信息以及上述链路质量属性,从上述至少两条传输链路中确定用于传输上述数据包的目标传输链路时,具体执行以下步骤:
根据上述至少两个需求信息在上述需求栈中的位置顺序,将每个需求信息依次与上述至少两条传输链路分别对应的上述链路质量属性进行匹配,直至确定上述至少两条传输链路中存在满足目标需求信息的上述目标传输链路,停止对上述需求栈中的需求信息匹配;上述目标需求信息属于上述需求栈。
在一个实施例中,上述需求栈包括需求信息ki和需求信息ki 1,且上述需求信息ki在上述需求栈中的位置,位于需求信息ki 1在上述需求栈中的位置之前,i为正整数;
上述处理器1001在执行根据上述至少两个需求信息在上述需求栈中的位置顺序,将每个需求信息依次与上述至少两条传输链路分别对应的上述链路质量属性进行匹配,直至确定上述至少两条传输链路中存在满足目标需求信息的上述目标传输链路,停止对上述需求栈中的需求信息匹配;上述目标需求信息属于上述需求栈时,具体执行以下步骤:
从上述需求栈中获取上述需求信息ki,获取上述需求信息ki与上述至少两条传输链路分别对应的上述链路质量属性之间的第一匹配度;
根据上述第一匹配度在上述至少两条传输链路中,选择满足上述需求信息ki的传输链路;
若存在至少两条满足上述需求信息ki的传输链路,则确定满足上述需求信息ki的传输链路为待选传输链路;
从上述需求栈中删除上述需求信息ki,获取上述需求信息ki 1,获取上述需求信息ki 1与上述待选传输链路分别对应的上述链路质量属性之间的第二匹配度;
根据上述第二匹配度在上述待选传输链路中,选择满足上述需求信息ki 1的传输链路;
若存在一个满足上述需求信息ki 1的传输链路,则确定满足上述需求信息ki 1的传输链路为用于传输上述数据包的上述目标传输链路,停止对上述需求栈中的需求信息匹配。
在一个实施例中,上述处理器1001在执行获取上述至少两条传输链路分别对应的链路质量属性时,具体执行以下步骤:
获取第一周期内的上述至少两条传输链路分别对应的上述链路通信质量;
获取上述第一周期内的上述至少两条传输链路分别对应的上述链路流量属性;
获取上述第一周期内的上述至少两条传输链路分别对应的上述资源消耗属性;
根据上述链路通信质量、上述链路流量属性以及上述资源消耗属性,确定上述第一周期内的上述至少两条传输链路分别对应的上述链路质量属性;上述数据传输请求处于第二周期内,上述第一周期与上述第二周期为时间上连续的周期。
在一个实施例中,上述第一周期内的上述至少两条传输链路包括活跃传输链路,上述活跃传输链路是指在上述第一周期内传输第一历史数据包的链路;
上述处理器1001在执行获取第一周期内的上述至少两条传输链路分别对应的上述链路通信质量时,具体执行以下步骤:
根据测试数据包对上述第一周期内的上述至少两条传输链路分别进行第一质量评估,得到上述至少两条传输链路分别对应的第一传输质量;
根据上述第一历史数据包对上述第一周期内的上述活跃传输链路进行第二质量评估,得到上述活跃传输链路的第二传输质量;
根据上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
在一个实施例中,上述链路流量属性包括第一流量属性、第二流量属性以及第三流量属性;
上述处理器1001在执行获取上述第一周期内的上述至少两条传输链路分别对应的上述链路流量属性时,具体执行以下步骤:
获取上述第一周期内的上述至少两条传输链路分别对应的网络接入类型;上述网络接入类型包括上述发送终端的网络接入类型以及上述接收终端的网络接入类型;
若上述至少两条传输链路包括第一传输链路,则确定上述第一传输链路为上述第一流量属性;上述第一传输链路对应的上述网络接入类型均为第一网络类型;
若上述至少两条传输链路包括第二传输链路,则确定上述第二传输链路为上述第二流量属性;上述第二传输链路对应的上述网络接入类型均为第二网络类型;
若上述至少两条传输链路包括第三传输链路,则确定上述第三传输链路为上述第三流量属性;上述第三传输链路对应的上述网络接入类型包括上述第一网络类型以及上述第二网络类型。
在一个实施例中,上述资源消耗属性包括第一资源消耗属性和第二资源消耗属性;
上述处理器1001在执行获取上述第一周期内的上述至少两条传输链路分别对应的上述资源消耗属性时,具体执行以下步骤:
将上述至少两条传输链路中包含中转节点的传输链路,确定为中转传输链路,为上述中转传输链路设置上述第一资源消耗属性;
将上述至少两条传输链路中不包含中转节点的传输链路,确定为直连传输链路,为上述直连传输链路设置上述第二资源消耗属性。
在一个实施例中,上述处理器1001在执行根据测试数据包对上述第一周期内的上述至少两条传输链路分别进行第一质量评估,得到上述至少两条传输链路分别对应的第一传输质量时,具体执行以下步骤:
当达到上述第二周期内的起始时间戳时,对上述至少两条传输链路分别发送上述测试数据包,获取上述至少两条传输链路传输上述测试数据包分别对应的链路测试质量;
获取上述至少两条传输链路在上述起始时间戳分别对应的网络信号强度;
根据上述链路测试质量以及上述网络信号强度,评估上述至少两条传输链路分别对应的上述第一传输质量。
在一个实施例中,上述处理器1001在执行根据上述第一历史数据包对上述第一周期内的上述活跃传输链路进行第二质量评估,得到上述活跃传输链路的第二传输质量时,具体执行以下步骤:
获取上述活跃传输链路传输上述第一历史数据包的传输质量集合,根据上述传输质量集合,确定上述活跃传输链路的平均传输质量;
将上述平均传输质量确定为上述活跃传输链路的上述第二传输质量。
在一个实施例中,上述处理器1001在执行根据上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量时,具体执行以下步骤:
获取上述至少两条传输链路分别对应的链路历史通信质量;上述链路历史通信质量为上述至少两条传输链路在历史周期内传输第二历史数据包分别对应的链路通信质量;
根据上述链路历史通信质量、上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量。
在一个实施例中,上述第一周期内的上述至少两条传输链路还包括闲置传输链路,上述闲置传输链路是指在上述第一周期内处于闲置状态的传输链路;
上述处理器1001在执行根据上述链路历史通信质量、上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量时,具体执行以下步骤:
根据上述第一传输质量以及上述第二传输质量,确定上述活跃传输链路的活跃链路通信质量;
根据上述链路历史通信质量、上述活跃链路通信质量、历史通信质量评估权重以及通信质量评估权重确定上述活跃传输链路的上述链路通信质量;
根据上述第一传输质量确定上述闲置传输链路的闲置链路通信质量;
根据上述链路历史通信质量、上述闲置链路通信质量、上述历史通信质量评估权重以及上述通信质量评估权重确定上述闲置传输链路的上述链路通信质量。
在一个实施例中,上述处理器1001在执行获取上述传输需求信息与上述至少两条传输链路分别对应的上述链路质量属性之间的总匹配度时,具体还执行以下步骤:
当上述至少两条传输链路分别对应的上述总匹配度均小于匹配度阈值时,在上述发送终端以及上述接收终端之间增加中转节点,根据所增加的中转节点,创建新增传输链路;
将上述新增传输链路确定为用于传输上述数据包的上述目标传输链路。
在一个实施例中,上述处理器1001在执行获取上述第一周期内的上述至少两条传输链路分别对应的上述链路流量属性时,具体还执行以下步骤:
若上述发送终端的网络接入类型或上述接收终端的网络接入类型增加,则根据所增加的网络接入类型,在上述发送终端以及上述接收终端之间增加传输链路;
若上述发送终端的网络接入类型或上述接收终端的网络接入类型减少,则根据所减少的网络接入类型,在上述发送终端以及上述接收终端之间删除传输链路。
上述处理器1001在执行根据上述链路历史通信质量、上述第一传输质量以及上述第二传输质量,确定上述至少两条传输链路分别对应的上述链路通信质量时,具体还执行以下步骤:
当上述闲置传输链路连续处于闲置状态的时长大于闲置时间阈值时,删除上述闲置传输链路。
本申请实施例通过获取数据包,确定接收上述数据包的接收终端;然后确定上述发送终端以及上述接收终端之间的至少两条传输链路,进而获取上述至少两条传输链路分别对应的链路质量属性;同时获取上述数据包对应的数据属性,根据上述数据属性获取上述数据包对应的传输需求信息;最后通过考虑上述传输需求信息以及上述链路质量属性,从至少两条传输链路中选择出目标传输链路。上述可知,本申请通过考虑不同属性的数据,其所需的传输要求会存在差异,因此将不同属性的数据所分别对应的传输需求信息,与链路质量属性结合,从而可以灵活决策使用目标传输链路传输当前数据包,进而可以合理地利用传输链路之间的网络资源,来提高数据传输质量。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据传输装置1所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图4或图7对应实施例中对上述数据传输方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁盘、光盘、只读存储器(read-onlymemory,rom)或随机存储器(randomaccessmemory,ram)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
1.一种数据传输方法,其特征在于,所述方法包括:
获取数据包;
确定发送终端与接收终端之间的至少两条传输链路,获取所述至少两条传输链路分别对应的链路质量属性;
获取所述数据包对应的数据属性,根据所述数据属性获取所述数据包对应的传输需求信息;
根据所述传输需求信息以及所述链路质量属性,从所述至少两条传输链路中确定用于传输所述数据包的目标传输链路。
2.根据权利要求1所述的方法,其特征在于,所述根据所述传输需求信息以及所述链路质量属性,从所述至少两条传输链路中确定用于传输所述数据包的目标传输链路,包括:
获取所述传输需求信息与所述至少两条传输链路分别对应的所述链路质量属性之间的总匹配度;
根据所述总匹配度从所述至少两条传输链路中确定用于传输所述数据包的所述目标传输链路。
3.根据权利要求2所述的方法,其特征在于,所述传输需求信息包括通信质量需求信息、流量需求信息以及资源消耗需求信息;所述链路质量属性包括链路通信质量、链路流量属性以及资源消耗属性;
所述获取所述传输需求信息与所述至少两条传输链路分别对应的所述链路质量属性之间的总匹配度,包括:
获取所述通信质量需求信息与所述至少两条传输链路分别对应的所述链路通信质量之间的质量匹配度;
获取所述流量需求信息与所述至少两条传输链路分别对应的所述链路流量属性之间的流量匹配度;
获取所述资源消耗需求信息与所述至少两条传输链路分别对应的所述资源消耗属性之间的资源匹配度;
根据所述质量匹配度、所述流量匹配度以及所述资源匹配度,获取所述传输需求信息与所述至少两条传输链路分别对应的所述链路质量属性之间的总匹配度。
4.根据权利要求1所述的方法,其特征在于,所述传输需求信息为需求栈,所述需求栈包括至少两个需求信息;
所述根据所述传输需求信息以及所述链路质量属性,从所述至少两条传输链路中确定用于传输所述数据包的目标传输链路,包括:
根据所述至少两个需求信息在所述需求栈中的位置顺序,将每个需求信息依次与所述至少两条传输链路分别对应的所述链路质量属性进行匹配,直至确定所述至少两条传输链路中存在满足目标需求信息的所述目标传输链路,停止对所述需求栈中的需求信息匹配;所述目标需求信息属于所述需求栈。
5.根据权利要求4所述的方法,其特征在于,所述需求栈包括需求信息ki和需求信息ki 1,且所述需求信息ki在所述需求栈中的位置,位于需求信息ki 1在所述需求栈中的位置之前,i为正整数;
所述根据所述至少两个需求信息在所述需求栈中的位置顺序,将每个需求信息依次与所述至少两条传输链路分别对应的所述链路质量属性进行匹配,直至确定所述至少两条传输链路中存在满足目标需求信息的所述目标传输链路,停止对所述需求栈中的需求信息匹配,包括:
从所述需求栈中获取所述需求信息ki,获取所述需求信息ki与所述至少两条传输链路分别对应的所述链路质量属性之间的第一匹配度;
根据所述第一匹配度在所述至少两条传输链路中,选择满足所述需求信息ki的传输链路;
若存在至少两条满足所述需求信息ki的传输链路,则确定满足所述需求信息ki的传输链路为待选传输链路;
从所述需求栈中删除所述需求信息ki,获取所述需求信息ki 1,获取所述需求信息ki 1与所述待选传输链路分别对应的所述链路质量属性之间的第二匹配度;
根据所述第二匹配度在所述待选传输链路中,选择满足所述需求信息ki 1的传输链路;
若存在一个满足所述需求信息ki 1的传输链路,则确定满足所述需求信息ki 1的传输链路为用于传输所述数据包的所述目标传输链路,停止对所述需求栈中的需求信息匹配。
6.根据权利要求1所述的方法,其特征在于,所述获取所述至少两条传输链路分别对应的链路质量属性,包括:
获取第一周期内的所述至少两条传输链路分别对应的所述链路通信质量;
获取所述第一周期内的所述至少两条传输链路分别对应的所述链路流量属性;
获取所述第一周期内的所述至少两条传输链路分别对应的所述资源消耗属性;
根据所述链路通信质量、所述链路流量属性以及所述资源消耗属性,确定所述第一周期内的所述至少两条传输链路分别对应的所述链路质量属性;所述数据传输请求处于第二周期内,所述第一周期与所述第二周期为时间上连续的周期。
7.根据权利要求6所述的方法,其特征在于,所述第一周期内的所述至少两条传输链路包括活跃传输链路,所述活跃传输链路是指在所述第一周期内传输第一历史数据包的链路;
所述获取第一周期内的所述至少两条传输链路分别对应的所述链路通信质量,包括:
根据测试数据包对所述第一周期内的所述至少两条传输链路分别进行第一质量评估,得到所述至少两条传输链路分别对应的第一传输质量;
根据所述第一历史数据包对所述第一周期内的所述活跃传输链路进行第二质量评估,得到所述活跃传输链路的第二传输质量;
根据所述第一传输质量以及所述第二传输质量,确定所述至少两条传输链路分别对应的所述链路通信质量。
8.根据权利要求6所述的方法,其特征在于,所述链路流量属性包括第一流量属性、第二流量属性以及第三流量属性;
所述获取所述第一周期内的所述至少两条传输链路分别对应的所述链路流量属性,包括:
获取所述第一周期内的所述至少两条传输链路分别对应的网络接入类型;所述网络接入类型包括所述发送终端的网络接入类型以及所述接收终端的网络接入类型;
若所述至少两条传输链路包括第一传输链路,则确定所述第一传输链路为所述第一流量属性;所述第一传输链路对应的所述网络接入类型均为第一网络类型;
若所述至少两条传输链路包括第二传输链路,则确定所述第二传输链路为所述第二流量属性;所述第二传输链路对应的所述网络接入类型均为第二网络类型;
若所述至少两条传输链路包括第三传输链路,则确定所述第三传输链路为所述第三流量属性;所述第三传输链路对应的所述网络接入类型包括所述第一网络类型以及所述第二网络类型。
9.根据权利要求6所述的方法,其特征在于,所述资源消耗属性包括第一资源消耗属性和第二资源消耗属性;
所述获取所述第一周期内的所述至少两条传输链路分别对应的所述资源消耗属性,包括:
将所述至少两条传输链路中包含中转节点的传输链路,确定为中转传输链路,为所述中转传输链路设置所述第一资源消耗属性;
将所述至少两条传输链路中不包含中转节点的传输链路,确定为直连传输链路,为所述直连传输链路设置所述第二资源消耗属性。
10.根据权利要求7所述的方法,其特征在于,所述根据测试数据包对所述第一周期内的所述至少两条传输链路分别进行第一质量评估,得到所述至少两条传输链路分别对应的第一传输质量,包括:
当达到所述第二周期内的起始时间戳时,对所述至少两条传输链路分别发送所述测试数据包,获取所述至少两条传输链路传输所述测试数据包分别对应的链路测试质量;
获取所述至少两条传输链路在所述起始时间戳分别对应的网络信号强度;
根据所述链路测试质量以及所述网络信号强度,评估所述至少两条传输链路分别对应的所述第一传输质量。
11.根据权利要求7所述的方法,其特征在于,所述根据所述第一历史数据包对所述第一周期内的所述活跃传输链路进行第二质量评估,得到所述活跃传输链路的第二传输质量,包括:
获取所述活跃传输链路传输所述第一历史数据包的传输质量集合,根据所述传输质量集合,确定所述活跃传输链路的平均传输质量;
将所述平均传输质量确定为所述活跃传输链路的所述第二传输质量。
12.根据权利要求7所述的方法,其特征在于,所述根据所述第一传输质量以及所述第二传输质量,确定所述至少两条传输链路分别对应的所述链路通信质量,包括:
获取所述至少两条传输链路分别对应的链路历史通信质量;所述链路历史通信质量为所述至少两条传输链路在历史周期内传输第二历史数据包分别对应的链路通信质量;
根据所述链路历史通信质量、所述第一传输质量以及所述第二传输质量,确定所述至少两条传输链路分别对应的所述链路通信质量。
13.根据权利要求12所述的方法,其特征在于,所述第一周期内的所述至少两条传输链路还包括闲置传输链路,所述闲置传输链路是指在所述第一周期内处于闲置状态的传输链路;
所述根据所述链路历史通信质量、所述第一传输质量以及所述第二传输质量,确定所述至少两条传输链路分别对应的所述链路通信质量,包括:
根据所述第一传输质量以及所述第二传输质量,确定所述活跃传输链路的活跃链路通信质量;
根据所述链路历史通信质量、所述活跃链路通信质量、历史通信质量评估权重以及通信质量评估权重确定所述活跃传输链路的所述链路通信质量;
根据所述第一传输质量确定所述闲置传输链路的闲置链路通信质量;
根据所述链路历史通信质量、所述闲置链路通信质量、所述历史通信质量评估权重以及所述通信质量评估权重确定所述闲置传输链路的所述链路通信质量。
14.一种计算机设备,其特征在于,包括:处理器、存储器以及网络接口;
所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供数据通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1至13中任一项所述方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至13中任一项所述方法的步骤。
技术总结