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

网络数据的调度方法、装置、电子设备及可读存储介质

文献发布时间:2024-04-18 19:59:31


网络数据的调度方法、装置、电子设备及可读存储介质

技术领域

本申请涉及网络通信技术,尤其涉及一种网络数据的调度方法、装置、电子设备及可读存储介质。

背景技术

在一些业务场景中,难免会经常遇到网络质量不够好的情况。而业务场景严重依赖于所在客户端与服务器的网络通讯,网络质量的波动必然影响到正常的网络通讯,进而影响业务场景。

相关技术中,针对网络通讯的优化,一般是通过对业务场景进行网络通讯的网络数据包标记优先级,并按照优先级依次对网络数据包进行处理,实现高优先级的网络数据包得到优先处理。这些方法虽然在网络质量不佳时,可以尽可能保证业务场景不受影响,但是网络数据包传输过程中仍然会造成网络通讯堵塞,使得网络通讯的质量进一步下降。

发明内容

本申请实施例提供一种网络数据的调度方法、装置及计算机可读存储介质,能够根据业务场景的网络质量调整非实时网络数据包的数据传输,不影响业务场景中实时网络数据包的正常传输,提高业务场景的网络通讯质量。

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

本申请实施例提供一种网络数据的调度方法,所述方法包括:

响应于业务场景中的网络通讯请求,获取至少一个网络数据包;

确定每个所述网络数据包在所述业务场景中的传输优先级,并确定所述业务场景的网络质量;

响应于所述网络质量表征所述业务场景的网络影响实时网络数据包的数据传输,对所述实时网络数据包进行数据传输,并暂缓对至少部分非实时网络数据包的数据传输,其中,所述实时网络数据包的传输优先级高于所述非实时网络数据包;

响应于所述网络质量表征所述业务场景的网络不影响所述实时网络数据的数据传输,对所述至少一个网络数据包进行数据传输。

本申请实施例提供一种网络数据的调度装置,所述装置包括:

获取模块,用于响应于业务场景中的网络通讯请求,获取至少一个网络数据包;

确定模块,用于确定每个所述网络数据包在所述业务场景中的传输优先级,并确定所述业务场景的网络质量;

传输模块,用于响应于所述网络质量表征所述业务场景的网络影响实时网络数据包的数据传输,对所述实时网络数据包进行数据传输,并暂缓对至少部分非实时网络数据包的数据传输,其中,所述实时网络数据包的传输优先级高于所述非实时网络数据包;

所述传输模块,还用于响应于所述网络质量表征所述业务场景的网络不影响所述实时网络数据的数据传输,对所述至少一个网络数据包进行数据传输。

本申请实施例提供一种电子设备,包括:

存储器,用于存储计算机可执行指令或计算机程序;

处理器,用于执行所述存储器中存储的计算机可执行指令或计算机程序时,实现本申请实施例提供的网络数据的调度方法。

本申请实施例提供一种计算机可读存储介质,存储有计算机可执行指令或计算机程序,用于被处理器执行时实现本申请实施例提供的网络数据的调度方法。

本申请实施例提供一种计算机程序产品,包括计算机可执行指令或计算机程序,所述计算机可执行指令或计算机程序被处理器执行时,实现本申请实施例提供的网络数据的调度方法。

本申请实施例具有以下有益效果:

通过本申请实施例,获取在业务场景的网络通讯请求时的网络数据包,并确定每个网络数据包在业务场景中的传输优先级(简称优先级)。接下来通过网络质量来确定业务场景的网络是否影响优先级高的实时网络数据包的数据传输。在业务场景的网络影响优先级高的实时网络数据包的数据传输时,暂缓对部分非实时网络数据包的数据传输。由此,通过网络质量调整非实时网络数据包的数据传输,来保证业务场景中实时网络数据包的数据传输不受网络质量的影响,使得业务场景能够正常运行,提高业务场景的网络通讯质量。

附图说明

图1是本申请实施例提供的网络数据的调度系统架构的结构示意图;

图2是本申请实施例提供的电子设备的结构示意图;

图3A是本申请实施例提供的网络数据的调度方法的第一流程示意图;

图3B是本申请实施例提供的网络数据的调度方法的第二流程示意图;

图3C是本申请实施例提供的网络数据的调度方法的第三流程示意图;

图3D是本申请实施例提供的网络数据的调度方法的第四流程示意图;

图3E是本申请实施例提供的网络数据的调度方法的第五流程示意图;

图3F是本申请实施例提供的网络数据的调度方法的第六流程示意图;

图3G是本申请实施例提供的网络数据的调度方法的第七流程示意图;

图3H是本申请实施例提供的网络数据的调度方法的第八流程示意图;

图3I是本申请实施例提供的网络数据的调度方法的第九流程示意图;

图4是本申请实施例提供的网络调度的功能模块示意图;

图5是本申请实施例提供的网络质量等级的状态变迁图;

图6是本申请实施例提供的网络通讯流程图;

图7是本申请实施例提供的网络处理队列的调度流程图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一第二第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一第二第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)实时网络数据包,是指在客户端业务场景中需要实时传送给业务服务器处理的网络数据包,根据实时传送的重要程度可以分为普通实时网络数据包和核心实时网络数据包,这些实时网络数据包中的业务逻辑需要业务服务器及时处理,并回复处理结果来执行业务操作。如果延迟发送则会对业务场景造成影响。例如在聊天场景中发送的聊天信息或者语言信息等,这些信息需要及时传送给聊天软件服务器并发送给对方,传输优先级一般比非实时网络数据包要高。

2)核心实时网络数据包,是指客户端业务场景中必须要实时传送给业务服务器处理并回复的网络数据包,这些核心实时网络数据包的优先级比普通实时网络优先级还要高,不能延迟发送。如果延时发送则会影响业务场景甚至关闭业务场景。例如,客户端和业务服务器保存连接状态时所发送的网络数据包、用户交易支付而发送的数据包等。这些数据包都属于核心实时网络数据包,如果延迟发送或者发送失败,会造成客户端与业务服务器断联、交易支付失败等后果。

3)非实时网络数据包,是指客户端业务场景中无需实时传送给业务服务器处理并回复的网络数据包,可以延迟发送或者停止发送,对业务场景影响不大。具体可以包括辅助数据包、下载数据包以及非实时下载数据包。

4)辅助数据包,是指业务场景中用于辅助执行某些业务操作的数据,这些辅助数据包可能会具有实时性的,需要实时发送给业务服务器进行处理,但延迟发送对业务场景的影响也不大,例如可以为存储系统上报的存储数据,例如硬盘的存储统计数据。

5)下载数据包,是指是业务场景中不可或缺的一些资源数据包,这些下载数据包如果不及时进行传输,也会对业务场景造成一定的影响,例如游戏场景中的新地图数据。

6)非实时下载数据包,是指可以优化业务场景的额外资源数据包,这些数据包都属于非实时网络数据包,如果延迟发送或者发送失败,对业务场景不会造成影响,例如,游戏场景中的人物特效,颜色特效等。

本申请实施例提供一种网络数据的调度方法、装置、电子设备、计算机可读存储介质和计算机程序产品,能够根据业务场景的网络质量调整非实时网络数据包的数据传输,不影响业务场景中实时网络数据包的正常传输,提高业务场景的网络通讯质量。

下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为笔记本电脑、平板电脑,台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端,也可以实施为服务器。

以本申请实施例提供的服务器为例,例如可以是部署在云端的服务器集群,云端的服务器封装有本申请实施例提供的网络数据的调度方法的程序。用户通过终端(终端运行有APP,例如即时通信APP、阅读APP等)调用云服务中的网络数据的调度服务,以使部署在云端的服务器调用封装的网络数据的调度方法的程序。当用户在终端应用程序上承载的业务场景中执行业务操作,并且发起网络通讯请求时,云端的服务器响应于网络通讯请求,获取网络数据包后就可以确定每个网络数据包的传输优先级。接下来再确定业务场景的网络质量,当网络质量表征业务场景的网络影响实时网络数据包的数据传输,则按照优先级将优先级高的实时网络数据包传输到业务服务器,并暂缓对至少部分优先级低的非实时网络数据包的数据传输,当网络质量表征业务场景的网络不影响实时网络数据的数据传输,将所有的网络数据包都传输到业务服务器。业务服务器接收到云端的服务器传输的网络数据包后,就会对网络数据包进行处理,并将网络数据包的处理结果通过云端的服务器返回到终端的应用程序上,承载的业务场景就会根据处理结果执行完业务操作。

参见图1,图1是本申请实施例提供的网络数据的调度系统100的架构示意图,包括终端500、网络300、服务器200以及业务服务器600。终端500通过网络300连接服务器200。网络300可以是广域网或者局域网,又或者是二者的组合。

在一些实施例中,本申请实施例提供的网络数据的调度方法可以在终端400进行实现,用户在终端500应用程序中的业务场景中发起网络通讯请求时,终端500可以直接响应业务场景的网络通信请求,返回网络数据包的执行结果,以使业务场景执行对应的业务操作。例如,当用户或者其他人工智能程序在终端500应用程序上承载的业务场景中执行业务操作,并且发起网络通讯请求时,终端500响应于网络通讯请求,获取网络数据包,并确定每个网络数据包在业务场景中的传输优先级。接下来再确定业务场景的网络质量,当网络质量表征业务场景的网络影响实时网络数据包的数据传输,则按照优先级将优先级高的实时网络数据包传输到业务服务器600,并暂缓对至少部分优先级低的非实时网络数据包的数据传输,当网络质量表征业务场景的网络不影响实时网络数据的数据传输,将所有的网络数据包都传输到业务服务器600。业务服务器600接收到终端500传输的网络数据包后,就会对网络数据包进行处理,并将网络数据包的处理结果直接返回到终端500的应用程序上,终端500的应用程序上承载的业务场景就会根据处理结果执行完业务操作。

在一些实施例中,本申请实施例提供的网络数据的调度方法可以由终端500以及服务器200共同实现。例如图1所示,终端500上承载着业务场景的应用程序(Application,APP),例如可以是即时通信APP、阅读APP、视频APP、游戏APP或者其他的软件程序。用户在终端500应用程序上承载的业务场景中执行业务操作,并且通过网络300发起网络通讯请求时,服务器200响应于网络通讯请求,获取网络数据包后就可以确定每个网络数据包在业务场景中的传输优先级。接下来再确定业务场景的网络质量,当网络质量表征业务场景的网络影响实时网络数据包的数据传输,则按照优先级将优先级高的实时网络数据包传输到业务服务器600,并暂缓对至少部分优先级低的非实时网络数据包的数据传输,当网络质量表征业务场景的网络不影响实时网络数据的数据传输,将所有的网络数据包都传输到业务服务器600。业务服务器600接收到服务器200传输的网络数据包后,就会对网络数据包进行处理,并将网络数据包的处理结果通过服务器200以及网络300返回到终端500的应用程序上,终端500的应用程序上承载的业务场景就会根据处理结果执行完业务操作。

在一些实施例中,图1所示的服务器200以及业务服务器600可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Net work,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端500可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。

参见图2,图2是本申请实施例提供的电子设备400的结构示意图,电子设备400可以是图1所示的服务器200,又可以是图1所示的终端500。图2所示的电子设备400包括:至少一个处理器410、存储器450、至少一个网络接口420。电子设备400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。

处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。

