CN117915356A - 一种网络加速方法和装置 - Google Patents
一种网络加速方法和装置 Download PDFInfo
- Publication number
- CN117915356A CN117915356A CN202211267499.3A CN202211267499A CN117915356A CN 117915356 A CN117915356 A CN 117915356A CN 202211267499 A CN202211267499 A CN 202211267499A CN 117915356 A CN117915356 A CN 117915356A
- Authority
- CN
- China
- Prior art keywords
- application
- network
- module
- scene
- acceleration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000001133 acceleration Effects 0.000 title claims abstract description 242
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000005259 measurement Methods 0.000 claims abstract description 102
- 238000012545 processing Methods 0.000 claims abstract description 23
- 238000004891 communication Methods 0.000 claims description 60
- 230000008447 perception Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000001303 quality assessment method Methods 0.000 claims description 11
- 238000013441 quality evaluation Methods 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 abstract description 9
- 238000007726 management method Methods 0.000 description 61
- 230000006870 function Effects 0.000 description 41
- 230000005540 biological transmission Effects 0.000 description 40
- 230000008569 process Effects 0.000 description 21
- 238000011156 evaluation Methods 0.000 description 18
- 230000004044 response Effects 0.000 description 12
- 238000010295 mobile communication Methods 0.000 description 10
- 230000001413 cellular effect Effects 0.000 description 9
- 238000001914 filtration Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供一种网络加速方法和装置,涉及终端领域,能够减少网络卡顿问题,避免操作系统实现的网络加速策略和三方应用程序自身设置的网络加速策略发生冲突,提高用户体验。其方法为:电子设备运行第一应用,第一应用的数据流通过第一网络通道传输;电子设备周期性采集第一应用的数据流的体验质量QoE测量结果,当第一应用的数据流的QoE测量结果指示第一应用的数据流发生卡顿,且第一应用当前的业务场景为第一场景时,电子设备的第一应用进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。
Description
技术领域
本申请涉及终端领域,尤其涉及一种网络加速方法和装置。
背景技术
随着电子设备的发展和用户需求的增多,电子设备中安装运行的应用软件越来越多。很多应用软件在运行过程中需要通过网络与相应的服务器通信,以实现该应用软件提供的各种功能。在用户使用应用软件的过程中,若该应用软件与相应服务器通信时使用的网络的质量较差,则会出现卡顿现象,影响用户的使用体验。
为了解决上述问题,电子设备的操作系统可以设置相应的网络加速策略。例如,操作系统设置的网络加速策略可以是基于当前使用的网络的信号强度对当前使用的网络的质量进行评估,在当前使用的网络的质量较差的情况下,使用质量更好的网络。还有部分三方应用程序也可以设置相应的网络加速策略。例如,三方应用程序可以使用多个网络通道冗余发包以减少卡顿的现象。
然而,操作系统实现的网络加速策略和一些三方应用程序自身设置的网络加速策略可能会发生冲突,导致操作系统和三方应用程序双方的网络加速策略失效或异常。
发明内容
本申请实施例提供一种网络加速方法和装置,能够减少网络卡顿问题,避免操作系统实现的网络加速策略和三方应用程序自身设置的网络加速策略发生冲突,提高用户体验。
第一方面,本申请实施例提供一种网络加速方法,应用于电子设备,包括:电子设备运行第一应用;电子设备周期性采集第一应用的数据流的体验质量QoE测量结果,第一应用的数据流通过第一网络通道传输;当第一应用的数据流的QoE测量结果指示第一应用的数据流发生卡顿,且第一应用当前的业务场景为第一场景时,电子设备的第一应用进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。
基于本申请实施例提供的网络加速方法,前台应用程序(第一应用)可以获取QoE测量结果,根据当前的业务场景(第一场景)和QoE测量结果进行网络加速处理。其中,QoE测量结果可以是电子设备的操作系统获取的。这样充分发挥了电子设备的操作系统和应用程序的优势,使得操作系统和应用程序可以协同进行网络加速。例如,若应用程序为视频应用,第一场景为视频播放场景,视频应用可以在视频播放场景下根据QoE测量结果调整视频分辨率以及缓存策略等。这样能够避免操作系统实现的网络加速策略和三方应用程序自身设置的网络加速策略发生冲突,导致操作系统和三方应用程序双方的网络加速策略失效或异常的问题,可以提升用户上网体验。
在一种可能的实现方式中,该方法还包括:当第一应用的数据流的QoE测量结果指示第一应用的数据流发生卡顿,且第一应用当前的业务场景为第二场景时,将第一应用的数据流切换到第二网络通道;其中,第二网络通道的网络质量相比第一网络通道更优,第二场景与第一场景不同。即在前台应用程序(第一应用)当前的业务场景为第二场景时,可以选择一条比当前正在使用的网络通道质量更优的网络通道,并将应用程序的数据流切换到更优的网络通道上,避免发生网络卡顿,可以提升用户上网体验。
在一种可能的实现方式中,该方法还包括:第一场景和第二场景是第一应用确定的。第一场景是第一应用确定的不需要系统加速的业务场景,第二场景是第一应用确定的需要系统加速的业务场景。其中,系统加速是指电子设备的操作系统根据不同的应用类别和/或不同的业务场景设置网络加速策略,并在满足预设条件的情况下执行网络加速策略。当前的业务场景是需要系统加速的业务场景时,电子设备的操作系统可以在预设条件的情况下执行预设网络加速策略(例如,将应用当前的业务场景对应的数据流从正在使用的网络通道切换到网络质量更优的网络通道)。当前的业务场景是不需要系统加速的业务场景时,电子设备的操作系统可以在满足预设条件(例如,网络卡顿)时,向应用发送QoE测量结果,以便应用根据QoE测量结果进行网络加速。
在一种可能的实现方式中,QoE测量结果是根据第一应用的数据流的通信参数和统计信息确定的,通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。数据流的统计信息还可以包括其他信息,例如,数据流随时间变化的流量分布信息、数据流的报文的时延信息等。
在一种可能的实现方式中,该方法还包括:当第一应用的数据流的QoE测量结果指示第一应用的数据流不再卡顿,且第一应用当前的业务场景为第一场景时,电子设备停止缓存第一应用的运行数据、恢复第一应用的帧率、恢复第一应用的码率、恢复第一应用的分辨率中的至少一种。即第一应用的数据流不再卡顿后,电子设备无需缓存第一应用的运行数据,并可以恢复第一应用的帧率、码率、分辨率等,以符合用户使用习惯,提高用户体验。
在一种可能的实现方式中,电子设备包括感知模块,该方法还包括:感知模块感知到第一应用启动,查询第一应用是否支持网络加速;其中,感知模块中包括应用配置库,应用配置库中存储了多个应用程序是否支持网络加速的信息,多个应用程序包括第一应用。
在一种可能的实现方式中,应用配置库中的多个应用程序是基于用户流量消耗情况和用户对应用的使用偏好确定出的需要网络加速的应用程序;或者应用配置库中的多个应用程序是基于用户的手动设置确定出的需要网络加速的应用。
在一种可能的实现方式中,电子设备还包括决策模块,该方法还包括:若确定第一应用支持网络加速,感知模块向决策模块发送网络质量评估请求,网络质量评估请求中包括第一应用的应用标识、应用的配置信息以及网络质量评估的标准,应用的配置信息包括第一应用传输数据流时的数据包的头部特征。
在一种可能的实现方式中,电子设备的内核层还包括流量上报模块,该方法还包括:决策模块向流量上报模块注册报文监测钩子,报文监测钩子用于周期性探测第一应用使用的第一网络通道的路径,以及监测第一应用使用的第一网络通道传输的数据流的通信参数和统计信息;其中,通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
在一种可能的实现方式中,电子设备还包括流量管理模块,该方法还包括:流量上报模块向流量管理模块周期性上报第一应用的数据流的通信参数和统计信息;流量管理模块根据通信参数和统计信息周期性进行网络质量评估得出当前体验质量QoE测量结果;流量管理模块周期性向决策模块上报当前QoE测量结果。
在一种可能的实现方式中,电子设备还包括网络加速服务模块,该方法还包括:第一应用向网络加速服务模块发送注册请求,注册请求用于请求获取网络的QoE测量结果;网络加速服务模块向感知模块发送注册请求。
在一种可能的实现方式中,该方法还包括:感知模块接收到注册请求后,若确定第一应用支持网络加速,第一应用在前台运行,且第一应用具备网络加速权限,记录第一应用的应用信息,向感知模块发送注册结果,注册结果为成功;感知模块向网络加速服务模块发送注册结果;网络加速服务模块向第一应用发送注册结果。
在一种可能的实现方式中,该方法还包括:感知模块查询第一应用对应的不需要系统加速的业务场景,感知模块中存储多个支持网络加速的应用程序对应的不需要系统加速的业务场景;感知模块向决策模块通知应用程序对应的不需要系统加速的业务场景;决策模块记录第一应用对应的不需要系统加速的业务场景。
在一种可能的实现方式中,若第一应用为游戏应用,游戏应用包括对战场景,该方法还包括:第一应用进入对战场景,通知网络加速服务模块第一应用进入对战场景;网络加速服务模块通知感知模块第一应用进入对战场景;感知模块通知决策模块第一应用进入对战场景;决策模块确定对战场景属于不需要系统加速的业务场景,决策模块向感知模块发送QoE测量结果;感知模块向网络加速服务模块通知QoE测量结果;网络加速服务模块向第一应用通知QoE测量结果;第一应用根据QoE测量结果进行网络加速处理。
在一种可能的实现方式中,该方法还包括:第一应用退出对战场景,通知网络加速服务模块其退出对战场景;网络加速服务模块通知感知模块第一应用退出对战场景;感知模块通知决策模块第一应用退出对战场景;决策模块确定第一应用退出对战场景后,向路径管理模块发送更优路径请求,更优路径请求用于请求一条相比当前网络通道质量更优的网络通道;路径管理模块激活并探测各个网络通道的网络质量,确定存在相比当前网络通道质量更优的网络通道,向决策模块通知更优的网络通道;决策模块指示策略执行模块将第一应用的数据流切换到更优的网络通道上;策略执行模块将第一应用的数据流切换到更优的网络通道上。
在一种可能的实现方式中,第一应用切换到后台或关闭时,该方法还包括:第一应用向网络加速服务模块发送去注册请求,去注册请求用于请求停止为第一应用进行QoE测量;网络加速服务模块向感知模块发送去注册请求;感知模块向决策模块通知停止第一应用的QoE测量;决策模块向策略执行模块通知停止第一应用的QoE测量;策略执行模块停止第一应用的QoE测量。
第二方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在电子设备(如手机)上运行时,使得该电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
第四方面,本申请实施例提供了一种网络加速装置,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得所述装置实现上述第一方面及其任一种可能的设计方式所述的方法。所述装置可以为电子设备;或可以为电子设备中的一个组成部分,如芯片。
第五方面,本申请实施例提供了一种网络加速装置,所述装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述装置执行上述第一方面及其任一种可能的设计方式所述的方法。
第六方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。
上述芯片系统可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的计算机程序产品及第四方面、第五方面所述的装置以及第六方面所述的芯片系统,所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1A为本申请实施例提供的一种网络通道的示意图;
图1B为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的一种电子设备的软件架构示意图;
图3为本申请实施例提供的一种显示示意图;
图4为本申请实施例提供的又一种显示示意图;
图5为本申请实施例提供的一种模块交互示意图;
图6为本申请实施例提供的又一种显示示意图;
图7为本申请实施例提供的一种报文监测的示意图;
图8为本申请实施例提供的一种短视频类应用的数据流的速率特点示意图;
图9为本申请实施例提供的又一种短视频类应用的数据流的速率特点示意图;
图10为本申请实施例提供的又一种显示示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
用户体验质量(quality of experience,QoE):终端用户对移动网络提供的业务性能的主观感受。QoE可以通过接近量化的方法来表示终端用户对业务与网络的体验和感受,并反映当前业务和网络的质量与用户期望间的差距。
从移动通信网络的角度来说,要想获得更好的QoE的最佳方案就是提供一个优良的端到端的服务质量QoS(Quality of Service)。广义的QoS为“决定用户满意程度的服务性能的综合效果”,包含多个层面较为广泛的内容。狭义QoS为底层分组数据传输的性能指标,如时延、抖动、带宽、误码等。QoS机制主要负责从网络的角度进行业务管理和提供业务的差异性,网络实体根据不同的质量需求来处理不同业务。但从终端用户的角度来体验QoS是一个更广、更主观的问题,即QoE所定义的范畴。
钩子(HOOK):HOOK实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
数据流:本申请实施例中将两个电子设备之间传输的数据序列记为数据流。数据流也可以称为业务流。在实际应用中,基于数据流的业务场景,数据流可以为视频流、音频流、下载流、会话流等。
网络通道:两个电子设备之间交互数据的通道。为了便于描述,可以将一个电子设备通过无线网卡与其他电子设备之间建立的网络通道记为Wi-Fi网络;将一个电子设备通过数据业务网卡与其他电子设备之间建立的网络通道记为蜂窝网络。
以电子设备为手机为例,参见图1A,用户使用手机中的应用A(游戏类应用)玩游戏,其中,手机中的应用A通过手机中的数据业务网卡与应用A的服务器A建立网络连接,应用A和服务器A之间产生的数据流A(例如,游戏对战时产生的数据流)通过手机上的无线网卡和无线路由器之间的Wi-Fi网络传输。用户使用手机中的应用B(聊天类应用)聊天,其中,手机中的应用B通过手机的无线网卡与应用B的服务器B建立网络连接,应用B和服务器B之间产生的数据流B(例如,聊天时产生的数据流)通过手机上的无线网卡和无线路由器之间的Wi-Fi网络传输。
在用户使用应用软件的过程中,若该应用软件与相应服务器通信时使用的网络的质量较差,则会出现卡顿现象,例如用户观看视频或听音乐时频繁卡顿,影响用户的使用体验。
为了解决上述问题,电子设备的操作系统可以设置相应的网络加速策略。例如,操作系统设置的网络加速策略可以是基于当前使用的网络的信号强度对当前使用的网络的质量进行评估,在当前使用的网络的质量较差的情况下,使用质量更好的网络。还有部分三方应用程序也可以设置相应的网络加速策略。例如,三方应用程序可以使用多个网络通道冗余发包以减少卡顿现象。
然而,操作系统实现的网络加速策略和一些三方应用程序自身设置的网络加速策略会发生冲突,导致操作系统和三方应用程序双方的网络加速策略失效或异常。
本申请实施例提供一种网络加速方法,操作系统可以从前台应用程序获取当前的业务场景(即操作系统获取前台应用程序当前的业务场景),根据当前的业务场景确定网络加速策略。例如,在当前的业务场景为第一场景时,操作系统可以向前台应用程序发送QoE测量结果,以便应用程序根据QoE测量结果进行网络加速(例如,若应用程序为视频应用,视频应用可以根据QoE测量结果调整视频分辨率以及缓存策略等);在应用程序当前的业务场景为第二场景时,可以进行系统加速,例如操作系统可以选择一条比当前正在使用的网络通道质量更优的网络通道,并将应用程序的数据流切换到更优的网络通道上。第一场景与第二场景不同。这样充分发挥了电子设备的操作系统和应用程序的优势,使得操作系统和应用程序可以协同进行网络加速,能够避免操作系统实现的网络加速策略和三方应用程序自身设置的网络加速策略发生冲突,导致操作系统和三方应用程序双方的网络加速策略失效或异常的问题,可以提升用户上网体验。
本申请实施例提供的网络加速方法可以应用于电子设备。图1B为本申请实施例提供的一种电子设备100的结构示意图。
如图1B所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。该显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),发光二极管(light-emitting diode,LED),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
摄像头193可以包括1~N个。例如电子设备可以包括2个前置摄像头和4个后置摄像头。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
以下实施例中的方法均可以在具有上述硬件结构的电子设备100中实现。
上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。
在一些实施例中,电子设备100的技术架构包括:应用层、服务层、策略层和内核层。应该理解的是,图2中仅示出了与本申请实施例相关的部分层和部分组件,实际应用中,还可以包括图2中未示出的层级和组件。当然,也可以仅包含图2所示的组件中的部分组件。
其中,应用层中存在各种应用,例如,如视频类应用,游戏类应用等。
服务层中存在网络加速服务模块、感知模块和路径管理模块。
其中,网络加速服务模块是应用程序与感知模块交互的通道,网络加速服务模块可以基于Binder机制为应用程序与感知模块转发消息(例如,注册请求)。其中,Binder是一种进程间通信机制,可以实现不同进程之间的通信。
感知模块用于探测上层应用的各种事件。作为示例,感知模块可以探测应用的打开、退出,还可以探测当前切换到前台/后台的应用,还可以探测应用的安装、卸载等。当感知模块探测到应用打开或应用切换到前台时,可以通知下层模块(决策模块)开启网络加速功能,以及启用数据流的监控功能。
路径管理模块可以用于探测电子设备支持的Wi-Fi网络和蜂窝网络的状态(开启或关闭等)。作为示例,若电子设备中设置有2.4GHz频段的无线网卡1和5.0GHz频段的无线网卡2。路径管理模块可以探测2.4GHz频段的无线网络为开启还是关闭状态;还可以探测5.0GHz频段的无线网络为开启或关闭状态。若电子设备中设有运营商A的数据业务网卡1和运营商B的数据业务网卡2。路径管理模块可以探测运营商A的数据业务为开启还是关闭状态;还可以探测运营商B的数据业务为开启还是关闭状态。
路径管理模块还用于评估网络通道的质量。作为示例,路径管理模块可以评估2.4GHz频段的Wi-Fi网络的质量,还可以评估5.0GHz频段的Wi-Fi网络的质量。也可以评估运营商A的蜂窝网络的质量,还可以评估运营商B的蜂窝网络的质量。
路径管理模块还可以存储多条网络通道的路径,示例性的,可以存储应用当前使用的网络通道(例如,主网络通道)及备用网络通道的路径。路径管理模块还可以用于根据决策模块的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道。路径管理模块可以启动选取的最优通道,即将网络通道从休眠状态转换为唤醒状态,唤醒状态的网络通道可以直接被使用。路径管理模块可以关闭非最优通道,即将网络通道从唤醒状态转换为休眠状态,休眠状态的网络通道暂时无法被使用。
策略层中设有流量管理模块和决策模块。
其中,流量管理模块用于对内核层上报的数据流进行统计,评估各个数据流的网络质量。
决策模块存储应用程序中不同业务场景的数据流的传输质量提升策略,以便根据应用程序当前的业务场景执行相应的传输质量提升策略。例如,在应用程序当前的业务场景为第一场景时,可以向应用程序发送QoE测量结果,以便应用程序根据QoE测量结果进行网络加速(例如,若应用程序为视频应用,视频应用可以根据QoE测量结果调整视频分辨率以及缓存策略等);在应用程序当前的业务场景为第二场景时,可以请求路径管理模块选择一条比当前正在使用的网络通道质量更优的网络通道,以便将应用程序的数据流切换到更优的网络通道上。
其中,第一场景是应用程序确定的不需要系统加速的业务场景,第二场景是应用程序确定的需要系统加速的业务场景。其中,系统加速是指电子设备的操作系统根据不同的应用类别和/或不同的业务场景设置网络加速策略,并在满足预设条件的情况下执行网络加速策略。当前的业务场景是需要系统加速的业务场景时,电子设备的操作系统可以在预设条件的情况下执行预设网络加速策略(例如,将应用当前的业务场景对应的数据流从正在使用的网络通道切换到网络质量更优的网络通道)。当前的业务场景是不需要系统加速的业务场景时,电子设备的操作系统可以在满足预设条件(例如,网络卡顿)时,向应用发送QoE测量结果,以便应用根据QoE测量结果进行网络加速。
内核层存在策略执行模块和流量上报模块。其中,流量上报模块用于收集数据流信息,并上报收集的数据流信息。策略执行模块用于执行网络通道的切换。
在本申请另一实施例中,上述实施例中一个模块(组件)可以拆分为两个或多个模块,或者位于同一层级的两个或多个模块可以合并为同一模块。
作为示例,服务层的路径管理模块可以拆分为路径探测模块和路径控制模块,路径探测模块可以用于探测电子设备支持的Wi-Fi网络和蜂窝网络的状态和质量。路径控制模块可以用于根据决策模块的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道。
为了便于理解,以下结合附图对本申请实施例提供的网络加速方法进行具体介绍。
电子设备的操作系统执行网络加速策略前,需要用户提前开启网络加速功能。下面对用户提前开启网络加速功能的UI界面和用户操作进行说明。
示例性的,如图3中的(a)所示,手机显示桌面201。响应于用户在桌面201点击设置应用的图标202的操作,如图3中的(b)所示,手机可以显示设置界面203。设置界面203中可以包括WLAN选项204,还可以包括搜索框以及个人账号、蓝牙、移动网络、桌面和壁纸等功能选项。响应于用户点击WLAN选项204对应的控件的操作,如图3中的(c)所示,手机可以显示WLAN界面205。WLAN界面205中可以包括WLAN开关206。WLAN开关206为开启状态,表示手机可以连接WLAN进行上网。WLAN界面205中还可以包括网络加速选项207,以及更多WLAN设置选项和可用WLAN列表,可用WLAN列表可以包括手机当前扫描到的多个WLAN网络的名称(例如HONOR1、HONOR2、HONOR3等)和信号强度标识等。响应于用户点击网络加速选项207对应的控件的操作,如图3中的(d)所示,手机可以显示网络加速界面208。网络加速界面208中可以包括网络加速功能的文字说明209,文字说明209表示网络加速功能的作用是“评估当前网络质量,智能使用WLAN和移动数据提升上网体验,此过程会联网并消耗部分移动数据流量”。可选的,若用户开启荣耀智慧能力,网络加速将提供更智能的服务。用户可以点击链接“荣耀智慧能力与隐私的声明”来查看荣耀智慧能力的说明。其中,荣耀智慧能力开启后,操作系统可以收集用户使用手机的习惯,根据用户的习惯为用户提供个性化服务。网络加速界面208中还可以包括网络加速(LINK Trubo)对应的开关210。开关210为开启状态,表示用户同意开启网络加速功能,从而手机可以评估当前网络质量,智能使用WLAN和移动数据提升上网体验。当然,用户可以选择关闭开关210,即关闭网络加速功能。在开关210下方,可以显示文本框211,文本框211中的文字用于向用户说明网络加速功能的效果和流量使用情况。例如,网络加速功能开启后,提升下载速度35%,使用流量100M;减少网络卡顿40次,使用流量40M。需要说明的是,网络加速功能可以包括并发加速功能212和协同加速功能214。并发加速功能212包括多通道下载模式213,用户可以通过控件217进入多通道下载模式的设置界面,开启或关闭多通道下载模式。多通道下载模式213开启时,电子设备连接WLAN和移动网络时,可以同时使用多个网络通道并发下载,获得更极速的下载体验。图3中的(d)中多通道下载模式213是已关闭状态。协同加速功能214包括智能模式215和自定义模式216。智能模式215下,可以基于用户流量消耗情况和应用使用偏好,智能开启需要网络加速的应用。用户可以通过控件218开启或关闭智能模式。图3中的(d)中控件218为选中状态,智能模式开启。自定义模式216下,用户可以手动开启需要加速(网络加速)的应用。用户可以通过控件219开启或关闭自定义模式。图3中的(d)中控件219为未选中状态时,自定义模式关闭。用户选择协同加速功能214的智能模式215或自定义模式216时,相应应用程序(智能模式215下智能开启的需要网络加速的应用,或自定义模式216下用户手动选择的需要网络加速的应用)在前台运行时,若发生网络卡顿,电子设备可以将卡顿的网络通道切换到通信质量更好的网络通道,获得更好的上网体验。
如图4中的(a)所示,响应于用户选中控件219以开启自定义模式216的操作,如图4中的(b)所示,手机可以显示手机安装的各种应用程序的信息(图标、名称等)及其对应的开关。例如,手机可以显示对应的开关221、/>对应的开关222、视频应用对应的开关223、/>对应的开关224和音乐应用对应的开关225等。用户可以根据自己的需求手动选择需要加速的应用程序。例如,用户可以开启/>对应的开关221、/>对应的开关222、视频应用对应的开关223、/>对应的开关224,表示用户在使用/>视频应用和/>时,手机需要开启网络加速以保证用户的使用体验。/>
参见图5,为本申请实施例提供的基于图2所示的各个模块实现的一种网络加速方法的时序图,包括:
301、响应于用户打开应用A的操作,应用A启动。
应用A是应用层的一个应用程序,例如可以是游戏应用。响应于用户打开应用A的操作,应用A启动,电子设备可以显示应用A的相关界面。此时应用A是前台应用,即应用A的程序代码正在CPU中运行。
以应用A为游戏应用为例,如图6中的(a)所示,响应于用户在桌面401点击游戏应用的图标402的操作,如图6中的(b)所示,手机可以显示游戏启动界面403。游戏启动界面403可以包括进入游戏按钮404,响应于用户点击进入游戏按钮404的操作,游戏应用启动。
或者,步骤301可以是应用A从后台切换至前台,此时应用A仍是前台应用。
302、感知模块感知到应用A启动,查询应用A是否支持网络加速。
示例性的,感知模块可以通过RunningProcess、ActivityLifecycleCallbacks、UsageStatsManager等函数监测当前的前台应用(例如,应用A),并获取前台应用的标识。或者,若终端设备为Android系统,可以通过Android自带的无障碍功能监测当前的前台应用,并获取前台应用的标识。或者,若终端设备为Linux系统,可以读取Linux系统内核保存在/proc目录下的process进程信息监测当前的前台应用,并获取前台应用的标识。具体判断过程可以参考现有技术,在此不做赘述。其中,应用的标识用于唯一识别一个应用,可以和应用的包名具有一一对应的关系,也可以采用应用的包名。
感知模块中可以包括应用配置库,应用配置库中存储了多个应用程序是否支持网络加速的信息,多个应用程序包括应用A。如表1所示,示例性示出部分应用程序是否支持网络加速的信息。
表1
或者,应用配置库中可以仅存储支持网络加速的应用程序的信息(网络加速名单)。如表2所示,示例性示出部分支持网络加速的应用程序的信息。
表2
实际应用中,该应用配置库还可以存储多个应用标识,每个应用标识采用不同的字符表示该应用标识表示的应用是否支持网络加速。作为示例,可以采用“1”表示支持网络加速,采用“0”表示不支持网络加速。其他确定应用是否支持网络加速的方式不再一一举例。
在一种可能的实施方式中,如图3中的(d)所示,若用户选择协同加速功能214的智能模式215,应用配置库中的多个应用程序可以是基于用户流量消耗情况和应用使用偏好,智能确定出的需要网络加速的应用程序。
在另一种可能的实施方式中,如图4中的(a)所示,若用户选择协同加速功能的自定义模式216,应用配置库中的多个应用可以是基于用户的手动设置确定出的需要网络加速的应用。例如,如图4中的(b)所示,若用户开启对应的开关221、/>对应的开关222、视频应用对应的开关223、/>对应的开关224,应用配置库中的多个应用程序可以包括/> 视频应用和/>
303、若确定应用A支持网络加速,感知模块向决策模块发送网络质量评估请求。
若感知模块通过查询应用配置库确定应用A支持网络加速,可以向决策模块发送网络质量评估请求。决策模块接收到网络质量评估请求后,可以执行步骤304。
其中,网络质量评估请求用于请求决策模块进行网络质量评估。网络质量评估请求中可以包括应用标识、应用的配置信息以及网络质量评估的标准。其中,应用的配置信息是指应用进行业务时的报文特征,报文特征为应用传输数据流时的数据包的头部特征。
或者,感知模块感知到应用A切换到前台,可以通知决策模块,决策模块可以查询应用配置库确定应用A是否支持网络加速,若确定应用A支持网络加速,可以执行步骤304。
304、决策模块向内核层的流量上报模块注册报文监测钩子。
报文监测钩子可以周期性探测应用A当前使用的网络通道的路径,以及监测应用A使用的网络通道传输的数据流的通信参数和统计信息。
应用A在实现某个功能时,可能产生一个或多个数据流。若检测到产生多个数据流,可以周期性检测应用A的每条数据流的通信参数和统计信息。
下面具体描述报文监测钩子如何监测应用A的数据流的通信参数和统计信息,并将监测到的数据流的通信参数和统计信息发送给流量管理模块。
电子设备的系统中存在Netfilter组件(钩子函数管理组件),通过该组件可以获取到特定应用标识对应的应用的数据流。流量上报模块可以通过调用Netfilter组件获取应用A的数据流的报文。具体实现时,流量上报模块上报给流量管理模块的信息不仅包括应用A的数据流的报文,还包括应用A的数据流的报文的一些通信参数和统计信息。
参见图7,流量上报模块可以预先注册报文监测钩子(例如,nf_hook钩子函数)。在流量上报模块调用Netfilter组件后,Netfilter组件上报应用A的数据流的报文,流量上报模块接收到Netfilter组件上报的数据流的报文之后,调用预先注册的nf_hook钩子函数。
该nf_hook钩子函数对接收到的数据流的报文进行以下操作:报文解析、查流表和报文分析等操作。
在进行报文解析时,可以查看该报文是否存在应用标识以及该报文的四元组(或五元组),以得到解析结果。若存在应用标识,则可以确定该报文对应的应用程序。四元组中包括源IP、目的IP、源端口、目的端口;五元组中包括:源IP、目的IP、源端口、目的端口以及协议号。另外,报文(数据包)本身也携带了头部特征。数据流的报文的四元组(或五元组)以及报文的头部特征等参数可以统称为数据流的通信参数。
在进行报文解析之后,根据解析结果查询流表,并更新流表的统计信息。流表中存储了各个应用中数据流的标识信息、以及各个数据流的报文总数、收发字节数(包括接收字节数和发送字节数)、错误包数量等。进一步的,可以根据报文总数确定是否下行无响应,例如,连续两个周期内接收到的报文总数相同,则确定下行无响应。可以根据收发字节数确定传输速率,例如,上一周期和本周期接收到的字节数的差值与周期的比值为本周期下行速率。可以根据报文中携带的序列号确定丢包情况,例如,丢包率(loss tolerance或packetloss rate)可以是缺失的序列号的数目与现有的序列号的数目的比值。当然,上述参数的确定方式仅用于举例,在实际应用中,还可以通过其他方式确定上述参数。
数据流的报文总数、错误包数量、丢包率、收发字节数、速率(上行速率、下行速率)等信息可以统称为数据流的统计信息。
实际应用中,各个流的统计信息还可以包括其他信息,例如,数据流随时间变化的流量分布信息、数据流的报文的时延信息等。
当然,若流表中不存在某个数据流的标识信息或相关统计信息时,则可以在流表中增加该数据流的标识以及相关的统计信息。
在查流表并更新流表信息之后,则可以对报文进行分析。例如,过滤报文,从而得到全部或部分报文。
作为一种示例,该过滤过程可以是过滤某个数据流的心跳包报文。则经过过滤处理后,得到该数据流的心跳包报文。该过滤处理过程可以是:通过预先设置某些特征,将满足该特征的报文保留。即满足预先设置的某些特征的报文就为过滤后的报文。
其中,心跳包报文为按照一定的时间间隔存在于数据流中的报文。心跳包报文在固定位置(例如第6个字节)存在固定特征(例如0x64或0x65)。由于该心跳包报文为按照一定时间存在的报文,因此可以基于该心跳包报文计算获得时延(例如,手机向服务器发送心跳请求报文开始,到手机接收到服务器反馈的心跳响应报文为止,总共经历的时间)。
上述示例以过滤心跳包为例进行说明,实际应用中,还可以过滤处理以获得满足其它特征的数据包报文。
作为另一示例,过滤条件还可以包括:选择保留特定长度的数据包报文。在具体实现时,确定数据包报文的长度是否为预先设置的特定长度,若是,则保留该报文,若否,则将该报文过滤掉。
经过上述处理后,得到的过滤后的部分报文被存储在套接字缓存(Socket-Buffer,SKB)队列(queues)中。
SKB队列中存储的数据流的报文上报时的策略包括:立即上报和定期上报。
若为立即上报,流量上报模块中的特定线程及时查看队列,将队列中的报文及时上报给流量管理模块。
若为定期上报,流量上报模块中设置了定时器,基于该定时器设置的时间以一定的周期查看SKB队列中的报文,将队列中的部分或全部报文上报给流量管理模块。
当然,实际应用中,SKB队列中存储的数据流的报文有些是需要立即上报的,有些是需要定期上报的。同样的原理,流量上报模块中的特定线程及时查看队列,将队列中的需要立即上报的报文及时上报给流量管理模块。流量上报模块中还设置了定时器,基于该定时器设置的时间以一定的周期查看SKB队列中的报文,将队列中的需要定期上报的报文上报给流量管理模块。
需要说明,上报报文时,还可以一并上报该报文相关的统计信息。
基于上述理解,流量上报模块并不是将Netfilter组件发送的所有报文均上报给流量管理模块。而是,将满足特定特征的报文(可以携带该满足特定特征的报文的通信参数和统计信息)上报给流量管理模块。同时上报该满足特征的报文相关的通信参数和统计信息。
作为示例,若报文1和报文2均属于同一数据流的报文。接收到报文1后查流表时,根据报文1更新流表中关于该数据流的统计信息,然而,报文1不满足特定特征,所以报文1被过滤掉,不会上报给流量管理模块。接收到报文2后查流表时,根据报文2更新流表中关于该数据流的统计信息,报文2满足特定特征,所以报文2不会被过滤掉,报文2会被上报给流量管理模块。即虽然上报了部分报文,然而,统计信息是基于该数据流下的所有报文得到的。
305、流量上报模块向流量管理模块周期性上报数据流的通信参数和统计信息。
其中,数据流的通信参数可以包括协议类型、源IP地址和端口/目的IP地址和端口、报文特征、报文信息(payload)。其中,协议类型为应用传输数据流时的协议类型,源IP地址和端口为发送数据流时使用的IP地址和端口,目的IP地址和端口为接收数据流时使用的IP地址和端口,报文特征为应用传输数据流时的数据包的头部特征。数据流的通信参数可以是从数据流的报文的四元组或五元组获取到的。
例如,某社交通信类应用在进行音视频通话时,数据流对应的数据包的头部特征为97开头,即data[0]=97,传输数据包时采用UDP协议,源IP地址和端口分别为221.11.6.XX和8080,目的IP地址和端口分别为221.14.4.XX和5050。
数据流的统计信息可以包括往返时延(round trip time,RTT)、丢包率、收发字节数、速率(上行速率、下行速率)等。其中,收发字节数包括发送字节数(即上传流量)和接收字节数(即下载流量)。丢包率为丢失数据包数量占所发送数据包的比率。上行速率为发送数据流的速率,下行速率为接收数据流的速率。RTT表示从电子设备(发送端)发送数据开始,到接收收到来自对端(接收端)的确认(对端接收到数据后便立即发送确认),总共经历的时长。
例如,某社交通信类应用在进行音视频通话时,收发字节数分别为10MB/8MB,上行速率和下行速率分别为200kbit/180kbit,RTT为50ms。
当然,实际应用中,流量上报模块还可以向流量管理模块上报应用网络报文的其他参数,例如流间隔时间、包间隔时间、包大小和流量分布等信息,本申请不做限定。
可选的,流量上报模块可以通过一条消息上报上述应用网络报文的通信参数和统计信息,或者,可以通过多条消息分别上报应用网络报文的通信参数和统计信息,本申请不做限定。
306a、流量管理模块根据数据流的通信参数和统计信息周期性进行网络质量评估得出当前QoE测量结果。
流量管理模块接收到应用A的数据流的通信参数和统计信息后,可以查询应用A的流特征库,比如可以根据报文的协议类型、端口、报文协议头等特征识别出前台运行的应用的业务场景(例如,识别出是抖音的短视频播放场景)并记录到流表中。其中,应用A的流特征库中存储该应用A的数据流的各种信息,例如,应用A使用当前网络时采用的协议的协议特征,应用A使用当前网络时传输的数据包的头部特征等。当然,还可以包括应用A使用当前网络时的流量特征等,在此不做限定。
流量管理模块可以定期对前台运行的应用的数据流进行QoE评估。实际应用中,不同的应用对应的QoE评估条件可以相同或不同。其中,QoE评估条件可以是指连续几个周期内数据流的统计信息满足的条件。同一个应用的不同业务场景对应的QoE评估条件可以相同或不同。例如,游戏应用的对战场景和跑图场景的QoE评估条件可以不同,又例如,视频应用中的视频选择场景、视频播放场景,小窗播放场景的QoE评估条件可以不同,基于不同的业务场景设计不同的QoE评估条件可以使得QoE评估更加准确。不同业务场景可以通过通信参数进行区分,通信参数满足的条件不同时,通信参数对应的业务场景也不同。同一个应用的同一个业务场景可以对应一种或多种QoE评估条件。每种QoE评估条件对应一个QoE测量结果(也可以称为QoE评估结果)。多种QoE评估条件可以对应同一个QoE测量结果,满足该多种QoE评估条件中的任一种时,可以得到相同的QoE测量结果。
以的对战场景为例,王者荣耀的对战场景对应的QoE评估条件可以是根据丢包率和/或时延满足的条件评估对战的卡顿情况。例如,若对战场景中丢包率满足3s内连续出现2次丢包20%的条件,和/或,对战场景的时延满足4s内连续出现2次时延超过200ms的条件,可以认为王者荣耀的对战场景的QoE测量结果为差,即对战过程中发生卡顿。
示例性的,QoE测量结果可以包括:优(流畅不卡顿)、中(可能卡顿)和差(卡顿)。例如,QoE测量结果为优的标识可以为00,QoE测量结果为中的标识可以为10,QoE测量结果为差的标识可以为11。
如表3所示,可以根据数据流的通信参数满足的条件对前台运行的应用的当前业务场景进行区分。进一步的,可以根据不同业务场景对应的不同QoE评估条件确定相应业务场景的QoE测量结果。应用程序的数据流的通信参数和统计信息分别满足不同条件时,QoE测量结果是不同的。
表3
其中,表3中的com.tencent.mm为微信包名,com.tencent.tmgp.sgame为王者荣耀包名。表3中一个条目表示应用程序的数据流的通信参数和统计信息分别满足相应条件时,可以得到相应的QoE测量结果。例如,王者荣耀的数据流采用udp协议+任意端口+0x10报文头部时,且该数据流在5个周期内连续3个周期时延超过150ms,或在4个周期内连续3个周期丢包超过20%,则QoE测量结果为差。
表3仅列举了部分应用程序的数据流的QoE评估条件(包括数据流的通信参数和统计信息分别需要满足的条件)和QoE测量结果,且仅用于示例。在实际应用中还可以采用其他不同的QoE评估条件得到QoE测量结果。
在一些情况下,基于表3得到的QoE测量结果可能出现误判的情况。例如,用户使用短视频类应用时,若用户刷到某短视频,短视频类应用开始通过网络通道下载该短视频并缓存已经下载的该短视频的部分数据帧,再从缓存中获取该短视频的数据帧并开始播放。若该短视频的播放时长为15秒,以用户刷到该短视频为时间起点,从时间起点开始至第2秒,单位时间的下载速率会快速增大;从第2秒至第5秒,单位时间的下载速率会快速降低至0;从第5秒至第15秒播放结束,单位时间的下载速率维持0。
若采用上述表3中的条件,若确定端视频应用的数据流连续多个周期的时延超过350ms或连续多个周期的下行速率(均值)小于51kb/s,则表示数据流的QoE测量结果为差。上述示例中,在第5秒至第15秒期间,连续多个周期内的速率(均值)均为0,可能会判定当前数据流发生卡顿,即在当前网络通道上的传输质量较差。
然而,在具体应用中,在第5秒至第15秒期间,该应用的数据流所在的网络通道的网络质量并不差,只是当前没有从其他电子设备下载数据流的需求,所以连续多个周期内的速率均为0。鉴于此,本申请实施例提供另一种评估短视频类应用的QoE测量结果的方法。短视频类应用的数据流的特征如下:采用http协议、通过get向服务器请求视频内容、且get数据包中携带mp4字段。
参见图8,为本申请实施例提供的网络通道质量较好时,短视频类应用的数据流的速率特点。视频流的速率呈周期分布,每个周期包括速率不为0的时间段和速率为0的时间段。
例如,图8中,视频流的速率分布包括:连续的第一时间段、第二时间段和第三时间段,其中,第一时间段、第三时间段的速率不为0,第二时间段的速率为0。在第一时间段中的第一部分的平均速率大于第一值,表示视频流的传输质量满足要求,不需要提升网络质量,电子设备在第三时间段通过第一网卡传输视频流。
参见图9,视频流的速率分布还可以包括:连续的第四时间段、第五时间段和第六时间段,第四时间段和第六时间段的速率不为0,第五时间段的速率为0。在第四时间段中的第二部分的平均速率小于或等于第一值,表示视频流的传输质量不满足要求,需要提升网络质量,电子设备在第六时间段通过电子设备的第二网卡传输视频流,为了评判标准统一,可以设置第二部分的时长和第一部分的时长相等。
为了使得速率为0的情况下,评判标准更精确,还可以设置第一时间段中的第一部分的结束时间和第一时间段的结束时间相同,第四时间段中的第二部分的结束之间和第四时间段的结束时间相同。
根据图8所示的速率特点和图9所示的速率特点可以理解:速率为0的情况比较特殊,在评估短视频类应用的视频流的传输质量时需要将速率为0的情况单独考虑。
速率不为0的一段时间段内,该段时间内可以选取一部分时间(例如,和第一部分的时长相同),可以记为第七时间段,确定第七时间段的平均速率小于或等于第一值,电子设备在第八时间段通过第二网卡传输视频流,其中,第八时间段的开始时间为第七时间段的结束时间。当然,确定第七时间段的平均速率大于第一值,电子设备在第八时间段通过第一网卡传输视频流。
在具体实现时,可以将速率为0的情况和速率不为0的情况分开考虑。其中,本申请实施例中的速率均表示周期性(例如,300ms、400ms、500ms、600ms、700ms等)的获得该周期内的视频流的平均下行速率。此时的周期和图8和图9中的速率不为0和为0的周期性分布中的周期不同,周期(例如500ms)性的获得该周期内以采集周期(例如,10ms、50ms、100ms等)采集的下行速率值的平均下行速率时,获得平均下行速率的周期用于获得采集的下行速率的均值,可以记为均值周期。后续实施例中周期均表示均值周期。后续实施例中与周期性相关的速率值均表示该周期内的平均下行速率值。
平均速率不存在0的情况:多个(例如,2个,3个,4个,5个等)均值周期内的平均速率均较小,则该数据流的传输质量较差。当然,也可以是1个均值周期内的平均速率值较小,则该数据流的传输质量较差。
平均速率存在0的情况:由于网络原因导致平均速率出现0的情况,通常平均速率出现0之前,平均速率已经开始变小(在具体实现时,可以取一段时间内的平均速率,该段时间的结束时间可以为速率变为0的时间),这种情况才需要提升传输质量;由于当前播放的短视频缓存结束导致平均速率出现0的情况,通常平均速率出现0之前平均速率仍然较大,这种情况不需要提升传输质量。所以,平均速率出现0时,需要追溯到平均速率首次变为0的均值周期之前一个均值周期(最后一个非0速率的均值周期)的平均速率;在具体实现时,可以将平均速率出现0的周期的平均速率延用平均速率首次变为0时上一个均值周期(最后一个非0速率的均值周期)的平均速率。当然,也可以理解每出现平均速率为0的情况,均延用上一均值周期的平均速率。然后在多个均值周期内的平均速率均较小时,则该数据流的传输质量较差。
鉴于上述描述,可以设置以多个均值周期的平均速率作为参考。首先根据单个均值周期(可以记为第一周期)的平均速率确定当前均值周期的周期传输质量,然后根据多个均值周期的周期传输质量确定当前数据流的数据流传输质量。
在确定单个均值周期的周期传输质量时,若平均速率不为0,则可以在平均速率小于或等于阈值A(可以等于第一值,也可以不等于第一值)的情况下,判定当前均值周期的周期传输质量为差;在平均速率大于阈值A的情况下,判定当前均值周期的周期传输质量为优。若平均速率为0,在延用上一均值周期的平均速率的情况下,相当于延用了上一均值周期的周期传输质量(差或优)。因此在上一均值周期的周期传输质量为差的情况下,认为当前均值周期的周期传输质量也为差,在上一均值周期为优的情况下,认为当前均值周期的周期传输质量也为优。本申请实施例对平均速率为0的情况采用延用上一均值周期的周期传输质量还是延用上一均值周期的速率不做限定。当然,实际应用中,平均速率为0时,也可以根据过去多个均值周期(例如,3,5,7个等)的周期传输质量确定,例如,根据多个均值周期传输质量的标识中的众数确定。
综上所述,单个均值周期的周期传输质量的结果包括以下:
优:本均值周期的平均速度大于或等于阈值A(例如,50kb/s);或者,平均速率等于0、且上一个均值周期的周期传输质量为优。
差:平均速度小于阈值A、且不等于0;或者,平均速率等于0、且上一个均值周期的周期传输质量为差。
在确定各个均值周期的周期传输质量之后,在当前均值周期可以查看本均值周期以及本均值周期之前连续的M-1个均值周期的周期传输质量,在连续的M个均值周期的周期传输质量中,若存在至少N个均值周期的周期传输质量为差,则判定数据流的数据流传输质量为差。其中,N小于或等于M。若少于N个均值周期的周期传输质量为差,则判定数据流的数据流传输质量为优。
306b、流量管理模块周期性向决策模块上报当前QoE测量结果。
需要说明的是,应用A启动之后,流量上报模块可以周期性检测应用A使用的网络的网络质量,并周期性上报应用网络报文的通信参数和统计信息。流量管理模块根据应用网络报文的通信参数和统计信息周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果,直至应用A关闭。
也就是说,在应用A启动期间(或前台运行期间),流量上报模块一直在周期性检测应用A使用的网络的网络质量,流量管理模块一直在周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果。
即,步骤305-步骤306b在应用A启动期间(或前台运行期间)可以周期性执行。
另外,应用A启动之后,还可以包括以下步骤:
307、应用A向网络加速服务模块发送注册请求,该注册请求用于请求获取网络的QoE,以便应用A可以感知网络质量的变化。
308、网络加速服务模块向感知模块发送注册请求。
309、感知模块向网络加速服务模块发送注册结果,注册结果为成功。
感知模块接收到应用A的注册请求后,可以进行以下判断:(1)查询应用配置库确定应用A是否支持网络加速;(2)确定应用A是否在前台运行;(3)确定应用A是否具备网络加速权限。
感知模块接收到应用A的注册请求后,对注册的应用(应用A)进行鉴权和校验,例如可以进行以下判断:(1)查询应用配置库确定应用A是否支持网络加速;(2)确定应用A是否在前台运行;(3)确定应用A是否具备网络加速权限。需要说明的是,应用A若需要注册网络加速服务,首先可以在开发者网站(例如,荣耀开发者网站)上注册开发者,注册开发者成功后可以申请appid和网络加速服务kit的权限。kit是一种用于向应用层(的应用程序)提供基础服务的软件开发工具包(software development kit,SDK)。后续感知模块检查应用A是否是荣耀开发者网站上注册过的合法用户,并且查看应用A是否具有网络加速服务kit的权限(即网络加速权限)。其中,具有网络加速权限的应用可以从电子设备的操作系统获取自身数据流的QoE测量结果,应用可以根据QoE测量结果确定是否进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。
若感知模块确定应用A支持网络加速,在前台运行,且具备网络加速权限,确定应用A注册成功。而后,感知模块可以通过网络加速服务模块向应用A发送注册结果,注册结果为成功。
310、网络加速服务模块向应用A发送注册结果。
需要说明的是,步骤302-步骤306b和步骤307-步骤310之间没有必然的执行先后顺序,可以是先执行步骤302-步骤306b,再执行步骤307-步骤310;也可以是先执行步骤307-步骤310,再执行步骤302-步骤306b;还可以是同时执行步骤302-步骤306b和步骤307-步骤310;本实施例对上述各步骤之间的执行先后顺序不作具体限定。
311、感知模块查询应用A对应的不需要系统加速的业务场景。
感知模块感知到应用程序启动/切换到前台,并确定该应用程序是支持网络加速的应用程序,还可以查询该应用程序对应的不需要系统加速的业务场景。
需要说明的是,支持网络加速的应用程序包括两种类型的业务场景,一种类型的业务场景是需要系统加速的业务场景,另一种类型的业务场景是不需要系统加速的业务场景。其中,其中,系统加速是指电子设备的操作系统根据不同的应用类别和/或不同的业务场景设置网络加速策略,并在满足预设条件的情况下执行网络加速策略。当前的业务场景是需要系统加速的业务场景时,电子设备的操作系统可以在预设条件的情况下执行预设网络加速策略(例如,将应用当前的业务场景对应的数据流从正在使用的网络通道切换到网络质量更优的网络通道)。当前的业务场景是不需要系统加速的业务场景时,电子设备的操作系统可以在满足预设条件(例如,网络卡顿)时,向应用发送QoE测量结果,以便应用根据QoE测量结果进行网络加速。
感知模块中可以存储多个应用程序(支持网络加速的应用程序)对应的不需要系统加速的业务场景。如表4所示,示例性示出部分应用程序对应的不需要系统加速的业务场景。
表4
感知模块通过查表(例如,表4),可以确定应用A对应的不需要系统加速的业务场景。例如,若应用A为则应用A不需要系统加速的业务场景包括对战场景。表4仅是一种示意,实际实现时应用程序可以包括其他或更多不需要系统加速的业务场景。
312、感知模块向决策模块通知应用程序对应的不需要系统加速的业务场景。
313、决策模块记录应用A对应的不需要系统加速的业务场景。
可以理解的是,应用程序在运行过程中,可以进入、切换、退出各种业务场景。以应用A为游戏类应用为例,示例性的,游戏类应用可以包括不同的类型的业务场景,比如登录场景,跑图场景,对战场景,结算场景、大厅场景等。下面以应用A进入对战场景为例进行说明。
314、应用A进入对战场景,通知网络加速服务模块其进入对战场景。
示例性的,如图10中的(a)所示,响应于用户在游戏的模式选择界面501选择对战模式对应的控件502的操作,如图10中的(b)所示,手机可以显示对战模式界面503。
315、网络加速服务模块通知感知模块应用A进入对战场景。
316、感知模块通知决策模块应用A进入对战场景。
317、决策模块确定对战场景属于不需要系统加速的业务场景,且当QoE测量结果发生变化时,决策模块向感知模块发送QoE测量结果。
当数据流的QoE测量结果发生变化时(例如,Qoe测量结果由优变为差,或者由差变为优时),决策模块向感知模块发送QoE测量结果。
当前QoE测量结果是差时,决策模块检测到当前应用程序的业务场景(视频播放)不需要系统加速,则通过感知模块和网络加速服务模块向应用程序发送QoE测量结果,不进行系统加速,仅将QoE测量结果通知给应用程序。
318、感知模块向网络加速服务模块通知QoE测量结果。
319、网络加速服务模块向应用A通知QoE测量结果。
320、应用A根据QoE测量结果进行网络加速。
当QoE测量结果为差(卡顿)时,应用A(第一应用)进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。
以应用A为游戏类应用为例,应用A接收到QoE测量结果,当QoE测量结果为差时,应用A可以切换游戏服务器、降低游戏帧率,以减少卡顿现象;当QoE测量结果为优时,应用A可以再次切换游戏服务器(切换到原始服务器)、提高游戏帧率,以提升用户体验。
又例如,若应用A为视频类应用,应用A接收到QoE测量结果,当QoE测量结果为差时,应用A可以降低当前视频的分辨率,以减少视频卡顿现象;当QoE测量结果为优时,应用A可以恢复视频的分辨率,以提升用户体验。
321、应用A退出对战场景,通知网络加速服务模块其退出对战场景。
应用A退出对战场景后,可能进入其他场景(隐秘场景),然而应用A可能不愿向系统暴露该隐秘场景,因此可以仅通知网络加速服务模块其退出对战场景。或者,应用A退出对战场景后,又进入跑图场景,即从对战场景切换到跑图场景,可以直接向网络加速服务模块通知其切换到跑图场景。
322、网络加速服务模块通知感知模块应用A退出对战场景。
或者,网络加速服务模块通知感知模块应用A切换到跑图场景。
323、感知模块通知决策模块应用A退出对战场景。
或者,感知模块可以通知决策模块应用A切换到跑图场景。
324、决策模块确定应用A退出对战场景后,若确定流量管理模块上报的QoE测量结果较差,则执行系统加速策略,请求一条新的网络通道进行调优。
325、决策模块向路径管理模块发送更优路径请求。
更优路径请求用于请求一条相比当前网络路径更优的网络路径。
326、路径管理模块激活并探测网络质量,确定存在更优的网络路径。
路径管理模块接收到决策模块发送的更优路径请求时,可以激活并探测网络质量,确定是否存在更优的网络路径。
在实际应用中,若电子设备中设有2.4GHz频段的无线网卡1、5.0GHz频段的无线网卡2、运营商A的数据业务网卡1和运营商B的数据业务网卡2。则可以默认无线网卡1或无线网卡2中的一个为主Wi-Fi,另一无线网卡为副Wi-Fi;默认运营商A的数据业务网卡1和运营商B的数据业务网卡2中的一个为主卡,另一个数据业务网卡为副卡。
作为示例,2.4GHz频段的网络通道为主Wi-Fi网络,5.0GHz频段的网络通道为辅Wi-Fi网络,数据业务网卡1对应的网络通道为主蜂窝网络,数据业务网卡2对应的网络通道为辅蜂窝网络。
在主Wi-Fi网络可用的情况下,系统默认电子设备或前台应用当前的主用网络为主Wi-Fi网络,在主Wi-Fi网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为主卡蜂窝网络。在主卡蜂窝网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为副Wi-Fi网络,在副Wi-Fi网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为副卡蜂窝网络。
在应用A开启后在前台运行时,应用A按照上述规则使用主用网络;即使应用A在前台时,系统将应用A中的部分数据流切换到其他网络上,在应用A切换到后台后,应用A中的数据流恢复使用系统默认的主用网络;在应用A从后台切换到前台后,应用A继续使用系统默认的主用网络。
路径管理模块可以按照主Wi-Fi、主卡网络、副Wi-Fi和副卡网络的顺序依次请求,直到找到一条可用且质量满足要求(网络质量优于当前正在使用的网络通道)的网络。
327、路径管理模块向决策模块通知更优的网络路径。
路径管理模块可以将上述可用且质量满足要求的网络的网络路径通知给决策模块。
328、决策模块接收到路径管理模块确定的更优的网络路径后,确定当前QoE测量结果仍然差。
329、决策模块向内核层的策略执行模块通知将应用A的数据流切换到更优的网络通道上。
即决策模块触发切换,以便将应用A的数据流切换到更优的网络通道上。
330、策略执行模块将应用A的数据流切换到更优的网络通道上。
这样,应用A可以通过更优的网络通道进行上网,可以提高用户体验。
在一些实施例中,决策模块可以向内核层的策略执行模块通知将应用A的数据流切换到多条质量较优(网络质量优于当前正在使用的网络通道)的网络通道上。策略执行模块将应用A的数据流切换到多条质量较优的网络通道上,以便应用A可以通过多条质量较优的网络通道进行上网,可以提高用户体验。
当应用A停止运行或切换到后台时,可以执行以下步骤:
331、应用A向网络加速服务模块发送去注册请求,请求停止为应用A进行网络加速和QoE测量。
332、网络加速服务模块向感知模块发送去注册请求。
333、感知模块向决策模块通知停止应用A的网络加速和QoE测量。
感知模块感知到应用A停止运行或切换到后台或接收到应用A发送的去注册请求后,停止对该应用进行网络加速,恢复数据流,释放已请求的网络。后续也不再向应用A发送QoE测量结果。
334、决策模块向策略执行模块通知停止应用A的网络加速和QoE测量。
335、策略执行模块停止应用A的网络加速和QoE测量。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于本申请实施例提供的网络加速方法,操作系统可以从前台应用程序获取当前的业务场景(即操作系统获取前台应用程序当前的业务场景),根据当前的业务场景确定网络加速策略。例如,在当前的业务场景为第一场景时,操作系统可以向前台应用程序发送QoE测量结果,以便应用程序根据QoE测量结果进行网络加速(例如,若应用程序为视频应用,视频应用可以根据QoE测量结果调整视频分辨率以及缓存策略等);在应用程序当前的业务场景为第二场景时,可以进行系统加速,例如操作系统可以选择一条比当前正在使用的网络通道质量更优的网络通道,并将应用程序的数据流切换到更优的网络通道上。这样充分发挥了电子设备的操作系统和应用程序的优势,使得操作系统和应用程序可以协同进行网络加速,能够避免操作系统实现的网络加速策略和三方应用程序自身设置的网络加速策略发生冲突,导致操作系统和三方应用程序双方的网络加速策略失效或异常的问题,可以提升用户上网体验。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在第一设备上运行时,使得第一设备可实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到第一设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实施例还提供了一种芯片系统,芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请任一方法实施例的步骤。芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (18)
1.一种网络加速方法,其特征在于,应用于电子设备,包括:
所述电子设备运行第一应用;
所述电子设备周期性采集所述第一应用的数据流的体验质量QoE测量结果,所述第一应用的数据流通过第一网络通道传输;
当所述第一应用的数据流的QoE测量结果指示所述第一应用的数据流发生卡顿,且所述第一应用当前的业务场景为第一场景时,所述电子设备的所述第一应用进行网络加速处理,所述网络加速处理包括提前缓存所述第一应用的运行数据、降低所述第一应用的帧率、降低所述第一应用的码率、降低所述第一应用的分辨率中的至少一种。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一应用的数据流的QoE测量结果指示所述第一应用的数据流发生卡顿,且所述第一应用当前的业务场景为第二场景时,将所述第一应用的数据流切换到第二网络通道;
其中,所述第二网络通道的网络质量相比所述第一网络通道更优,所述第二场景与所述第一场景不同。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
所述第一场景和所述第二场景是所述第一应用确定的。
4.根据权利要求1或2所述的方法,其特征在于,
所述QoE测量结果是根据所述第一应用的数据流的通信参数和统计信息确定的,所述通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,所述统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述第一应用的数据流的QoE测量结果指示所述第一应用的数据流不再卡顿,且所述第一应用当前的业务场景为所述第一场景时,所述电子设备停止缓存所述第一应用的运行数据、恢复所述第一应用的帧率、恢复所述第一应用的码率、恢复所述第一应用的分辨率中的至少一种。
6.根据权利要求1或2所述的方法,其特征在于,所述电子设备包括感知模块,所述方法还包括:
所述感知模块感知到所述第一应用启动,查询所述第一应用是否支持网络加速;
其中,所述感知模块中包括应用配置库,所述应用配置库中存储了多个应用程序是否支持网络加速的信息,所述多个应用程序包括所述第一应用。
7.根据权利要求6所述的方法,其特征在于,
所述应用配置库中的所述多个应用程序是基于用户流量消耗情况和用户对应用的使用偏好确定出的需要网络加速的应用程序;或者
所述应用配置库中的所述多个应用程序是基于用户的手动设置确定出的需要网络加速的应用。
8.根据权利要求6所述的方法,其特征在于,所述电子设备还包括决策模块,所述方法还包括:
若确定所述第一应用支持网络加速,所述感知模块向所述决策模块发送网络质量评估请求,所述网络质量评估请求中包括所述第一应用的应用标识、应用的配置信息以及网络质量评估的标准,所述应用的配置信息包括所述第一应用传输数据流时的数据包的头部特征。
9.根据权利要求8所述的方法,其特征在于,所述电子设备的内核层还包括流量上报模块,所述方法还包括:
所述决策模块向所述流量上报模块注册报文监测钩子,所述报文监测钩子用于周期性探测所述第一应用使用的所述第一网络通道的路径,以及监测所述第一应用使用的所述第一网络通道传输的数据流的通信参数和统计信息;
其中,所述通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,所述统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
10.根据权利要求9所述的方法,其特征在于,所述电子设备还包括流量管理模块,所述方法还包括:
所述流量上报模块向所述流量管理模块周期性上报所述第一应用的数据流的通信参数和统计信息;
所述流量管理模块根据所述通信参数和所述统计信息周期性进行网络质量评估得出当前体验质量QoE测量结果;
所述流量管理模块周期性向所述决策模块上报所述当前QoE测量结果。
11.根据权利要求6-10任一项所述的方法,其特征在于,所述电子设备还包括网络加速服务模块,所述方法还包括:
所述第一应用向所述网络加速服务模块发送注册请求,所述注册请求用于请求获取网络的QoE测量结果;
所述网络加速服务模块向所述感知模块发送所述注册请求。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述感知模块接收到所述注册请求后,若确定所述第一应用支持网络加速,所述第一应用在前台运行,且所述第一应用具备网络加速权限,记录所述第一应用的应用信息,向所述感知模块发送注册结果,所述注册结果为成功;
所述感知模块向所述网络加速服务模块发送所述注册结果;
所述网络加速服务模块向所述第一应用发送所述注册结果。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述感知模块查询所述第一应用对应的不需要系统加速的业务场景,所述感知模块中存储多个支持网络加速的应用程序对应的不需要系统加速的业务场景;
所述感知模块向所述决策模块通知应用程序对应的不需要系统加速的业务场景;
所述决策模块记录所述第一应用对应的不需要系统加速的业务场景。
14.根据权利要求12或13所述的方法,其特征在于,若所述第一应用为游戏应用,所述游戏应用包括对战场景,所述方法还包括:
所述第一应用进入对战场景,通知所述网络加速服务模块所述第一应用进入对战场景;
所述网络加速服务模块通知所述感知模块所述第一应用进入所述对战场景;
所述感知模块通知所述决策模块所述第一应用进入所述对战场景;
所述决策模块确定所述对战场景属于不需要系统加速的业务场景,所述决策模块向所述感知模块发送QoE测量结果;
感知模块向网络加速服务模块通知所述QoE测量结果;
网络加速服务模块向所述第一应用通知所述QoE测量结果;
所述第一应用根据所述QoE测量结果进行所述网络加速处理。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
所述第一应用退出所述对战场景,通知所述网络加速服务模块其退出所述对战场景;
所述网络加速服务模块通知所述感知模块所述第一应用退出对战场景;
所述感知模块通知所述决策模块所述第一应用退出对战场景;
所述决策模块确定所述第一应用退出对战场景后,向所述路径管理模块发送更优路径请求,所述更优路径请求用于请求一条相比当前网络通道质量更优的网络通道;
所述路径管理模块激活并探测各个网络通道的网络质量,确定存在相比当前网络通道质量更优的网络通道,向所述决策模块通知所述更优的网络通道;
所述决策模块指示所述策略执行模块将所述第一应用的数据流切换到所述更优的网络通道上;
所述策略执行模块将所述第一应用的数据流切换到所述更优的网络通道上。
16.根据权利要求12-15任一项所述的方法,其特征在于,所述第一应用切换到后台或关闭时,所述方法还包括:
所述第一应用向网络加速服务模块发送去注册请求,所述去注册请求用于请求停止为所述第一应用进行QoE测量;
所述网络加速服务模块向感知模块发送去所述注册请求;
所述感知模块向所述决策模块通知停止所述第一应用的QoE测量;
所述决策模块向所述策略执行模块通知停止所述第一应用的QoE测量;
所述策略执行模块停止所述第一应用的QoE测量。
17.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1至16任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储计算机程序,所述计算机程序在处理器上运行时实现如权利要求1至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211267499.3A CN117915356A (zh) | 2022-10-17 | 2022-10-17 | 一种网络加速方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211267499.3A CN117915356A (zh) | 2022-10-17 | 2022-10-17 | 一种网络加速方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117915356A true CN117915356A (zh) | 2024-04-19 |
Family
ID=90682617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211267499.3A Pending CN117915356A (zh) | 2022-10-17 | 2022-10-17 | 一种网络加速方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117915356A (zh) |
-
2022
- 2022-10-17 CN CN202211267499.3A patent/CN117915356A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3982641A1 (en) | Screen projection method and device | |
WO2020143380A1 (zh) | 一种数据传输方法及电子设备 | |
CN113795040B (zh) | 通道切换方法、电子设备及存储介质 | |
CN114172791B (zh) | 通道切换方法、电子设备及存储介质 | |
WO2023273317A1 (zh) | 通道切换方法、电子设备及存储介质 | |
CN115484648B (zh) | 通道切换方法、电子设备及存储介质 | |
CN110913424A (zh) | 网络连接控制方法和装置、终端、计算机存储介质 | |
WO2020019533A1 (zh) | 一种数据传输方法及电子设备 | |
CN113301586A (zh) | 网络选择方法及电子设备 | |
CN113890905B (zh) | 通道切换方法、电子设备及存储介质 | |
CN113596919A (zh) | 数据下载方法、装置和终端设备 | |
CN116709442A (zh) | 一种无线网络切换方法和电子设备 | |
CN113810965B (zh) | 通道切换方法、电子设备及存储介质 | |
CN116137676B (zh) | 一种网络加速方法、电子设备、芯片系统及存储介质 | |
CN116709368B (zh) | 一种网络加速方法和装置 | |
CN117915356A (zh) | 一种网络加速方法和装置 | |
CN116137730A (zh) | 一种网络加速方法、电子设备、芯片系统及存储介质 | |
WO2024082811A1 (zh) | 一种网络加速方法和装置 | |
CN116709367A (zh) | 一种网络加速方法和装置 | |
RU2802678C1 (ru) | Способ переключения каналов, электронное устройство и носитель хранения данных | |
CN116744329A (zh) | 一种网络加速方法和电子设备 | |
CN116405960B (zh) | 一种网络质量的检测方法及相关电子设备 | |
CN116709432B (zh) | 一种缓存队列调整方法及电子设备 | |
CN116709369A (zh) | 一种网络加速方法及电子设备 | |
CN118075847A (zh) | 一种降低功耗的方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |