掌桥专利:专业的专利平台
掌桥专利
首页

一种云游戏中网络带宽智能感知分配方法及装置

文献发布时间:2024-04-18 20:01:55


一种云游戏中网络带宽智能感知分配方法及装置

技术领域

本申请属于网络优化领域,尤其涉及一种云游戏中网络带宽智能感知分配方法及装置。

背景技术

云游戏在部分场景下需要进行资源下载,这会占用网络带宽,导致串流延迟和卡顿,影响游戏体验。为了解决所述问题,目前有两种解决方案。

第一种解决方案是进行带宽预测后限速下载。具体来说,就是通过测量用户的网络带宽,预测可用的下载速度,并限制下载速度以避免占用过多带宽。然而,这种方法需要等待较长的测速流程才能开启游戏,用户体验不佳。

第二种解决方案是固定限速。这种方法是在下载过程中设置一个固定的下载速度限制,以避免占用过多带宽。然而,这种方法无法充分覆盖真实场景。固定值可能存在小于用户实际带宽,甚至可能大于用户的带宽(部分用户所在地市网络基建很差)。当设置值小于用户带宽时,无法充分利用用户的实际带宽,会导致下载速度低于用户网络的实际能力,从而造成资源浪费,当设置值大于用户实际可用带宽时,又会挤压串流带宽,造成卡顿,影响游戏体验。

发明内容

本申请的目的在于克服现有技术中存在的问题,提供一种云游戏中网络带宽智能感知分配方法及装置。

本申请提供一种云游戏中网络带宽智能感知分配方法,包括:

通过调用TrafficStats.getTotalRxBytes()接收的总字节量,确定网络环境的下行峰值带宽;

根据网络的丢包率和延迟确定网络质量系数;

根据所述下行峰值带宽、网络质量系数以及云游戏的串流需求和冗余系数,动态分配下载网速。

可选地,确定网络环境的下行峰值带宽,包括:

每200ms感知一次下行带宽,当所述下行带宽波动在20%以内的波动范围,且连续8次处于波动范围内,将最大所述下行宽带设置为下行峰值带宽;

还包括:

当切换网络环境时,根据上述步骤重新确定所述下行峰值带宽。

可选地,动态分配下载网速,包括:

所述网络质量降低时,所述下载网速根据所述下行峰值带宽进行变化的表达式如下:

其中,DS是下载网速,MaxDS是下行峰值带宽,RTSBandwidth是串流需求,RF是冗余系数,OARR是其他应用预留宽带的比例,NQF是网络质量系数。

可选地,动态分配下载网速,包括:

所述网络质量升高时,所述下载网速根据所述下行峰值带宽进行变化的表达式如下:

DS=MaxDS*网速缓升比例;

网速缓升比例=上一秒的网速缓升比例+x

其中,x预设的系数值,每秒钟涨0.1,10秒钟时涨到1,actor=5.82。

可选地,所述网速缓升比例的变化趋势,包括:

从0开始,且10s时等于1。

本申请还提供一种云游戏中网络带宽智能感知分配装置,包括:

下行检测模块,用于通过调用TrafficStats.getTotalRxBytes()接收的总字节量,确定网络环境的下行峰值带宽;

质量系数模块,用于根据网络的丢包率和延迟确定网络质量系数;

动态分配模块,用于根据所述下行峰值带宽、网络质量系数以及云游戏的串流需求和冗余系数,动态分配下载网速。

可选地,所述下行检测模块确定网络环境的下行峰值带宽,包括:

每200ms感知一次下行带宽,当所述下行带宽波动在20%以内的波动范围,且连续8次处于波动范围内,将最大所述下行宽带设置为下行峰值带宽;

还包括:

当切换网络环境时,根据上述步骤重新确定所述下行峰值带宽。

可选地,所述动态分配模块动态分配下载网速,包括:

下行实时网速降低时,所述下载网速根据所述下行峰值带宽进行变化的表达式如下:

其中,DS是下载网速,MaxDS是下行峰值带宽,RTSBandwidth是串流需求,RF是冗余系数,OARR是其他应用预留宽带的比例,NQF是网络质量系数。

可选地,所述动态分配模块动态分配下载网速,包括:

所述下行峰值带升高时,所述下载网速根据所述下行峰值带宽进行变化的表达式如下:

DS=MaxDS*网速缓升比例;

网速缓升比例=上一秒的网速缓升比例+x

其中,x预设的系数值,每秒钟涨0.1,10秒钟时涨到1,actor=5.82。

可选地,所述网速缓升比例的变化趋势,包括:

从0开始,且10s时等于1。

本申请的优点和有益效果:

本申请提供的一种云游戏中网络带宽智能感知分配方法,包括:通过调用TrafficStats.getTotalRxBytes()接收的总字节量,确定网络环境的下行峰值带宽;根据网络的丢包率和延迟确定网络质量系数;根据所述下行峰值带宽、网络质量系数以及云游戏的串流需求和冗余系数,动态分配下载网速。本申请基于单位时间内的总字节量确定全局下行峰值带宽,提高了网速获取速度。并且基于网络条件动态分配下载网速,既可充分利用宽带,也能避免下载速度低于用户实际带宽,提高了云游戏的串流体验,缩短用户下载时间,提高用户体验。

附图说明

图1是本申请中游戏串流和内容下载关系示意图。

图2是本申请中云游戏中网络带宽智能感知分配流程示意图。

图3是本申请中云游戏中网络带宽智能感知分配装置示意图。

具体实施方式

下面结合附图和具体实施例对本申请作进一步说明,以使本领域的技术人员更好地理解本申请并能予以实施。

以下内容均是为了详细说明本申请要保护的技术方案所提供的具体实施过程的示例,但是本申请还采用不同于此的描述的其他方式实施,本领域技术人员在本申请构思的指引下,采用不同的技术手段实现本申请,因此本申请不受下面具体实施例的限制。

如图1所示,在云游戏的某些业务场景下,玩家可能需要边玩游戏边下载一些资源,比如原生游戏或其他相关资源。

这些下载操作会消耗大量的网络带宽,可能会影响云游戏的流畅性和实时性,导致串流延迟和卡顿等问题。为了确保云游戏的顺畅体验,需要采取有效的措施来管理和优化网络带宽的使用,避免下载操作对游戏性能产生负面影响。

本申请提供的一种云游戏中网络带宽智能感知分配方法,包括:通过调用TrafficStats.getTotalRxBytes()接收的总字节量,确定网络环境的下行峰值带宽;根据网络的丢包率和延迟确定网络质量系数;根据所述下行峰值带宽、网络质量系数以及云游戏的串流需求和冗余系数,动态分配下载网速。本申请基于单位时间内的总字节量确定全局下行峰值带宽,提高了网速获取速度。并且基于网络条件动态分配下载网速,即可充分利用宽带,也能避免下载速度低于用户实际带宽,提高了云游戏的网络体验。

图2是本申请中云游戏中网络带宽智能感知分配流程示意图。

请参照图2所示,云游戏中网络带宽智能感知分配方法的步骤,包括:

S101通过调用TrafficStats.getTotalRxBytes()接收的总字节量,确定网络环境的下行峰值带宽。

使用TrafficStats.getTotalRxBytes()方法,获取手机的全局下行峰值带宽,每200毫秒感知一次。

具体的,当网速波动在某个范围内时,认为的最大网速已经趋于稳定。这个波动的范围是±20%。

经过测算,网速从初始的0KB/s提升到稳定的最大带宽,大约需要2-3秒的时间。再加上每200毫秒检测一次波动范围是否合格,总共需要3-5秒的时间来感知的最大网络带宽。这段时间内,用户尚未开始操作游戏。

从用户打开云游戏并开始渲染画面,到用户能够进行游戏操作,最快也需要10秒左右的时间。在这10秒后,用户的游戏操作和游戏画面的渲染都必须保证流畅,不出现卡顿。

TrafficStats.getTotalRxBytes()是Android操作系统中提供的一个方法,用于获取设备的全局接收字节数。这个方法通常用于网络流量的统计和监控。通过调用这个方法,获取到设备在时间点已经接收到的总字节数,从而计算出下行峰值带宽。

具体的,在200毫秒的间隔内感知手机的全局下行峰值带宽,使用一个定时器或者循环,每隔200毫秒调用一次TrafficStats.getTotalRxBytes()方法,获取到的总接收字节数。然后,将相邻两次获取到的总接收字节数相减,得到在这200毫秒内接收到的字节数,再除以时间间隔(200毫秒),就得到这段时间内的平均下行带宽。经过8次下行宽带检测,当所述下行宽带的波动在20%以内的波动范围,则将这8次检测中的最大宽带设为下行峰值宽带。本申请中,Traff icStats.getTotalRxBytes()方法获取到的是设备的全局接收字节数,不仅包括正在使用的应用程序的流量,还包括系统和其他应用程序的流量。因此,计算出的下行峰值带宽是设备的全局网速,而不是某个特定应用程序的网速。

S102根据网络的丢包率和延迟确定网络质量系数。

向网络中发送一定数量的数据包。所述数据包是特定大小和数据结构的,以便更好地模拟实际网络流量。

计算未能成功接收到的数据包的比例,所述比例就是丢包率。丢包率越高,说明网络在传输数据过程中丢失的数据越多,网络质量越差。

在发送数据包的同时,记录每个数据包从发送端到接收端所需的时间。所述时间就是延迟。延迟越长,说明数据包在网络中传输的时间越长,网络质量越差。

将丢包率和延迟按照一定的权重进行计算,得到一个综合评估网络质量的系数。所述系数反映网络的整体稳定性和性能。

一个具体的例子:

将丢包率和延迟分别赋予一定的权重,然后将两者的加权和作为网络质量系数。权重的分配根据实际应用场景和需求进行调整,以更好地反映网络质量的实际情况。

S103根据所述下行峰值带宽、网络质量系数以及云游戏的串流需求和冗余系数,动态分配下载网速。

所述动态分布,根据下行峰值带宽的降低或者升高采取不同的分配策略。

当网络质量降低时,下载网速会根据网络条件的变化进行相应的调整。具体的表达式如下:

其中,DS表示下载网速,MaxDS表示的下行峰值带宽,RTSBandwidth表示云游戏的串流需求带宽,RF表示冗余系数,OARR表示其他应用预留带宽的比例,NQF表示网络质量系数。

所述表达式的含义是,在下行峰值带宽降低的情况下,下载网速会根据网络条件的变化进行相应的调整。具体来说,它会根据云游戏的串流需求和冗余系数,以及其他应用预留带宽的比例和网络质量系数,来计算出一个合适的下载网速。

所述表达式通过开方使浮点数变大,从而起到放大效果,使得限速值在网络质量变差时快速降低。

所述网络质量升高时,所述下载网速根据所述下行峰值带宽进行变化的表达式如下:

DS=MaxDS*网速缓升比例;

网速缓升比例=上一秒的网速缓升比例+x

其中,x预设的系数值,每秒钟涨0.1,10秒钟时涨到1,actor=5.82。

下行峰值带宽其中,actor=5.82。通过调整actor的值,控制下载网速的增加速度。当actor的值较小时,下载网速会增加得较快;当actor的值较大时,下载网速会增加得较慢。这种调整方式根据网络条件和云游戏的实际需求来进行动态调整,以满足不同场景下的性能要求。

具体的,网速缓升比例是一个累加的过程,网速缓升比例从0到1(恢复原先限速大小),1s左右累加一次,10s时等于1。网速缓升比例每秒的点连起来形状是一个缓升的抛物线。

由于弱网下一般伴随着网络抖动,本申请通过缓升可以有效对抗网络抖动。避免突然恢复下载时对网络造成冲击。缓升可以给网络恢复预留足够的时间。

本申请还提供一种云游戏中网络带宽智能感知分配装置。

图3是本申请中一种云游戏中网络带宽智能感知分配装置。

如图3所示,一种云游戏中网络带宽智能感知分配装置,包括:

下行检测模块301,用于通过调用TrafficStats.getTotalRxBytes()(参考上述,需着重描述获取策略)接收的总字节量,确定网络环境的下行峰值带宽。

使用TrafficStats.getTotalRxBytes()方法,获取手机的全局下行峰值带宽,每200毫秒感知一次。

当网速波动在某个范围内时,认为的最大网速已经趋于稳定。这个波动的范围是±20%。

经过测算,网速从初始的0KB/s提升到稳定的最大带宽,大约需要2-3秒的时间。再加上每200毫秒检测一次波动范围是否合格,总共需要3-5秒的时间来感知的最大网络带宽。这段时间内,用户尚未开始操作游戏。

从用户打开云游戏并开始渲染画面,到用户能够进行游戏操作,最快也需要10秒左右的时间。在这10秒后,用户的游戏操作和游戏画面的渲染都必须保证流畅,不出现卡顿。

TrafficStats.getTotalRxBytes()(参考上述,需着重描述获取策略)是Androi d操作系统中提供的一个方法,用于获取设备的全局接收字节数。这个方法通常用于网络流量的统计和监控。通过调用这个方法,获取到设备在时间点已经接收到的总字节数,从而计算出下行峰值带宽。

具体的,在200毫秒的间隔内感知手机的全局下行峰值带宽,使用一个定时器或者循环,每隔200毫秒调用一次TrafficStats.getTotalRxBytes()方法,获取到的总接收字节数。然后,将相邻两次获取到的总接收字节数相减,得到在这200毫秒内接收到的字节数,再除以时间间隔(200毫秒),就得到这段时间内的平均下行带宽。经过8次下行宽带检测,当所述下行宽带的波动在20%以内的波动范围,则将这8次检测中的最大宽带设为下行峰值宽带。

本申请中,TrafficStats.getTotalRxBytes()方法获取到的是设备的全局接收字节数,不仅包括正在使用的应用程序的流量,还包括系统和其他应用程序的流量。因此,计算出的下行峰值带宽是设备的全局网速,而不是某个特定应用程序的网速。

质量系数模块302,用于根据网络的丢包率和延迟确定网络质量系数。

向网络中发送一定数量的数据包。所述数据包是特定大小和数据结构的,以便更好地模拟实际网络流量。

计算未能成功接收到的数据包的比例,所述比例就是丢包率。丢包率越高,说明网络在传输数据过程中丢失的数据越多,网络质量越差。

在发送数据包的同时,记录每个数据包从发送端到接收端所需的时间。所述时间就是延迟。延迟越长,说明数据包在网络中传输的时间越长,网络质量越差。

将丢包率和延迟按照一定的权重进行计算,得到一个综合评估网络质量的系数。所述系数反映网络的整体稳定性和性能。

一个具体的例子:

将丢包率和延迟分别赋予一定的权重,然后将两者的加权和作为网络质量系数。权重的分配根据实际应用场景和需求进行调整,以更好地反映网络质量的实际情况。

动态分配模块303,用于根据所述下行峰值带宽、网络质量系数以及云游戏的串流需求和冗余系数,动态分配下载网速。

所述动态分布,根据下行峰值带宽的降低或者升高采取不同的分配策略。

当下行实时网速降低时,下载网速会根据网络条件的变化进行相应的调整。具体的表达式如下:

其中,DS表示下载网速,MaxDS表示的下行峰值带宽,RTSBandwidth表示云游戏的串流需求带宽,RF表示冗余系数,OARR表示其他应用预留带宽的比例,NQF表示网络质量系数。

所述表达式的含义是,在下行峰值带宽降低的情况下,下载网速会根据网络条件的变化进行相应的调整。具体来说,它会根据云游戏的串流需求和冗余系数,以及其他应用预留带宽的比例和网络质量系数,来计算出一个合适的下载网速。

所述表达式通过开方使浮点数变大,从而起到放大效果,使得限速值在网络质量变差时快速降低。

所述网络质量升高时,所述下载网速根据所述下行峰值带宽进行变化的表达式如下:

DS=MaxDS*网速缓升比例;

网速缓升比例=上一秒的网速缓升比例+x

其中,x预设的系数值,每秒钟涨0.1,10秒钟时涨到1,actor=5.82。

下行峰值带宽其中,actor=5.82。通过调整actor的值,控制下载网速的增加速度。当actor的值较小时,下载网速会增加得较快;当actor的值较大时,下载网速会增加得较慢。这种调整方式根据网络条件和云游戏的实际需求来进行动态调整,以满足不同场景下的性能要求。

具体的,网速缓升比例是一个累加的过程,网速缓升比例从0到1(恢复原先限速大小),1s左右累加一次,10s时等于1。网速缓升比例每秒的点连起来形状是一个缓升的抛物线。

由于弱网下一般伴随着网络抖动,本申请通过缓升可以有效对抗网络抖动。避免突然恢复下载时对网络造成冲击。缓升可以给网络恢复预留足够的时间。

相同网络质量下实验结果说明:

本文是参照根据本文实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,本申请所用术语仅为了描述特定实施例,而非限制本申请范围。如本申请说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。

还需说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。

以上所述的实施例及/或实施方式,仅是用以说明实现本发明技术的较佳实施例及/或实施方式,并非对本发明技术的实施方式作任何形式上的限制,任何本领域技术人员,在不脱离本发明内容所公开的技术手段的范围,当可作些许的更动或修改为其它等效的实施例,但仍应视为与本发明实质相同的技术或实施例。

本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。以上所述仅是本申请的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以作出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其他场合的,均应视为本申请的保护范围。

相关技术
  • 一种带驱动结构的变径套管装置及穿刺器
  • 一种复合航行器的双层变结构横帆装置
  • 一种复合航行器的单横帆变型装置
技术分类

06120116571461