存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(Rand om Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。

在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(Universal Serial Bus,USB)等;

在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器450中的网络数据的调度装置453,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块4531、确定模块4532以及传输模块4533,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。

在一些实施例中,终端或服务器可以通过运行各种计算机可执行指令或计算机程序来实现本申请实施例提供的网络数据的调度方法。举例来说,计算机可执行指令可以是微程序级的命令、机器指令或软件指令。计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(Applic ation,APP),即需要在操作系统中安装才能运行的程序,如直播APP或者即时通信APP;也可以是可以嵌入至任意APP中的小程序,即只需要下载到浏览器环境中就可以运行的程序。总而言之,上述的计算机可执行指令可以是任意形式的指令,上述计算机程序可以是任意形式的应用程序、模块或插件。

将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的网络数据的调度方法。

参见图3A,图3A是本申请实施例提供的网络数据的调度方法的流程示意图,以图1中所示的服务器200为执行主体,将结合图3A示出的步骤进行说明。

在步骤101中,响应于业务场景中的网络通讯请求,获取至少一个网络数据包。

在客户端的应用程序中承载着各种业务场景。在这些业务场景中会不断地执行一些基本的业务操作,例如使用应用程序各个模块的功能来执行应用操作。而执行这些业务操作时通常需要向与客户端网络连接的业务服务器发起网络通讯请求,来请求业务服务器处理业务操作中的业务逻辑并返回处理结果。客户端的应用程序收到业务服务器返回的处理结果就可以成功执行业务场景中的业务操作。而发起网络通讯请求的过程中就会把业务操作包含的业务逻辑封装成网络数据包,再通过网络节点的链路传输给业务服务器。所以本申请实施例中,响应于业务场景中的网络通讯请求,获取至少一个网络数据包,也即在业务场景中需要执行某些业务操作而发起网络通讯请求时,获取处于网络节点的链路中的至少一个网络数据包。

在步骤102中,确定每个网络数据包在业务场景中的传输优先级,并确定业务场景的网络质量。

由于业务场景中业务操作的种类众多,不同的业务操作在发起网络通讯请求时需要传输不同网络通讯类别的网络数据包。而业务操作中有些业务逻辑是需要实时传输给业务服务器进行逻辑处理的,否则会影响业务场景,而有些业务逻辑无需实时传输给业务服务器,如果延迟传输时并不影响业务场景。所以不同业务逻辑对应的网络数据包具有不同的传输优先级,为了不影响业务场景,需要优先传输这些传输优先级高的网络数据包,而传输优先级低的网络数据包可以延迟传输设置停止传输。

基于此,本申请实施例在获取到至少一个网络数据包后,就可以确定每个网络数据包在业务场景中的传输优先级。这里可以根据网络通讯类别与传输优先级的对应关系,在确定每个网络数据包的网络通讯类别后就可以判断出传输优先级。同时考虑到网络节点的链路的影响,还需要确定业务场景的网络质量,以便于在传输过程中,根据网络质量来对网络数据包进行调度,下面具体说明。

在一些实施例中,参见图3B,图3A示出的步骤102中的“确定每个网络数据包在业务场景中的传输优先级”可以通过以下步骤1021A至步骤1025A实现,下面具体说明。

在步骤1021A中,获取网络数据包的至少一个标记字段。

在一些实施例中,业务服务器会预先或者实时根据每个网络数据包的分类值来对网络数据包的网络通讯类别进行划分,也即每一个分类值对应着一种网络通讯类别。然后将每个分类值与网络通讯类别的对应关系记录在配置表中。所以在进行网络数据包传输时,可以预先或者实时获取业务服务器下发的配置表。根据配置表就能查询到网络数据包的网络通讯类别,但配置表中记录的是分类值与网络通讯类别的对应关系,故需要先确定网络数据包的分类值,而分类值是根据网络数据包的标记字段映射得出的。基于此,本申请实施例中针对每个网络数据包,获取网络数据包的至少一个标记字段,其中,标记字段用于表征网络数据包在业务场景中的传输类型。

在业务场景中执行业务操作并将业务逻辑封装成网络数据包时,会使用标记字段为每个网络数据包进行数据标记。具体为,一方面先确定当前网络数据包是客户端的哪个模块发送的,将发送当前网络数据包的模块进行数据标记,其中,客户端模块可以是系统线程的名称或者存储设备名称,名称的数据类型为字符串类型。另一方面还需确定当前网络数据包由业务服务器的哪个模块接收,将接收当前网络数据包的模块进行数据标记,其中,业务服务器模块可以是模块名称,名称的数据类型为字符串类型,例如可以是域名加上端口号。此外,还需确定当前网络数据包的数据类型,将网络数据包的数据类型进行数据标记,例如当前网络数据包是实时网络数据时,标记为0,而当前网络数据包是非实时的资源包下载数据,则标记为1。由此针对每个网络数据包可以标记三种字段,这三种字段用于表征网络数据包在业务场景中的传输类型。

在步骤1022A中,确定网络数据包在每个标记字段的分类值。

承接上述实施例,在获取网络数据包的至少一个标记字段之后,就可以确定网络数据包在每个标记字段的分类值,其中,每个标记字段具有至少一个不同的分类值,每个分类值对应一种传输类型。也即是说,网络数据包在每个标记字段都可以映射得到一个分类值,而一个标记字段可以是有多个分类值,每个分类值对应一种传输类型。

示例的,某网络数据包有针对客户端模块名称、业务服务器模块名称、数据类型三个标记字段的数据标记。针对客户端模块名称的标记字段,客户端模块名称有2个,例如线程名称、存储设备名称。这些两个模块都是用于发送网络数据包的模块,所以客户端模块名称的标记字段可以映射得到2个分类值。类似的,针对业务服务器模块名称的标记字段,最终也可以映射得到至少一个分类值。针对数据类型的标记字段,有实时网络数据和非实时的资源包下载数据两种,所以最终也可以映射得到2个分类值。

在步骤1023A中,基于分类值,查询配置表。

承接上述实施例,确定网络数据包在每个标记字段的分类值后,就可以基于分类值,查询配置表,其中,配置表包括不同分类值与不同网络通讯类别的对应关系。也即通过查询配置表中每个标记字段的分类值,然后根据配置表中记录的分类值与网络通讯类别的对应关系,就可以直接确定出网络数据包的网络通讯类别。在本申请实施例中,网络数据包的网络通讯类别具体可以包括核心实时网络数据包、普通实时网络数据包、辅助数据包、下载数据包、非实时下载数据包这五种类别,这些不同网络通讯类别的网络数据包在业务场景中所起的作用不同,对业务场景的影响也不同。

在步骤1024A中,将从配置表中查询到的网络通讯类别,确定为网络数据包在业务场景中的网络通讯类别。

承接上述实施例,根据分类值查询配置表后,就将从配置表中查询到的网络通讯类别,确定为网络数据包在业务场景中的网络通讯类别。由此每个网络数据包都可以从对应的配置表中查询得到对应的网络通讯类别。

在步骤1025A中,根据网络通讯类别,确定对应的传输优先级。

承接上述实施例,在查询得到每个网络数据包的网络通讯类别后,再可以根据网络通讯类别,确定对应的传输优先级。这里的确定传输优先级过程可以包括:基于网络通讯类别,查询优先级配置表,其中,优先级配置表包括不同网络通讯类别与不同传输优先级的对应关系,将从优先级配置表中查询到的传输优先级,确定为网络通讯类别的传输优先级。

具体的,可以根据网络数据包的网络通讯类别将网络数据包划分为实时网络数据包或非实时网络数据包,而实时网络数据包需要优先传输,所以设置实时网络数据包的传输优先级高于非实时网络数据包。接下来查询优先级配置表,由于优先级配置表中记录了不同网络通讯类别与不同传输优先级的对应关系,针对每个实时网络数据包或者非实时网络数据包,可以从优先级配置表中查询到对应的传输优先级。最后将查询到的传输优先级,作为实时网络数据包的传输优先级或者非实时网络数据包的传输优先级。

示例的,根据网络数据包的网络通讯类别将网络数据包划分为实时网络数据包和非实时网络数据包,而实时网络数据包需要实时传输给业务服务器进行处理并返回处理结果,否则会影响业务场景。所以实时网络数据包的传输优先级就高于非实时网络数据包。而在优先级配置表中,记录了实时网络数据包的传输优先级和非实时网络数据包的传输优先级。实时网络数据包包括核心实时网络数据包以及普通实时网络数据包,还可以在优先级配置表中设置核心实时网络数据包的传输优先级以及普通实时网络数据包的传输优先级,所以针对实时网络数据包,通过查询优先级配置表,就可以分别查询得到核心实时网络数据包的传输优先级以及普通实时网络数据包的传输优先级。而非实时网络数据包包括辅助数据包、下载数据包以及非实时下载数据包,还可以在优先级配置表中设置辅助数据包、下载数据包以及非实时下载数据包的传输优先级,所以针对非实时网络数据包,通过查询优先级配置表,就可以查询得到辅助数据包、下载数据包以及非实时下载数据包分别对应的传输优先级。

在一些实施例中,对网络数据包进行传输还需考虑到由于客户端业务场景的硬件设备和外部环境条件等因素,这些外界因素会对网络节点的链路造成影响,进而影响网络数据包的传输。所以在此之前,还需要确定客户端业务场景的网络质量,而业务场景的网络质量具有多个网络等级,这些网络等级是根据具体的网络质量参数来进行确定的,下面具体说明。

在一些实施例中,参见图3C,图3A示出的步骤102中的“确定业务场景的网络质量”可以通过以下步骤1021B至步骤1023B实现,下面具体说明。

在步骤1021B中,获取业务场景中的网络质量参数。

在一些实施例中,要确定客户端业务场景的网络等级进而确定网络质量,就需要获取业务场景中的网络质量参数,其中,网络质量参数包括网络延迟参数以及网络带宽参数。这些参数需要在业务场景中进行实时测试来进行获取,下面具体说明。

在一些实施例中,对业务场景进行网络实时测试来获取网络质量参数,需要考虑当前业务场景的网络状态,针对不同的网络状态可以采用不同的实时测试方法,以避免对当前业务场景造成影响。本申请实施例中可以根据最近(例如上一检测周期)的网络状态检测结果或者实时网络检测模块的数据,来估算当前业务场景中的网络等级,从而根据估算出的网络等级来确定使用哪种实时测试方法。所以本申请实施例中针对业务场景执行以下处理之一:获取至少一个网络测试数据包,并基于至少一个网络测试数据包,确定业务场景中的网络质量参数;获取业务场景中的至少部分网络数据包,并基于至少部分网络数据包,确定业务场景中的网络质量参数,其中,至少部分网络数据包为至少一个网络数据包中的至少部分网络数据包。

具体的,当估算出的当前业务场景中的网络质量等级高(例如大于等级阈值),说明当前业务场景中的网络状况良好,可以采用主动探测的实时测试方法,也即获取至少一个网络测试数据包,并基于至少一个网络测试数据包,确定业务场景中的网络质量参数。也即当业务场景中的网络状况良好,可以在当前业务场景中执行某些额外的业务操作并将业务逻辑封装为至少一个额外网络数据包,其中,这些额外的业务操作是业务场景中无需执行的,对业务场景也不造成任何影响。然后将这些额外网络数据包作为网络测试数据包,并通过这些网络测试数据包,确定业务场景中的网络质量参数。

在一些实施例中,基于至少一个网络测试数据包,确定业务场景中的网络质量参数,可以通过以下过程实现:在业务场景中发送针对至少一个网络测试数据包的第一网络通讯请求;获取第一网络通讯请求的第一响应结果,并根据第一响应结果以及第一网络通讯请求,确定业务场景中的网络质量参数。也即获取到多个网络测试数据包后,在业务场景中向业务服务器发送针对这些网络测试数据包的第一网络通讯请求,并等待业务服务器返回第一网络通讯请求的第一响应结果。当获取到第一响应结果后就可以根据第一响应结果以及第一网络通讯请求,确定业务场景中的网络质量参数。

具体的,在业务场景中向业务服务器发送针对一个网络测试数据包的第一网络通讯请求后,开始计时;当接收到第一网络通信请求的第一响应结果后,停止计时;将计时的时间段确定为业务场景的网络延迟参数。类似地,在预设时间段内,通过业务场景向业务服务器发送针对多个网络测试数据包的第一网络通讯请求;当接收到第一网络通信请求的第一响应结果后,统计第一响应结果中网络测试数据包处理结果的数量;将网络测试数据包处理结果的数量与预设时间段的比值作为业务场景的网络带宽参数。

在一些实施例中,当估算出当前业务场景中的网络等级低(例如小于等级阈值)时,说明当前业务场景中的网络状况差,可以采用间接探测的实时测试方法,也即获取业务场景中的至少部分网络数据包,并基于至少部分网络数据包,确定业务场景中的网络质量参数,其中,至少部分网络数据包为至少一个网络数据包中的至少部分网络数据包。也即当业务场景中的网络状况差时,可以在当前业务场景的至少一个网络数据包中确定出至少部分网络数据包,这些至少部分数据包是在业务场景中当前正在执行的业务操作所发送的网络数据包。然后通过业务场景中的至少部分网络数据包,确定业务场景中的网络质量参数。由此,在网络质量差时,直接利用业务场景中当前正在执行的业务操作所发送的网络数据包,来进行网络实时测试,无需增加额外的网络测试数据包,不会影响业务场景。

在一些实施例中,基于至少部分网络数据包,确定业务场景中的网络质量参数,可以通过以下过程实现:在业务场景中发送针对至少部分网络数据包的第二网络通讯请求;获取第二网络通讯请求的第二响应结果,并根据第二响应结果以及第二网络通讯请求,确定业务场景中的网络质量参数。也即从业务场景的网络数据包中确定出至少部分网络数据包后,在业务场景中向业务服务器发送针对这些至少部分网络数据包的第二网络通讯请求,并等待业务服务器返回第二网络通讯请求的第二响应结果。当获取到第二响应结果后就可以根据第二响应结果以及第二网络通讯请求,确定业务场景中的网络质量参数。

具体的,在业务场景中发送针对至少部分网络数据包的第二网络通讯请求后,开始计时;当接收到第二网络通信请求的第二响应结果后,停止计时;将计时的时间段确定为业务场景的网络延迟参数。类似地,在预设时间段内,通过业务场景向业务服务器发送针对至少部分网络数据包的第二网络通讯请求;当接收到第二网络通信请求的第二响应结果后,统计第二响应结果中网络数据包处理结果的数量;将网络数据包处理结果的数量与预设时间段的比值作为业务场景的网络带宽参数。

在步骤1022B中,响应于网络带宽参数不小于带宽参数阈值、且网络延迟参数不大于延迟参数阈值,确定业务场景的网络质量处于第一网络等级。

在一些实施例中,在获取业务场景中的网络延迟参数以及网络带宽参数之后,响应于网络带宽参数不小于带宽参数阈值、且网络延迟参数不大于延迟参数阈值,确定业务场景的网络质量处于第一网络等级,其中,第一网络等级表征业务场景的网络质量不影响实时网络数据包的数据传输。具体的,可以指定一个网络质量参数阈值,用于衡量网络质量好坏的标准,也即设置带宽参数阈值以及网络延迟参数阈值。然后根据获取的网络延迟参数以及网络带宽参数来判断是否符合这个网络质量参数阈值。因为网络带宽参数越大或者网络延迟参数越小,则网络质量越好。所以当网络带宽参数不小于带宽参数阈值且网络延迟参数不大于延迟参数阈值时,说明当前业务场景的网络延迟参数以及网络带宽参数都符合网络质量参数阈值。此时,网络质量处于第一网络等级,而第一网络等级表征业务场景的网络质量不影响实时网络数据包的数据传输,网络质量很好。

在步骤1023B中,响应于网络带宽参数小于带宽参数阈值,或者网络延迟参数大于延迟参数阈值,确定业务场景的网络质量处于第二网络等级。

在一些实施例中,响应于网络带宽参数小于带宽参数阈值,或者网络延迟参数大于延迟参数阈值,确定业务场景的网络质量处于第二网络等级,其中,第二网络等级表征业务场景的网络质量影响实时网络数据的数据传输。当网络带宽参数小于带宽参数阈值或者网络延迟参数大于延迟参数阈值时,说明当前业务场景的网络延迟参数和网络带宽参数中的一个参数或者两个参数不符合网络质量参数阈值。此时网络质量处于第二网络等级,而第一网络等级表征业务场景的网络质量不影响实时网络数据包的数据传输,网络质量很差。

继续参见图3A,在步骤103中,响应于网络质量表征业务场景的网络影响实时网络数据包的数据传输,对实时网络数据包进行数据传输,并暂缓对至少部分非实时网络数据包的数据传输。

当确定业务场景的网络质量之后,就可以根据网络质量确定业务场景的网络是否会影响实时网络数据包的数据传输。因为实时网络数据包是客户端业务场景中需要实时传送给业务服务器处理的网络数据包,如果因为网络质量而延迟发送,会对业务场景造成很大的影响甚至关闭业务场景。而非实时网络数据包是业务场景中无需实时传送给业务服务器处理并回复的网络数据包,可以延迟发送或者停止发送,对业务场景影响不大。

本申请实施例中,响应于网络质量表征业务场景的网络影响实时网络数据包的数据传输,对实时网络数据包进行数据传输,并暂缓对至少部分非实时网络数据包的数据传输。也即当网络质量表征业务场景的网络影响实时网络数据包的数据传输时,优先对实时网络数据包进行数据传输。而为了不影响实时网络数据包的传输,通过暂缓对非实时网络数据包的数据传输,从而留出网络带宽资源,优先保证业务场景中实时网络数据包的传输不受影响。

在一些实施例中,对实时网络数据包进行数据传输可以执行以下之一来实现:通过业务场景的网络对实时网络数据包进行网络传输;将实时网络数据包依次加入到实时数据队列,并按照实时数据队列中实时网络数据包的队列顺序,依次对每个实时网络数据包进行数据传输。

具体的,在对实时网络数据包进行数据传输时,可以采用直接进行网络传输的方式或者通过队列进行数据传输的方式。其中,直接进行网络传输是在网络带宽资源充足的情况下,通过业务场景的网络对实时网络数据包进行网络传输,这样每个实时网络数据包之间没有传输顺序,在网络数据包数量多的时候直接放行,并发送到业务服务器,可以加快传输速度以更快地返回响应结果。而通过队列进行传输的方式可以是将实时网络数据包依次加入到实时数据队列,并按照实时数据队列中实时网络数据包的队列顺序,依次对每个实时网络数据包进行数据传输。其中,实时数据队列是指用于对实时网络数据包的进行数据传输的队列。这样每个实时网络数据包都通过队列有序进行数据传输,依次发送到业务服务器进行处理,使得业务场景中每个网络数据包中的业务逻辑的执行顺序不会出现混乱,虽然数据传输所花费的时间比直接进行网络传输要慢,但无需占用过多的网络带宽资源。

在一些实施例中,对实时网络数据包选择直接进行网络传输的方式还是选择通过队列进行数据传输的方式,是根据实时网络数据包的网络通讯类别来确定的。本申请实施例中,实时网络数据包包括核心实时网络数据包和普通实时网络数据包两个分类,而核心实时网络数据包的传输优先级高于普通实时网络数据包。因为核心实时网络数据包的重要程度高,其中包括的业务逻辑一般为应用程序的主体逻辑,对应用程序承载业务场景起着很大作用,所以需要优先进行传输并且不能延迟发送,否则会对业务场景造成很大的影响甚至关闭业务场景。而普通实时网络数据包中包括的业务逻辑并非应用程序的主体逻辑,如果延迟发送,虽然对业务场景会造成一定影响,但并不会导致关闭业务场景,传输优先级比核心实时网络数据包要低。

基于此,本申请实施例中针对核心实时网络数据包,通过业务场景的网络对核心实时网络数据包直接进行网络传输,也即利用充足的网络带宽资源快速对核心实时网络数据包进行传输,并发送到业务服务器进行处理,可以加快传输速度更快地返回响应结果。而针对普通实时网络数据包,传输优先级比核心实时网络数据包要低,则采用队列进行数据传输的方式,将普通实时网络数据包依次加入到实时数据队列,并按照实时数据队列中普通实时网络数据包的队列顺序,依次对每个普通实时网络数据包进行数据传输。由此无需占用过多的网络带宽资源,也可不影响核心实时网络数据包的网络传输。

在一些实施例中,当网络质量表征业务场景的网络影响实时网络数据包的数据传输,为了使实时网络数据包能够顺利传输,需要暂缓对至少部分非实时网络数据包的数据传输。而非实时网络数据包是指客户端业务场景中无需实时传送给业务服务器处理并回复的网络数据包,可以延迟发送或者停止发送,对业务场景影响不大。但非实时网络数据包有很多种类,且每一种非实时网络数据包都是采用队列进行数据传输的方式。非实时网络数据包的队列可以分为辅助数据队列、下载数据队列。其中,辅助数据队列是指用于针对辅助数据包进行数据传输的队列,而下载数据队列是指用于针对下载数据包或者非实时下载数据包进行数据传送的队列。所以暂缓对至少部分非实时网络数据包的数据传输,也即是暂缓对辅助数据队列以及下载数据队列中非实时网络数据包的数据传输。

在一些实施例中,参见图3D,图3A示出的步骤103中的“暂缓对至少部分非实时网络数据包的数据传输”可以通过执行步骤1031A、步骤1032A、步骤1033A其中的一个步骤来实现,下面具体说明。

在步骤1031A中,将非实时网络数据包依次加入到辅助数据队列,并延迟对辅助数据队列中的非实时网络数据包进行数据传输。

在一些实施例中,有部分非实时网络数据包是指业务场景中用于辅助执行某些业务操作的网络数据包,这些网络数据包可能会有一定的实时性要求,但如果延迟发送对业务场景影响也不大。在业务场景的网络质量低的时候,也会加入到相应的队列进行数据传输。所以当网络质量表征业务场景的网络影响实时网络数据包的数据传输,将非实时网络数据包依次加入到辅助数据队列,并延迟对辅助数据队列中的非实时网络数据包进行数据传输。这样即可以暂缓辅助数据队列的数据传输过程,留出多余的网络带宽资源提供给实时网络数据包进行数据传输。

在步骤1032A中,将非实时网络数据包依次加入到下载数据队列,并限制下载数据队列的传输速度,按照限制后的传输速度,依次对下载数据队列中的非实时网络数据包进行数据传输。

在一些实施例中,有部分非实时网络数据包可能是业务场景中不可或缺的资源数据包,如果不及时进行数据传输也会对业务场景造成一定的影响。所以当网络质量表征业务场景的网络影响实时网络数据包的数据传输,将非实时网络数据包依次加入到下载数据队列,并限制下载数据队列的传输速度,按照限制后的传输速度,依次对下载数据队列中的非实时网络数据包进行数据传输。这样通过限制传输速度不仅能够节省网络带宽资源,而且下载数据队列中的非实时网络数据包仍然在不断传输,保证业务场景中不缺乏资源数据包。

在步骤1033A中,将非实时网络数据包依次加入到下载数据队列,并暂停新的非实时网络数据包加入到下载数据队列。

在一些实施例中,有部分非实时网络数据包是业务场景中非必需的资源数据包,旨在优化在业务场景中执行的某些业务操作,如果延迟传输甚至停止传输对业务场景也不会造成影响。针对这类非实时网络数据包,当网络质量表征业务场景的网络影响实时网络数据包的数据传输时,将非实时网络数据包依次加入到下载数据队列,并暂停新的非实时网络数据包加入到下载数据队列。也即已经进入下载数据队列的非实时网络数据包则继续进行数据传输,但暂停新的非实时网络数据包再继续加入到下载数据队列,以减轻下载数据队列的传输压力。

在一些实施例中,可以根据不同网络通讯类别对非实时网络数据包进行分类,也即非实时网络数据包包括辅助数据包、下载数据包、非实时下载数据包三种网络通讯类别。当网络质量表征业务场景的网络影响实时网络数据包的数据传输时,可以根据非实时网络数据包的网络通讯类别将不同网络通讯类别的网络数据包分别加入到对应的数据队列中,然后暂缓数据队列中每种网络通讯类别的非实时网络数据包的数据传输,下面具体说明。

在一些实施例中,参见图3E,图3A示出的步骤103中的“暂缓对至少部分非实时网络数据包的数据传输”可以通过以下步骤1031B至步骤1033B实现,下面具体说明。

在步骤1031B中,将辅助数据包依次加入到辅助数据队列,并延迟对辅助数据队列中的辅助数据包进行数据传输。

针对非实时网络数据包中的辅助数据包,这些辅助数据包是指业务场景中用于辅助执行某些业务操作的数据,可能会有一定的实时性要求,但如果延迟发送对业务场景影响也不大。在业务场景的网络质量低的时候,辅助数据包也会加入到辅助数据队列进行数据传输。所以当网络质量表征业务场景的网络影响实时网络数据包的数据传输,将辅助数据包依次加入到辅助数据队列,并延迟对辅助数据队列中的辅助数据包进行数据传输。这样即可以暂缓辅助数据队列的数据传输过程,留出多余的网络带宽资源提供给实时网络数据包进行数据传输。

在步骤1032B中,将下载数据包依次加入到下载数据队列,并限制下载数据队列的传输速度,按照限制后的传输速度,依次对下载数据队列中的下载数据包进行数据传输。

针对非实时网络数据包中的下载数据包,这些下载数据包也可能是业务场景中不可或缺的资源数据包,如果不及时进行下载传输也会对业务场景造成一定的影响。所以当网络质量表征业务场景的网络影响实时网络数据包的数据传输,将下载包依次加入到下载数据队列,并限制下载数据队列的传输速度,按照限制后的传输速度,依次对下载数据队列中的下载数据包进行数据传输。这样通过限制传输速度不仅能够节省网络带宽资源,而且下载数据队列中的下载数据包仍然在不断传输,保证业务场景中不缺乏资源数据包。

在步骤1033B中,将非实时下载网络数据包依次加入到下载数据队列,并暂停新的非实时下载数据包加入到下载数据队列。

针对非实时网络数据包的非实时下载数据包,这些非实时下载网络数据包是业务场景中非必需的资源数据包,旨在优化业务场景中执行的某些业务操作,如果延迟传输或者停止传输对业务场景也不会造成影响。针对这类非实时下载数据包,当网络质量表征业务场景的网络影响实时网络数据包的数据传输时,将非实时下载数据包依次加入到下载数据队列,并暂停新的非实时下载数据包加入到下载数据队列。也即已经进入下载数据队列的非实时下载数据包则继续进行数据传输,但暂停新的非实时下载数据包再继续加入到下载数据队列,以减轻下载数据队列的传输压力。

需要说明的是,图3E所示的步骤1031B、步骤1032B以及步骤1033B的执行顺序不分先后,可以是串行执行也可以是并行执行的。在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。本申请实施例为了方便解释说明,所以针对不同的处理编排对应的步骤,但是不应视为对执行顺序的限定。

通过本申请实施例中,在网络质量表征业务场景的网络影响实时网络数据包的数据传输时,通过对不同网络通讯类别的非实时网络数据包进行暂缓传输,不仅能够节省出网络带宽资源,还可以减轻队列传输的压力,从而使得网络带宽资源能够充分用于实时网络数据包的传输,在网络质量差时能够尽量保证业务场景中实时网络数据包的传输不受到影响。

在一些实施例中,当网络质量表征业务场景的网络影响实时网络数据包的数据传输时,如果直接暂缓所有网络通讯类别的非实时网络数据包的数据传输,在实时网络数据包数量少的情况下,可能会出现空闲的网络带宽资源,造成网络带宽资源浪费。为了充分使用网络带宽资源,本申请实施例中根据当前业务场景中的网络延迟参数和网络带宽参数,可以仅暂缓对至少部分非实时网络数据包的数据传输,而其他部分非实时网络数据包则不暂缓进行数据传输,下面具体说明。

在一些实施例中,参见图3F,图3A示出的步骤103中的“暂缓对至少部分非实时网络数据包的数据传输”可以通过以下步骤1031C至步骤1032C实现,下面具体说明。

在步骤1031C中,响应于业务场景中的网络带宽参数不小于带宽参数阈值、且业务场景中的网络延迟参数不小于延迟参数阈值,暂缓对辅助数据包的数据传输。

在一些实施例中,网络质量表征业务场景的网络影响实时网络数据包的数据传输时,通过暂缓对非实时网络数据包的传输,可以节省网络带宽资源提供给实时网络数据包进行传输,而在业务场景的网络带宽资源充足的时候,仍然可以正常对至少部分非实时网络数据包进行数据传输。本申请实施例中通过获取的业务场景的网络延迟参数以及网络带宽参数来确定当前带宽资源是否充足。响应于业务场景中的网络带宽参数不小于带宽参数阈值、且业务场景中的网络延迟参数不小于延迟参数阈值,暂缓对辅助数据包的数据传输。

具体的,当业务场景中的网络带宽参数不小于带宽参数阈值,并且业务场景中的网络延迟参数不小于延迟参数阈值,虽然此时网络质量表征业务场景的网络影响实时网络数据包的数据传输,但业务场景的网络带宽资源是充足的,只是网络延迟高,使数据队列中的非实时网络数据包的传输速度降低,数据队列的传输压力变大。此时可以仅暂缓对辅助数据包的数据传输,也即延迟对辅助数据队列中的辅助数据包进行数据传输。而下载数据包和非实时下载数据包在网络资源充足的情况下,无需暂缓可以通过下载数据队列正常进行数据传输。

在步骤1032C中,响应于业务场景中的网络带宽参数小于带宽参数阈值,暂缓对辅助数据包、下载数据包以及非实时下载数据包的数据传输。

在一些实施例中,获取到业务场景的网络延迟参数以及网络带宽参数之后,响应于业务场景中的网络带宽参数小于带宽参数阈值,暂缓对辅助数据包、下载数据包以及非实时下载数据包的数据传输。因为当业务场景中的网络带宽参数小于带宽参数阈值时,说明业务场景的网络带宽资源很匮乏,为了不影响实时网络数据包的传输,则暂缓对辅助数据包、下载数据包以及非实时下载数据包进行数据传输,具体的暂缓数据传输的过程与图3E所示的步骤1031B、步骤1032B以及步骤1033B类似,这里不再赘述。

继续参见3A,在步骤104中,响应于网络质量表征业务场景的网络不影响实时网络数据的数据传输,对至少一个网络数据包进行数据传输。

在一些实施例中,在确定业务场景的网络质量之后,响应于网络质量表征业务场景的网络不影响实时网络数据的数据传输,对至少一个网络数据包进行数据传输。也即当网络质量表征业务场景的网络不影响实时网络数据的数据传输,说明当前业务场景中的网络质量很好,则所有通讯类别的网络数据包按照传输的传输优先级正常进行数据传输,下面具体说明。

在一些实施例中,参见图3G,图3A示出的步骤104可以通过以下步骤1041至步骤1042实现,下面具体说明。

在步骤1041中,通过业务场景的网络对核心实时网络数据包进行数据传输。

在一些实施例中,业务场景中的至少一个网络数据包包括核心实时网络数据包以及非核心实时网络数据包,核心实时网络数据包的传输优先级比非核心实时网络数据包的传输优先级要高,核心实时网络数据包是通过业务场景的网络对核心实时网络数据包进行数据传输。所以本申请实施例中,响应于网络质量表征业务场景的网络不影响实时网络数据的数据传输,根据传输优先级,优先通过业务场景的网络对核心实时网络数据包进行数据传输。

在步骤1042中,将非核心实时网络数据包加入到多个网络处理队列,并对多个网络处理队列中的网络数据包进行数据传输。

在一些实施例中,业务场景中的非核心实时网络数据包包括普通实时网络数据包、辅助数据包、下载数据包以及非实时下载数据包,这些网络通讯类别的非核心实时网络数据包都需要通过相应的多个网络处理队列进行排队传输。本申请实施例中将非核心实时网络数据包加入到多个网络处理队列,并对多个网络处理队列中的网络数据包进行数据传输。这里的多个网络处理队列包括实时数据队列、辅助数据队列以及下载数据队列,在对非核心实时网络数据包进行网络传输之前,需要将不同网络通讯类别的非核心实时网络数据包加入到对应的网络处理队列。具体的,当非核心实时网络数据包为普通实时网络数据包时,则将普通实时网络数据包将加入到实时数据队列,当非核心实时网络数据包为辅助数据包时,则将将辅助数据包加入到辅助数据队列,当非核心实时网络数据包为下载数据包或者非实时下载数据包时,将下载数据包以及非实时下载数据包加入到下载数据队列。当将不同的非核心实时网络数据包加入到对应的网络处理队列,即可针对每个网络处理队列,对网络处理队列中的非核心实时网络数据包进行数据传输。下面具体说明。

在一些实施例中,参见图3H,图3G示出的步骤1042中的“对多个网络处理队列中的网络数据包进行数据传输”可以通过以下步骤10421至步骤10423实现,下面具体说明。

在步骤10421中,响应于检测到多个网络处理队列均为空队列、且检测到缓存的下载数据包,将缓存的下载数据包加入至下载数据队列进行数据传输。

在通过网络处理队列对非核心实时网络数据包进行数据传输时,需要重复检测所有的网络处理队列,然后对网络处理队列进行调度,来合理调配每个网络处理队列的数据传输过程。本申请实施例中,响应于检测到多个网络处理队列均为空队列、且检测到缓存的下载数据包,将缓存的下载数据包加入至下载数据队列进行数据传输。

具体的,通过重复检测所有的网络处理队列,如果检测所有的网络处理队列均为空队列,说明此时网络处理队列都是空闲的,此时则检测是否存在缓存的下载数据包,这些缓存的下载数据包是在业务场景的网络质量差时,从下载数据队列中移出来进行缓存的,则将这些缓存的下载数据包加入至下载数据队列进行数据传输。

此外,在一些实施例中,当业务场景的网络质量表征业务场景的网络影响实时网络数据包的数据传输时,会暂停将新的非实时网络数据包加入到下载数据队列,来减轻下载数据队列的传输压力。而此时业务场景网络质量表征业务场景的网络不影响实时网络数据包的数据传输时,则可以继续将新的非实时网络数据包加入到下载数据队列进行数据传输。

在步骤10422中,响应于检测到任意网络处理队列为满队列,对任意满队列中的非核心实时网络数据包进行调度,并暂停对下载数据队列中的下载数据包进行数据传输。

在一些实施例中,响应于检测到任意网络处理队列为满队列,对任意满队列中的非核心实时网络数据包进行调度,并暂停对下载数据队列中的下载数据包进行数据传输。具体的,通过重复检测所有的网络处理队列,当检测到任意网络处理队列为满队列,也即检测到存在网络处理队列为满队列,说明这个网络处理队列的队列压力很大,所以对任意满队列中的非核心实时网络数据包进行调度,来调整满队列中非核心实时网络数据包的数据传输,减轻队列的传输压力,同时暂停对下载数据队列中的下载数据包进行数据传输,下面具体说明。

在一些实施例中,参见图3I,图3H示出的步骤10422中的“响应于检测到任意网络处理队列为满队列,对任意满队列中的非核心实时网络数据包进行调度”可以通过以下步骤104221至步骤104222实现,下面具体说明。

在步骤104221中,响应于检测到目标数据队列为满队列,去除目标数据队列中的超时网络数据包。

在一些实施例中,通过重复检测所有的网络处理队列,响应于检测到目标数据队列为满队列,去除目标数据队列中的超时网络数据包,其中,目标数据队列为实时数据队列或者辅助数据队列,超时网络数据包是目标数据队列中处于队列头部的网络数据包。具体的,当检测到实时数据队列或者辅助数据队列为满队列,则说明满队列中的数据传输速度很低,可能是受到网络带宽的影响。此时,将实时数据队列或者辅助数据队列中处于队列头部的至少一个网络数据包设定为超时网络数据包,这些超时网络数据包排在队列头部都还没有进行数据传送,说明在业务场景中已经失去了时效性,无法再用于执行业务场景中的业务操作。所以本申请实施例中将这些超时网络数据包从实时数据队列或者辅助数据队列去除,从而减轻队列中数据传输的压力。

在步骤104222中,响应于检测到下载数据队列为满队列,从下载数据队列中移出至少部分下载数据包,并对至少部分下载数据包进行缓存。

在一些实施例中,通过重复检测所有的网络处理队列,响应于检测到下载数据队列为满队列,从下载数据队列中移出至少部分下载数据包,并对至少部分下载数据包进行缓存。具体的,当检测到下载数据队列为满队列,则说明当前下载数据队列中的数据传输速度低,也可能是受到网络带宽和网络延迟的影响,从而使得当前网络质量差。此时从下载数据队列中移出至少部分下载数据包,以此来减轻下载数据队列的传输压力。而移出的至少部分下载数据包则进行缓存,等待网络质量好时或者所有的网络处理队列都传输完毕变成空队列时,再将缓存的至少部分下载数据包加入下载数据队列进行数据传输。

继续参见图3H,在步骤10423中,响应于检测到任意网络处理队列不为空队列、且任意网络处理队列中不是满队列,对任意网络处理队列中的非核心实时网络数据包进行数据传输。

在一些实施例中,响应于检测到任意网络处理队列不为空队列、且任意网络处理队列中不是满队列,对任意网络处理队列中的非核心实时网络数据包进行数据传输。也即通过检查网络处理队列,当检测到不存在网络处理队列为空队列、且不存在网络处理队列为满队列时,按照针对每个网络处理队列,按照网络处理队列中的非核心实时网络数据包的队列顺序,依次对网络处理队列中的非核心实时网络数据包进行数据传输。

具体的,当检测到实时数据队列、辅助数据队列以及下载数据队列中不存在队列为空队列、且也不存在队列是满队列时,则每一种非核心实时网络数据包都按照在对应队列的队列顺序,依次进行数据传输。也即当非核心实时网络数据包为普通实时网络数据包时,按照实时数据队列中普通实时网络数据包的队列顺序,依次对每个普通实时网络数据包进行数据传输。当非核心实时网络数据包为辅助数据包时,按照辅助数据队列中辅助数据包的队列顺序,依次对每个辅助数据包进行数据传输。当非核心实时网络数据包为下载数据包或者非实时下载数据包时,按照下载数据队列中下载数据包括或者非实时下载数据包的队列顺序,依次对每个下载数据包或者非实时下载数据包进行数据传输。

通过本申请实施例,获取在业务场景的网络通讯请求时的网络数据包,并确定每个网络数据包在业务场景中的网络通讯类别来确定网络数据包对应的传输优先级。接下来根据网络质量来确定业务场景的网络是否影响优先级高的实时网络数据包的数据传输,从而在业务场景的网络影响优先级高的实时网络数据包的数据传输时,暂缓对非实时网络数据包的数据传输,从而节省出网络带宽资源用于保证实时网络数据包的数据传输。由此,通过网络质量调整非实时网络数据包的数据传输,使得整个业务场景中实时网络数据包的传输不受网络质量的影响,提高业务场景的网络通讯质量。

下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。

以业务场景为网络游戏场景为例,网络游戏运行过程中难免会经常遇到网络质量不够好的情况,而游戏的体验严重依赖于游戏客户端通过网络和游戏服务器的通讯,网络质量的波动必然影响到游戏的最终体验。目前网络体验的优化,一般是通过对网络数据包(以下简称数据包)标记优先级,由网络链路中的各个节点根据优先级的顺序进行数据包的处理,实现高优先级的数据包得到优先处理,从而在网络质量不佳时,尽可能地提升用户的网络传输体验。

根据优先级对数据包进行处理可以在一定程度上提升用户的网络体验,但是在网络质量不好的情况下低优先级的数据包仍然在持续传输,会加剧网络拥塞,导致发生丢包,触发重传机制。网络质量就会进一步下降,网络质量的恢复时间会加长。

基于以上场景,本申请实施例提供一种动态的网络调度方法,在应用层对网络通讯的优先级进行区分后,根据实际的游戏场景对网络传输的数据包进行分类。在网络质量发生波动的时候动态调整数据包的下发策略,从而保证对用户体验影响最大的数据包能够得到优先处理。具体的,在检测到网络质量变差时,直接暂停非实时网络数据包的网络传输,这样可以直接降低网络负载,不仅能够保证高优先级的数据包能够得到更好的保障,同时也避免了因为网络质量波动导致的网络拥塞,可以让整体网络异常更快恢复正常,从而从根本上保证用户核心的游戏对局体验。

通过本申请实施例,可以保证在游戏场景的任何网络环境下,用户的核心游戏数据传输都能够得到最高优先级处理,确保在网络质量不好的时候,非实时数据不影响核心数据的传输。因此需要对游戏场景的网络数据包进行分类,然后在游戏客户端有一个网络中控模块负责处理所有的数据包,这样就可以根据当前的网络质量情况,实现各类数据包的动态调度。参见图4,下面结合图4来具体介绍游戏客户端和游戏服务器各个功能模块的实现,其中,游戏客户端与游戏服务器之间通过网络进行连接。

游戏客户端,包括以下几个模块:

(1)网络质量检测模块,用于实时地检测终端网络质量,包括网络通讯的延时和带宽吞吐量的变化情况,然后根据设定策略更新当前网络状态。

(2)网络中控模块,用于接收并调度所有非核心网络数据包。根据网络质量情况,确定直接发送给游戏服务器还是缓存在本地等网络质量好转后再发送。

(3)策略控制模块(即下文中的网络管理模块),用于根据网络质量检测模块返回的数据(即网络通讯的延时和带宽吞吐量)及队列情况来实时更新网络质量参数,并实时调度网络中控模块的网络数据包发送并管理发送队列。此外,还接收游戏服务器下发的网络数据包的分类信息并同步给游戏各功能模块做数据包标记。

(4)缓存模块,用于在网络数据包的发送队列过长时,把非实时网络数据包出队列进行缓存,等待网络质量好转、发送队列出现空闲时再重新送入发送队列。

游戏服务器,包括以下几个模块:

(5)分类管理模块,用于确定游戏各功能子模块的网络数据包的具体分类,并通过表格进行记录。

(6)通讯控制模块,用于接收游戏客户端的网络中控模块的策略请求,同步分类管理模块记录的网络数据包的分类数据。

根据本申请实施例提供一种动态的网络调度方法,首先需要在应用层对网络通讯的优先级进行区分后,也即根据实际的游戏场景对网络传输的数据包进行分类,网络数据包的具体分类如下:

(1)核心实时网络数据包,属于游戏对局或者关键模块的核心数据包,比如对局过程中用户操作产生的实时网络数据包,游戏进程和游戏服务器为了保持连接状态而发送的心跳数据包,用户交易支付而产生的实时网络数据包等。

(2)普通实时网络数据包,属于需要进行实时传送,但是对用户的核心游戏体验影响不大的数据包,比如用户在游戏内的聊天信息、语音信息等。这类信息需要尽可能地保证实时性,但优先级会比对局、支付等核心实时网络数据包低。

(3)辅助数据包,属于游戏过程中的辅助数据包,比如各类存储模块上报的统计数据等,这类数据有一定的实时性要求,但产生一定的延迟对用户的体验影响也不大,所以可以在网络质量不好时可以适当地排队。

(4)下载数据包,属于下行数据包,用户进入游戏或对局时必须下载的一些游戏资源数据包,如果这类资源包不及时完成下载会影响用户的体验,因此只要实时数据队列为空时,这类数据包也应该优先传输。

(5)非实时下载数据包,属于为了提升用户体验而在游戏进行过程中下载的数据包,也属于下行数据包,这类数据包即便不能及时完成下载也不会影响用户当前的游戏体验,因此在网络质量不好,或者发送队列拥塞时,可以暂停此类数据的传输,等网络质量好转时再重新发送。

游戏客户端的数据包非常多,为了能够精确地进行分类,本申请实施例中为每个数据包做好标记,这样在游戏服务器中只要维护好对应的标记属于哪一个分类,游戏客户端的网络中控模块就能够很容易地对所有的数据包做分类,并进行相应的处理,其中,数据包标记的说明如下表1:

表1

确定每个数据包的分类之后,接下来就需要制定数据包的处理策略,来动态调整数据包的处理流程。但在对数据包进行调度处理之前,需要确定游戏客户端的游戏场景网络质量是否发生波动,也即确定游戏客户端网络的质量等级。在游戏场景的网络通讯中,网络延迟和带宽两个参数对用户体验影响最大。网络延迟是指数据包从游戏客户端发送出去到接收到游戏服务器的回复数据包所需的时间,这会直接影响到用户的本地操控需要多长时间才能够被游戏服务器感知并生效,是影响用户游戏体验的核心因素。

在游戏运行的大部分情况下,处理游戏逻辑所需的带宽非常小,但在资源包下载等特殊场景下,也对带宽有很高的需求,为了提升下载速度有可能会占满带宽,甚至会导致网络拥塞,让网络延迟也变大。

因此可以根据延迟和带宽两个指标把用户客户端的网络质量分为如下4个等级,每一种网络质量等级表征一种网络状态。

L1:低延迟、高带宽,所有数据包可放行。

L2:低延迟、低带宽,所有实时网络数据包可放行(其中,实时核心数据包直接放行,普通实时网络数据包通过排队的方式依次出队放行)。

L3:高延迟、高带宽,所有实时网络数据包可放行排队。

L4:高延迟、低带宽,所有核心实时网络数据包可放行,所有非实时网络数据包暂缓处理。

在理想情况下虽然可以通过实时探测当前网络质量情况来确定当前网络质量等级,但实时的探测(即通过发送一个或多个网络测试数据包来进行探测)本身就会对网络传输本身有消耗,影响正常的数据包传输,特别是在网络质量比较差,用户体验本身已经非常不好的情况下。因此本申请实施例在网络质量差的情况下不采用主动探测的方式,而是采用间接地统计当前游戏运行过程中数据包的网络通讯情况,来计算出网络延迟,同时通过对队列中数据包的实际下发情况来估算当前空余带宽,从而得到当前网络近似的质量等级。

因此,在一些实施例中,在网络质量好的情况,可采用实时探测(即发送测试包)的方式来确定当前网络所属的质量等级。但如果在网络质量差的情况,则采用间接统计当前游戏运行过程中数据包的网络通讯情况(即网络延迟和带宽吞吐量)来确定网络所属的质量等级。

此外,由于可能受到硬件条件和外部环境条件的影响,游戏客户端的游戏场景网络质量是会发生波动,因此网络质量等级也会不断发生变迁,即网络状态也会发生变更。其中,网络质量等级状态变迁的12种情况可参见图5,下面结合图5来说明网络质量等级的各种状态变迁情况。

1、当前为L1(低延时、高带宽),如果网络延时不发生改变,但带宽变小的趋势(各队列排队变长或者出现网络拥塞),则状态变为L2(低延时、低带宽)。

2、当前为L2(低延时、低带宽),如果网络延时不发生改变,但带宽有变大的趋势(各队列为空或者快速变小),则状态变迁为L1(低延时、高带宽)。

3、当前为L1(低延时、高带宽),如果网络延时变高,但带宽无变化(各队列排队长度无明显变化),则状态变为L3(高延时、高带宽)。

4、当前为L3(高延时、高带宽),如果网络延时变低,但带宽无变化(各队列排队长度无明显变化),则状态变为L1(低延时、高带宽)。

5、当前为L2(低延时、低带宽),如果网络延时变高,但带宽无变化(各队列出现排队甚至变长),则状态变为L4(高延时、低带宽)。

6、当前为L4(高延时、低带宽),如果网络延时变低,但带宽无变化(各队列出现排队甚至变长),则状态变为L2(低延时、低带宽)。

7、当前为L4(高延时、低带宽),如果网络延时不发生改变,但带宽有变大的趋势(各队列为空或者快速减少),则状态变为L3(高延时、高带宽)。

8、当前为L3(高延时、高带宽),如果网络延时变低,但带宽有变小的趋势(出现排队甚至排队变长),则状态变为L4(高延时,低带宽)。

9、当前为L2(低延时、低带宽),如果网络延时变高,同时带宽有变大的趋势(队列为空或者快速变小),则状态变为L3(高延时、高带宽)。

10、当前为L3(高延时、高带宽),如果网络延时变低,同时带宽有变小的趋势(出现排队甚至变长),则状态变为L2(低延时、低带宽)。

11、当前为L1(低延时、高带宽),如果网络延时变高,同时带宽有变小的趋势(出现排队甚至变长),则状态变为L4(高延时、低带宽)。

12、当前为L4(高延时、低带宽)如果网络延时变低,同时带宽有变大的趋势(队列为空或者快速变小),则状态变为L1(低延时、高带宽)。

在本申请实施例中,当确定游戏客户端的网络质量等级后,就可以根据网络质量等级来制定数据包的处理策略,来动态调整数据包的处理流程,为了保证用户在游戏场景种的网络体验最优,制定不同等级网络质量下各类网络数据包的处理策略如下表2:

表2

在上述表2中,普通实时网络数据包括进入实时队列调度是指普通实时网络数据包处于实时队列中进行排队,通过正常出队列的方式传输。辅助数据包进入辅助队列调度是指,辅助数据包都处于辅助队列中进行传输,但是延迟发送,也即处于辅助队列中进行等待,不进行传输。下载数据包进入下载队列调度是指,下载数据处于下载队列进行排队,通过正常出队列的方式进行传输来下载,但适当限速,也即适当限制传输过程中下载数据的网络速度。而非实时下载数据包括进入下载队列调度是指,已进入下载队列的非实时下载数据仍然处于下载队列中进行限速传输,但暂缓新数据的传输,也即不允许新的非实时下载数据再进入下载队列。

参见图6,图6是本申请实施例提供的网络通讯流程图,下面结合图6中的步骤来介绍网络通信的过程。

在步骤601,发送运行游戏逻辑的网络传输请求。

在游戏客户端的游戏场景中,游戏的某个功能模块执行某个游戏操作时需要游戏服务器来处理游戏逻辑,此时游戏的某个功能模块则按照上述表1的标记规则对网络数据包进行标记(即游戏客户端模块、游戏服务器模块以及数据类型),并发送运行游戏逻辑的网络传输请求,也即发送网络数据包。

在步骤602,下发网络数据包的分类策略。

游戏服务器在游戏客户端的游戏启动时或者游戏场景运行过程中,对游戏客户端中的网络管理模块下发网络数据包的最新分类策略。

在步骤603,对网络数据包进行分类。

游戏客户端中的网络管理模块定时拉取游戏服务器下发的最新分类策略,对存在标记的网络数据包进行分类,以确定网络数据包的类型。

在步骤604,判断是否为核心实时网络数据包,如果判断结果为否,转入执行步骤605,如果判断结果为是,则转入执行步骤606。

确定网络数据包的类型之后,网络管理模块会判断网络数据包的类型是否为核心实时网络数据包,如果不是核心实时网络数据包转入执行步骤605,如果是核心实时网络数据包则转入执行步骤606。

在步骤605中,将网络数据包调入网络处理队列。

当游戏客户端的网络管理模块确定网络数据包不是核心实时网络数据包时,则将网络数据包调入网络处理队列,也即将网络数据包调入网络处理队列。具体的,如果网络数据包为普通实时网络数据包,则进入实时队列进行调度处理,如果网络数据包为辅助数据包,则进入辅助队列进行调度处理。此外,如果网络数据包为下载数据包或者非实时下载数据包,则进入下载队列进行调度处理。

参见图7,图7是本申请实施例提供的网络处理队列的调度流程图,下面结合图7来说明网络处理队列的调度处理流程。

在步骤701中,重复检测网络处理队列。

本申请实施例中的网络处理队列包括用于传输普通实时网络数据包的实时队列、用于传输下载数据包和非实时下载数据包的下载队列以及用于传输辅助数据包辅助队列。在对网络处理队列进行处理时,需要不断重复检测网络处理队列,来对队列中的网络数据包进行传输。

在步骤702中,判断网络处理队列是否为空,如果判断结果为是,转入执行步骤703,如果判断结果为否,转入执行步骤705。

在检测网络处理队列后,需判断网络处理队列是否为空,如果队列为空则说明当前网络质量等级高,队列中的所有分类的网络数据包都已经传输下载完毕,所以目前没有任何网络数据包在排队。此时则转入执行步骤704,检测网络处理队列中的下载队列是否存在缓存信息,也即判断是否有非实时下载数据包正在等待进入下载队列,这是因为在网络质量等级低时,不允许新的非实时下载数据再进入下载队列,此时队列为空,就可以把缓存信息中的非实时下载数据包调入下载队列进行传输下载。如果队列不为空,则转入执行步骤705,判断网络处理队列是否为满。

在步骤703中,判断是否有缓存信息,如果判断结果为是,转入执行步骤704,如果判断结果为否,转入执行步骤701。

当判断网络处理队列为空,则检测网络处理队列中的下载队列是否存在缓存信息,如果存在缓存信息,则转入执行步骤704,将缓存信息中的非实时下载数据调入下载队列恢复下载传输。如果不存在缓存信息,则转入执行步骤101,继续重复检测网络处理队列,开始下一轮调度。

在步骤704中,将缓存信息调入下载队列恢复下载,并转入执行步骤701。

当判断网络处理队列中的下载队列存在缓存信息,则将缓存信息调入下载队列,并通知游戏客户端的下载模块恢复下载。当缓存信息中所有的非实时下载数据调入下载队列恢复继续下载传输完成后,转入执行步骤701,继续重复检测网络处理队列,开始下一轮调度。

在步骤705中,判断网络处理队列是否为满,如果判断结果为是,转入执行步骤706,如果判断结果为否,转入执行步骤707。

在检测网络处理队列不为空,说明此时网络处理队列存在网络数据包正在进行排队传输或者排队等待。此时判断网络处理队列是否为满,也即分别判断网络处理队列中的辅助队列、实时队列以及下载队列是否为满。如果为满,则转入执行步骤706,对分别对满的辅助队列、满的实时队列以及满的下载队列进行相关的处理,来缓解队列的排队压力。如果不为满,则说明各个队列中的对应网络数据包都在进行正常地排队传输或者排队等待,则正常处理网络处理队列的网络数据包。

在步骤706中,丢弃网络处理队列中超时的网络数据包或者将部分网络数据包写入缓存信息,转入执行步骤708。

当检测到网络处理队列中的辅助队列或者实时队列为满,则说明当前网络质量等级低,可能是带宽变低,则通知下载类任务暂停,也即停止再向下载队列发送下载数据包或非实时下载数据包。然后设置最早的网络传输请求为超时,也即将辅助队列或者实时队列中最早入队的辅助数据包或者实时网络数据包设置为超时数据包,因为这些数据包已经失去了时效性。本申请实施例中,则直接丢弃这些最早入队的数据包来缓解队满的压力,同时通知游戏中对应的功能模块。如果是下载队列满,则为了缓解队满的压力,将下载队列中的部分网络数据包写入缓存信息中进行存储,并且通知游戏中对应的功能模块,暂停对应的下载任务,也即暂停继续发送网络数据包到下载队列。

在步骤707中,正常处理网络处理队列中的网络数据包。

当检测到网络处理队列中的辅助队列或者实时队列不为满,则说明当前网络质量等级高,网络状态很好,则按照队列的处理逻辑正常处理网络处理队列的网络数据包,例如实时队列正常处理队列中的一个实时网络数据包、下载队列正常处理队列中的一个下载数据包或者非实时下载数据包,辅助对应则正常处理队列中的一个辅助数据包。

在步骤708中,结束网络处理队列的调度过程,并转入执行步骤701。

通过步骤707,网络处理队列中的每个队列都正常处理对应的网络数据包,直到所有的队列中的网络数据包都处理完,则结束网络处理队列的调度处理过程,重新转入执行步骤701,重复检测网络处理队列,开始下一轮调度。

继续参见图6,在步骤606中,对网络数据包中的游戏逻辑进行处理并返回处理结果。

当游戏客户端的网络管理模块确定网络数据包是核心实时网络数据包时,则无论网络质量等级的好坏,直接将核心实时网络数据包放行发送到游戏服务器中进行处理。游戏服务器接收到游戏客户端的实时网络请求,也即接收到核心实时网络数据包后,直接对核心实时网络数据包中的游戏逻辑进行处理,然后将核心实时网络数据包的游戏逻辑处理结果返回到游戏客户端中。

在步骤607,根据返回的处理结果运行游戏逻辑。

游戏客户端接收到游戏服务器返回的核心实时网络数据包的游戏逻辑处理结果后,游戏场景中对应的游戏功能模块就可以根据所返回得游戏逻辑处理结果,来执行对应的游戏操作。

通过本申请实施例,可以实现网络质量的自动适应策略,在网络质量不好时,即网络质量等级低的情况下,优先保证核心实时网络数据包的传输,暂停非实时网络数据包的传输。当网络质量转好时,即网络质量等级高的情况下,重新启动非实时网络数据的传输,这样在任何网络质量下用户的基础体验都能够有所保证,同时非实时网络数据在网络质量较好时也能够得到及时处理,让游戏能够在不同的网络质量下都能够保证用户的基础体验。

下面继续说明本申请实施例提供的网络数据的调度装置453的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的网络数据的调度装置453中的软件模块可以包括:获取模块4531,用于响应于业务场景中的传输优先级,获取至少一个网络数据包;确定模块4532,用于确定每个网络数据包在业务场景中的网络通讯类别,并确定业务场景的网络质量;传输模块4533,用于响应于网络质量表征业务场景的网络影响实时网络数据包的数据传输,对实时网络数据包进行数据传输,并暂缓对至少部分非实时网络数据包的数据传输,其中,实时网络数据包的传输优先级高于非实时网络数据包;

传输模块4532,还用于响应于网络质量表征业务场景的网络不影响实时网络数据的数据传输,至少一个网络数据包进行数据传输。

在一些实施例中,确定模块4532,还用于针对每个网络数据包执行以下处理:获取网络数据包的至少一个标记字段,其中,标记字段用于表征网络数据包在业务场景中的传输类型;确定网络数据包在每个标记字段的分类值,其中,每个标记字段具有至少一个不同的分类值,每个分类值对应一种传输类型;基于分类值,查询配置表,其中,配置表包括不同分类值与不同网络通讯类别的对应关系;将从配置表中查询到的网络通讯类别,确定为网络数据包在业务场景中的网络通讯类别;根据网络通讯类别,确定对应的传输优先级。

在一些实施例中,确定模块4532,还用于获取业务场景中的网络质量参数,其中,网络质量参数包括网络延迟参数以及网络带宽参数;响应于网络带宽参数不小于带宽参数阈值、且网络延迟参数不大于延迟参数阈值,确定业务场景的网络质量处于第一网络等级,其中,第一网络等级表征业务场景的网络质量不影响实时网络数据包的数据传输;响应于网络带宽参数小于带宽参数阈值,或者网络延迟参数大于延迟参数阈值,确定业务场景的网络质量处于第二网络等级,其中,第二网络等级表征业务场景的网络质量影响实时网络数据的数据传输。

在一些实施例中,确定模块4532,还用于针对业务场景执行以下处理之一:

获取至少一个网络测试数据包,并基于至少一个网络测试数据包,确定业务场景中的网络质量参数;获取业务场景中的至少部分网络数据包,并基于至少部分网络数据包,确定业务场景中的网络质量参数,其中,至少部分网络数据包为至少一个网络数据包中的至少部分网络数据包。

在一些实施例中,确定模块4532,还用于在业务场景中发送针对至少一个网络测试数据包的第一网络通讯请求;获取第一网络通讯请求的第一响应结果,并根据第一响应结果以及第一网络通讯请求,确定业务场景中的网络质量参数;

基于至少部分网络数据包,确定业务场景中的网络质量参数,包括:发送针对至少部分网络数据包的第二网络通讯请求;获取第二网络通讯请求的第二响应结果,并根据第二响应结果以及第二网络通讯请求,确定业务场景中的网络质量参数。

在一些实施例中,传输模块4533,还用于执行以下处理之一:通过业务场景的网络对实时网络数据包进行网络传输;或将实时网络数据包依次加入到实时数据队列,并按照实时数据队列中实时网络数据包的队列顺序,依次对每个实时网络数据包进行数据传输。

在一些实施例中,传输模块4533,还用于通过业务场景的网络对核心实时网络数据包进行网络传输;将普通实时网络数据包依次加入到实时数据队列,并按照实时数据队列中普通实时网络数据包的队列顺序,依次对每个普通实时网络数据包进行数据传输。

在一些实施例中,传输模块4533,还用于执行以下处理之一:将非实时网络数据包依次加入到辅助数据队列,并延迟对辅助数据队列中的非实时网络数据包进行数据传输;或将非实时网络数据包依次加入到下载数据队列,并限制下载数据队列的传输速度,按照限制后的传输速度,依次对下载数据队列中的非实时网络数据包进行数据传输;或将非实时网络数据包依次加入到下载数据队列,并暂停新的非实时网络数据包加入到下载数据队列。

在一些实施例中,传输模块4533,还用于将辅助数据包依次加入到辅助数据队列,并延迟对辅助数据队列中的辅助数据包进行数据传输;将下载数据包依次加入到下载数据队列,并限制下载数据队列的传输速度,按照限制后的传输速度,依次对下载数据队列中的下载数据包进行数据传输;将非实时下载网络数据包依次加入到下载数据队列,并暂停新的非实时下载数据包加入到下载数据队列。

在一些实施例中,传输模块4533,还用于响应于业务场景中的网络带宽参数不小于带宽参数阈值、且业务场景中的网络延迟参数不小于延迟参数阈值,暂缓对辅助数据包的数据传输;响应于业务场景中的网络带宽参数小于带宽参数阈值,暂缓对辅助数据包、下载数据包以及非实时下载数据包的数据传输。

在一些实施例中,传输模块4533,还用于通过业务场景的网络对核心实时网络数据包进行数据传输;将非核心实时网络数据包加入到多个网络处理队列,并对多个网络处理队列中的网络数据包进行数据传输。

在一些实施例中,传输模块4533,还用于将普通实时网络数据包加入到实时数据队列;将辅助数据包加入到辅助数据队列;将下载数据包以及非实时下载数据包加入到下载数据队列。

在一些实施例中,传输模块4533,还用于响应于检测到多个网络处理队列均为空队列、且检测到缓存的下载数据包,将缓存的下载数据包加入至下载数据队列进行数据传输;响应于检测到任意网络处理队列为满队列,对任意满队列中的非核心实时网络数据包进行调度,并暂停对下载数据队列中的下载数据包进行数据传输;响应于检测到任意网络处理队列不为空队列、且任意网络处理队列中不是满队列,对任意网络处理队列中的非核心实时网络数据包进行数据传输。

在一些实施例中,传输模块4533,还用于响应于检测到目标数据队列为满队列,去除目标数据队列中的超时网络数据包,其中,目标数据队列为实时数据队列或者辅助数据队列,超时数据包是目标数据队列中处于队列头部的网络数据包;响应于检测到下载数据队列为满队列,从下载数据队列中移出至少部分下载数据包,并对至少部分下载数据包进行缓存。

在一些实施例中,传输模块4533,还用于按照任意网络处理队列中的非核心实时网络数据包的队列顺序,依次对任意网络处理队列中的非核心实时网络数据包进行数据传输。

本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的网络数据的调度方法。

本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的网络数据的调度方法,例如,如图3A至图3I示出的网络数据的调度方法。

在一些实施例中,计算机可读存储介质可以是RAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。

综上所述,通过本申请实施例,获取在业务场景的网络通讯请求时的网络数据包,并确定每个网络数据包在业务场景中的网络通讯类别来确定网络数据包对应的传输优先级。接下来通过估算当前业务场景的网络等级,来确定业务场景的网络质量参数,继而确定当前业务场景中的网络质量。根据网络质量来确定业务场景的网络是否影响优先级高的实时网络数据包的数据传输,从而在业务场景的网络影响优先级高的实时网络数据包的数据传输时,暂缓对部分非实时网络数据包的数据传输,从而节省出网络带宽资源用于保证实时网络数据包的数据传输。由此,通过网络质量调整非实时网络数据包的数据传输,使得整个业务场景中实时网络数据包的传输不受网络质量的影响,提高业务场景的网络通讯质量。

以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

技术分类

06120116522792