一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种网络质量的检测方法及相关电子设备与流程

2022-09-02 21:01:35 来源:中国专利 TAG:


1.本技术涉及网络质量检测领域,尤其涉及一种网络质量的检测方法及相关电子设备。


背景技术:

2.随着电子技术及互联网技术的快速发展,手机等移动设备在人们日常生活中的应用越来越广,例如,可以通过手机进行移动支付及游戏等。为了保证常用业务(例如,游戏,通话、社交软件等业务)的正常运行,通常用户的手机都会连接无线网络。在网络质量变差的情况下,通常会进行网络加速。但是,在用户进行上网过程中,对于网络质量检测往往存在不准确的问题,在网络质量检测不准确的情况下,会发生网络误切的问题,可能会造成用户使用大量的数据流量进行网络加速,在用户数据流量套餐不足的情况下,可能会超出用户的套餐限额,从而使得用户需要缴纳额外的话费,从而降低用户的上网体验。


技术实现要素:

3.本技术实施例提供了一种网络质量检测方法,解决了因网络质量检测结果不准确,使得在网络加速过程中,错误切换网络通道的问题。
4.第一方面,本技术实施例提供了一种方法,包括:响应用户的第一操作,启动第一应用;周期性地接收目标流的报文统计信息;该报文统计信息为第一应用与服务器之间数据流的统计信息;在基于当前周期的报文统计信息判断出第一应用处于暂停下载/停止下载状态的情况下,不记录当前周期的网络质量;基于当前周期的报文统计信息判断上行报文是否为ack报文;在上行报文不为ack报文的情况下,记录下一周期的网络质量。在上述实施例中,判断上行报文是否为ack报文,若上行报文为ack报文,则电子设备按照原有状态检测网络质量,例如,当第一应用处于下载状态的情况下,电子设备基于下行网络速率检测网络质量,当第一应用处于暂停下载/结束下载的情况下,电子设备不记录网络质量。通过这样的方法,能够解决在第一应用处于暂停下载/结束下载的状态下,电子设备将上行报文错误判断为下载请求报文,继续检测下载结束后的网络质量,造成网络质量检测结果的不准确,使得电子设备将这个不准确的网络检测结果作为判断是否进行网络通道切换的参考因素,造成电子设备错误切换第一应用的网络通道的问题。
5.在一种可能实现的方式中,该方法还包括:在上行报文为ack报文的情况下,判断下一周期的上行报文是否为ack报文。
6.在一种可能实现的方式中,基于当前周期的报文统计信息判断上行报文是否为ack报文,具体包括:基于报文统计信息判断上行报文的网络协议是否为gquic协议;在网络协议不为gquic协议的情况下,确定上行报文不为ack报文;在网络协议为gquic协议的情况下,检测上行报文的payload字段的长度是否大于或等于第一阈值;若大于或等于第一阈值,确定该上行报文不为ack报文;若小于所述第一阈值,确定该上行报文为ack报文。这样,电子设备能够区分上行报文为ack报文或下载请求报文,从而能够避免在第一应用处于暂
停下载/结束下载的状态下,电子设备将上行报文错误判断为下载请求报文,继续检测下载结束后的网络质量,造成网络质量检测结果的不准确,使得电子设备将这个不准确的网络质量检测结果作为判断是否进行网络通道切换的参考因素,从而使得电子设备错误切换第一应用的网络通道。
7.在一种可能实现的方式中,基于报文统计信息判断所述上行报文的网络协议是否为gquic协议,包括:判断该上行报文是否存在chlo字段;若存在chlo字段,确定该上行报文的网络协议为gquic协议;若不存在chlo字段,确定该上行报文的网络协议不为gquic协议。这样,通过chlo字段判断上行报文的网络协议是否为gquic协议,可以在确定网络协议是gquic协议的情况下,进一步判断该上行报文是否为ack报文。
8.在一种可能实现的方式中,网络质量为基于当前周期的报文统计信息中的下行网络速率得到的;若下行网络速率小于或等于预设的速率阈值,则当前周期的网络质量记录为差;若下行网络速率大于预设的速率阈值,则当前周期的网络质量记录为优。这样,电子设备能够基于网络质量判断是否进行网络通道的切换,从而避免第一应用出现业务卡顿,降低用户的上网体验。
9.在一种可能实现的方式中,所述基于当前周期的报文统计信息判断上行报文是否为ack报文之后,还包括:在当前的统计周期数量大于m的情况下,获取与当前周期相邻的m个周期的网络质量;判断在该m个周期中,是否超过n个周期的网络质量为差;若判断为是,确定切换所述第一应用的网络通道;若判断为否,确定不切换第一应用的网络通道;在当前的统计周期数量小于或等于m的情况下,获取与当前周期所有相邻的p个周期的网络质量;判断在该p个周期中,是否超过(p*n)/m个周期的网络质量为差;若判断为是,确定切换第一应用的网络通道;若判断为否,确定不切换第一应用的网络通道。这样,电子设备能够基于网络质量判断是否进行网络通道的切换,从而避免第一应用出现业务卡顿,降低用户的上网体验。
10.在一种可能实现的方式中,在基于所述当前周期的报文统计信息判断该上行报文不为述ack报文之后,记录下一周期的网络质量之前,还包括:将下载结束标志设置为第二标识,第二标识用于表征第一应用处于开始下载状态。这样,有利于电子设备在下一个周期判断是否记录网络质量。
11.在一种可能实现的方式中,在基于当前周期的报文统计信息判断出第一应用处于暂停下载/停止下载状态的情况下,不记录当前周期的网络质量,包括:基于当前周期的报文统计信息判断出下载结束标志为第一标识的情况下,不记录当前周期的网络质量;其中,下载结束标志为用于表征第一应用的下载状态;第一标识用于表征第一应用处于暂停下载/停止下载状态。
12.在一种可能实现的方式中,基于当前周期的报文统计信息判断出下载结束标志为第一标志的情况下,不记录当前周期的网络质量之前,还包括:所述当前周期的报文统计信息判断是否将所述下载结束标志设置为所述第一标识;在判断为是的情况下,将下载结束标志设置为所述第一标识;判断下载结束标志是否为第一标识。
13.第二方面,本技术实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设
备执行:响应用户的第一操作,启动第一应用;周期性地接收目标流的报文统计信息;该报文统计信息为第一应用与服务器之间数据流的统计信息;在基于当前周期的报文统计信息判断出第一应用处于暂停下载/停止下载状态的情况下,不记录当前周期的网络质量;基于当前周期的报文统计信息判断上行报文是否为ack报文;在上行报文不为ack报文的情况下,记录下一周期的网络质量。
14.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备还执行:在上行报文为ack报文的情况下,判断下一周期的上行报文是否为ack报文。
15.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:基于报文统计信息判断上行报文的网络协议是否为gquic协议;在网络协议不为gquic协议的情况下,确定上行报文不为ack报文;在网络协议为gquic协议的情况下,检测上行报文的payload字段的长度是否大于或等于第一阈值;若大于或等于第一阈值,确定该上行报文不为ack报文;若小于所述第一阈值,确定该上行报文为ack报文。
16.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令还可以使得该电子设备执行:基于报文统计信息判断所述上行报文的网络协议是否为gquic协议,包括:判断该上行报文是否存在chlo字段;若存在chlo字段,确定该上行报文的网络协议为gquic协议;若不存在chlo字段,确定该上行报文的网络协议不为gquic协议。
17.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令还可以使得该电子设备执行:在当前的统计周期数量大于m的情况下,获取与当前周期相邻的m个周期的网络质量;判断在该m个周期中,是否超过n个周期的网络质量为差;若判断为是,确定切换所述第一应用的网络通道;若判断为否,确定不切换第一应用的网络通道;在当前的统计周期数量小于或等于m的情况下,获取与当前周期所有相邻的p个周期的网络质量;判断在该p个周期中,是否超过(p*n)/m个周期的网络质量为差;若判断为是,确定切换第一应用的网络通道;若判断为否,确定不切换第一应用的网络通道。
18.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令还可以使得该电子设备执行:将下载结束标志设置为第二标识,下载结束标志用于表征第一应用的下载状态。这样,有利于电子设备在下一个周期判断是否记录网络质量。
19.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令以使得该电子设备执行:在基于当前周期的报文统计信息判断出第一应用处于暂停下载/停止下载状态的情况下,不记录当前周期的网络质量,具体包括:基于当前周期的报文统计信息判断出下载结束标志为第一标识的情况下,不记录当前周期的网络质量;其中,下载结束标志为用于表征第一应用的下载状态;第一标识用于表征第一应用处于暂停下载/停止下载状态。
20.在一种可能实现的方式中,该一个或多个处理器调用该计算机指令还可以使得该电子设备执行:所述当前周期的报文统计信息判断是否将所述下载结束标志设置为所述第一标识;在判断为是的情况下,将下载结束标志设置为所述第一标识;判断下载结束标志是否为第一标识。
21.第三方面,本技术实施例提供了一种电子设备,包括:触控屏、摄像头、一个或多个处理器和一个或多个存储器;所述一个或多个处理器与所述触控屏、所述摄像头、所述一个或多个存储器耦合,所述一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当所述一个或多个处理器执行所述计算机指令时,使得所述电子设备执行
如第一方面或第一方面的任意一种可能实现的方式所述的方法。
22.第四方面,本技术实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
23.第五方面,本技术实施例提供了一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
24.第六方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面的任意一种可能实现的方式所述的方法。
附图说明
25.图1是本技术实施例提供的电子设备100的硬件结构示意图;
26.图2是本技术实施例提供的一种室内网络连接场景图;
27.图3a-图3f是本技术实施例提供的一组用户使用电子设备100在线观看视频的示例性界面;
28.图4是本技术实施例提供的电子设备进行网络切换的架构图;
29.图5是本技术实施例提供的一种第一应用通过gquic协议与服务器进行数据传输的示意图;
30.图6是本技术实施例提供的一种网络质量检测方法的流程图;
31.图7是本技术实施例提供的一种报文监控的架构图;
32.图8是本技术实施例提供的流量感知组件以一个周期为单位检测网络质量的流程图;
33.图9是本技术实施例提供使用gquic协议的上行报文结构图;
34.图10是本技术实施例提供的一种流量感知组件判断上行报文是否为ack报文的流程图;
35.图11是本技术实施例提供一种第一应用下载过程的示意图;
36.图12是本技术实施例提供一种第一应用判断是否切换网络通道的流程图;
37.图13是本技术实施例提供一种电子设备的系统框架图;
38.图14是本技术实施例提供的一种android系统的电子设备的软件结构框图。
具体实施方式
39.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申
请保护的范围。
40.本技术的说明书和权利要求书及所述附图中术语“第一”、“第二”、“第三”等是区别于不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元,或者可选地,还包括没有列出的步骤或单元,或者可选地还包括这些过程、方法、产品或设备固有的其它步骤或单元。
41.附图中仅示出了与本技术相关的部分而非全部内容。在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
42.在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
43.首先对本技术实施例涉及的名词进行示例性而非限定性的说明。
44.1、移动识别模块(subscriber identity module,sim)卡:是gsm系统的移动用户所持有的ic卡,称为用户识别卡。gsm系统通过sim卡来识别gsm用户,同一张sim卡可在不同的手机上使用,gsm手机只有插入sim卡后,才能入网使用。
45.2、全球移动通信系统(global system for mobile communications,gsm):由欧洲电信标准组织etsi制订的一个数字移动通信标准。它的空中接口采用时分多址技术。
46.3、数据业务网卡是支持通过通用分组无线服务(general packet radio service,gprs)、增强型数据速率gsm演进技术(enhanced data rate for gsm evolution,edge)、时分同步码分多址(time division-synchronous code division multiple access,td-scdma)、高速下行链路分组接入(high speed downlink packet access,hsdpa)、宽带码分多址(wideband code division multiple access,wcdma)、长期演进(long term evolution,lte)、第五代移动通信技术(5th generation mobile communication technology,5g)等移动通信技术上网的装置。
47.4、wifi网卡是支持通过无线局域网(wireless local area network,wlan)方式上网的装置。
48.5、谷歌快速udp互联网连接协议(google quick udp internet connections,gquic)是google制定的一种基于udp协议的低时延互联网应用层协议。
49.6、网络通道是指网络中两个或两个以上节点间的任何路由,或网络中一个源地址到一个目的地址的路由。
50.本技术实施例中电子设备的网络通道是指通过使用上述wifi网卡或者数据业务
网卡等上网的装置与其他电子设备例如服务器之间建立的路由。本技术实施例中,将使用wifi网卡建立的网络通道,称为wifi网络通道,将使用数据业务网卡建立的网络通道称为移动数据网络通道。
51.电子设备中可以预先配置多条网络通道,示例性的,该多条网络通道可以包括主wifi网络通道、辅wifi网络通道、主移动数据网络通道及辅移动数据网络通道,其中,上述主wifi网络通道和辅wifi网络通道可以工作在2.4ghz频段或5ghz频段,示例性的,若主wifi网络通道工作在2.4ghz频段,则辅wifi网络通道工作在5ghz频段;若主wifi网络通道工作在5ghz频段,则辅wifi网络通道工作在2.4ghz频段。此外,主移动数据网络通道和辅移动数据网络通道可以和运营商网络对应,例如,主移动数据网络通道可以使用sim卡1(该sim卡1归属于运营商a),辅移动数据网络通道可以使用sim卡2(该sim卡2归属于运营商b)。在通常情况下,主wifi网络通道的优先级高于其余三条通道,因此,主网络通道通常为主wifi网络通道。在通常情况下,考虑电子设备的数据流量消耗,wifi网络通道的优先级高于移动数据网络通道的优先级。可以理解的是,上述预置通道仅是示例性说明,并不构成对本技术实施例的限定,在一些实施例中,还可以包括更多或更少的通道。此外,将主wifi网络通道作为主网络通道也只是优选方案,并不构成对本技术实施例的限定,在一些实施例中,也可以选取其他网络通道作为主网络通道。
52.下面对电子设备100的结构进行介绍。请参阅图1,图1是本技术实施例提供的电子设备100的硬件结构示意图。
53.电子设备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等。
54.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
55.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
56.电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
57.天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆
盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
58.移动通信模块150可以提供应用在电子设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
59.无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wireless local area networks,wlan)(如wi-fi网络),蓝牙(bluetooth,bt),ble广播,全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
60.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
61.显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(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可以包括1个或n个显示屏194,n为大于1的正整数。
62.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
63.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
64.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
65.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解
等。
66.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
67.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
68.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备100可以通过扬声器170a收听音乐,或收听免提通话。
69.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当电子设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
70.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。电子设备100可以设置至少一个麦克风170c。在另一些实施例中,电子设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,电子设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号、降噪、还可以识别声音来源,实现定向录音功能等。
71.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。
72.气压传感器180c用于测量气压。在一些实施例中,电子设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
73.磁传感器180d包括霍尔传感器。电子设备100可以利用磁传感器180d检测翻盖皮套的开合。
74.加速度传感器180e可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
75.指纹传感器180h用于采集指纹。电子设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
76.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
77.骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。
78.下面,结合图2-图3f对本技术实施例提出的网络质量检测方法的应用场景做相关介绍。
79.图2是本技术实施例提供的一种室内网络连接场景图,该室内场景为用户客厅。在用户客厅中包括路由器101,路由器101通过与网络连接,发出wifi信号,使得客厅内的电子
设备100、电视机103以及智能空调104能够通过路由器101发射的wifi信号与网络连接,且电子设备100、电视机103以及智能空调104处于同一局域网内。图2以用户当前使用电子设备100,通过wifi连接网络、在线观看视频为例进行举例说明,假设路由器101发射的wifi信号的覆盖范围仅为客厅,且电子设备100在连接wifi后的网络质量随着电子设备100与路由器101距离的增大而变差。
80.下面,结合图3a-图3f对用户在线观看视频的过程中,由于网络质量变差,电子设备进行网络通道切换的应用场景进行介绍,图3a-图3f是本技术实施例提供的一组用户使用电子设备100在线观看视频的示例性界面。
81.图3a为电子设备100的用户界面10,在用户界面10中包括wifi网络图标301、移动数据图标302、视频应用图标303、网速显示图标304以及其它应用图标。其中,wifi网络图标301用于指示电子设备100已与wifi网络通道连接,移动数据图标302用于指示电子设备100已与移动数据网络通道连接,假设电子设备100具有主sim卡和副sim卡且这两张sim卡都启动了移动数据业务,由图3a可知,电子设备100当前连接了wifi网络通道、主移动数据网络通道(主sim卡对应的网络通道)以及副移动数据网络通道(副sim卡对应的网络通道)。本技术实施例以电子设备100将wifi网络通道作为主网络通道,且当前电子设备100启用的网络通道为主网络通道为例,进行说明。网速显示图标304用于显示当前启用的网络通道的下行速率,例如,如图3a所示,当前wifi网络通道的下行速率为1.4m/s。当电子设备100检测到针对视频应用图标303的单击输入操作后,响应该输入操作,电子设备100显示如图3b所述的用户界面20。
82.如图3b所示,用户界面20为视频应用的主界面,包括视频推荐区域310,视频推荐区域当前显示的视频封面311为“宠物的故事”,当电子设备100检测到针对视频封面311的单击输入操作后,电子设备100显示如图3c所示的用户界面30。
83.如图3c所示,用户界面30为播放视频的界面,由图3c可知,电子设备100当前启用的网络通道为主网络通道(假设主网络通道为wifi网络通道),当前网速为1.8m/s,当前视频的播放进度为05:48。
84.如图3d所示,在视频观看的过程中,用户携带电子设备100从活动区域1移动到活动区域2,再由活动区域2移动到活动区域3开启空调,且活动区域1、活动区域2、活动区域3,与路由器101的距离依次递减。当用户移动到活动区域2后,电子设备100显示如图3e所示的用户界面40。
85.如图3e所示,用户界面40为视频播放界面,当前电子设备100启用的网络通道为主网络通道,当前网速为512k/s,当前视频的播放进度为06:48。由图3e可知,由于电子设备100在活动区域2处的网络质量差于在活动区域1的网络质量,使得电子设备100的网速相较于在活动区域1时有所下降,当用户移动到活动区域3后,电子设备100显示如图3f所示的用户界面50。
86.如图3f所示,用户界面50为视频播放界面,该视频播放界面包括网络加速提示框501,该网络加速提示框501用于提示已开启视频应用的网络加速。例如,图3f中的网络加速提示框501显示“已完成网络通道的切换,进行网络加速”的信息。可以在用户界面50中看到,当前视频应用启用的网络通道为备用网络通道,当前网速为1.8m/s,当前视频的播放进度为06:48。电子设备100完成了由主网络通道到备用网络的切换,且相较于在活动区域2的
网络速率,电子设备在活动区域3切换到备用网络通道后,网络速率有大幅提高。
87.应该理解的是,上述图3a-图3f示出的是电子设备在放视频的过程中,由于电子设备与路由器直线距离的改变,引起网络质量的变化,电子设备在基于检测的网络质量,进行网络通道切换的一组示例性用户界面,不应对本技术实施例形成限制。
88.上述图2-图3f介绍了电子设备进行网络质量检测的应用场景。在上述实施例中,用户从活动区域1移动到活动区域2,再从活动区域2移动到活动区域3的过程中,由于电子设备与路由器的直线距离不断增大,导致网络质量变差,进而使得电子设备的网络速率不断降低。当电子设备的网络速率降低到某一特定阈值时,电子设备会将切换网络通道(例如,从wifi网络通道切换到主移动数据网络通道),切换后的网络质量相较于切换前的网络质量更好。
89.下面,结合附图对电子设备网络质量检测方法的原理进行介绍,如图4所示,电子设备通过wifi网络通道与服务器进行数据流的传输,在wifi网络通道中包括多条流通道(图中只列举了两条流通道),其中,流通道a用于传输应用1向服务器的上行数据流,流通道b用于服务器向应用1传输下行数据流。当应用1通过流通道1向服务器发送上行报文后,电子设备开始检测下行数据流网络质量(例如,下行数据报的传输速率、数据报的延时、丢包率等等),在检测到数据流的网络质量变差时,将应用1与服务器之间的数据流切换到移动数据网络通道上进行传输。
90.应用1与服务器通常使用udp协议传输报文,应用1先向服务器发送上行下载请求报文,用于与服务器进行通信,当服务器接收到上行下载请求报文之后,会向应用1发送下行数据流,此时,会触发电子设备对下行数据流进行报文检测,从而检测当前数据流的网络质量,根据网络质量判断是否需要进行网络通道的切换。当服务器发送下行数据流结束后,电子设备不再进行网络质量检测、网络通道切换等相关操作。
91.然而,如图5所示,当应用1使用gquic等协议传输上行报文时,应用1向服务器发送上行下载请求报文后,服务器向应用1发送下行数据流。在服务器向应用1发送下行数据流的过程中,应用1可能会向服务器发送上行的ack等确认报文,这类确认报文仅仅是用于通知服务器,应用1已接收到服务器发送的下行数据流,没有其它的作用。电子设备通常基于下行网络速率对网络质量进行检测,而下行网络速率是基于服务器向应用1发送的下行数据流测得的,因此,应用1向服务器发送上行ack等确认报文不会影响下行速率的准确性。所以,在服务器向应用1发送下行数据流的过程中,如果应用1发送上行确认报文,不会影响网络质量的检测结果,但是,当服务器停止/暂停向应用1发送下行数据流后,若应用1向服务器发送上行确认报文,而电子设备不能识别该上行确认报文,将其当作下载请求报文,会使得电子设备将接收该上行确认报文后的下行网络速率作为网络质量好坏的因素,使得电子设备检测网络质量的结果不准确,从而造成网络通道错误切换的情况。若电子设备将wifi网络通道切换到移动数据网络通道,会因为进行网络加速而耗费大量的移动数据流量,对于一些用户流量套餐总额不多或者剩余流量不多的用户,可能造成流量超出套餐限额,从而使得用户多缴超出套餐限额部分的话费,进而给用户带来不好的使用体验。
92.为了解决电子设备因为不能识别ack等确认报文,而造成电子设备网络质量的检测结果不准确,进而造成的网络通道误切的问题,本技术实施例提供了一种网络质量检测方法,下面,结合图6对该网络通道切换方法的具体流程进行说明。请参见图6,图6是本技术
实施例提供的一种网络质量检测方法的流程图,具体流程如下:
93.步骤s601:响应于用户的第一操作,启动第一应用。
94.具体地,用户在电子设备中打开第一应用,第一应用启动。示例性的,如图3a所示,当电子设备100检测到针对视频应用图标的输入操作后(例如,单击),启动视频应用。可以理解的是,上述实施例仅是示出了通过点击的方式启动第一应用(视频应用)的场景,并不构成对本技术实施例的限定,在一些实施例中,还可以通过其他的操作方式(例如,双击、滑动等操作)启动第一应用。
95.其中,第一应用为网络应用,即需要进行联网的应用,例如,第一应用可以为在线视频应用、在线音乐应用、在线短视频应用、联机游戏应用、社交软件应用等。
96.步骤s602:环境感知组件探测到第一应用切换到前台后,向策略管理组件发送第一通知消息。
97.具体地,电子设备服务层中的环境探测组件可以对第一应用的状态进行检测,当环境感知组件检测到任一应用切换到前台后,发送第一通知消息给策略管理组件。其中,第一通知消息用于通知策略管理组件第一应用已切换到前台。其中,第一通知消息包括第一应用的身份标识,该身份标识用于标识第一应用的唯一身份。
98.步骤s603:策略管理组件接收环境感知组件发送的第一通知消息后,判断第一应用是否满足开启网络加速的条件。
99.具体地,当应用级策略管理组件接收第一通知消息后,可以获知第一应用切换到前台,然后,应用级策略管理组件通过查询应用配置库来判断第一应用是否满足开启网络加速的条件。其中,应用配置库包括电子设备所有应用程序的配置信息,该配置信息包括但不限于每个应用程序是否被授予网络加速的权限。策略管理组件基于第一应用的身份标识在应用配置库获取第一应用的配置信息,并确定第一应用是否有网络加速的权限,若有网络加速的权限,则第一应用程序满足网络加速的条件,否则,第一应用程序不满足网络加速的条件。
100.步骤s604:在第一应用满足开启网络加速条件的情况下,策略管理组件向流级路径管理组件发送通道启用消息,请求启用主网络通道。
101.具体地,若策略管理组件确定第一应用满足开启网络加速的条件下,则可以启动针对第一应用的加速业务,并且,向流级路径管理组件发送加速启用消息,该加速启用消息用于指示流级路径管理组件可以启动针对于第一应用的加速业务。
102.上述加速业务可以包括但不限于:在电子设备所处环境或者电子设备的系统环境变化时,启用一条备用网络通道,使得该备用网络通道从休眠状态转换为唤醒状态;和/或,监控第一应用中若干条流的网络质量,在电子设备监控到第一应用的某条流质量变差时,将第一应用包括上述质量变差的流在内的多条流切换至备用网络通道,从而使得网络应用的上述多条流始终承载在质量相对较好的网络通道上,保证流的传输质量,降低第一应用出现业务卡顿的可能性,提升用户体验。
103.需要说明的是,如果决策将多条流切换至备用网络通道时,电子设备已经启用了备用网络通道,则将多条流切换至已经启用的备用网络通道,如果决策将多条流切换至备用网络通道时,电子设备未启用备用网络通道,则,电子设备需要先启用一条备用网络通道,再切换至已启用的备用网络通道。
104.可选地,加速启动消息中可以包括第一应用的身份标识对应的信息,例如可以包括:第一应用的身份标识,目标流类型,目标流类型对应的流模型、网络质量评估参数信息、以及流切换策略信息。具体可以参考前述相关说明,这里不赘述。
105.步骤s605:流级路径管理组件向流量上报组件发送第二通知消息。
106.具体地,第二通知消息用于通知流量上报组件,第一应用已被切换到前台,并指示流量上报组件监控第一应用与服务器之间的数据流。
107.步骤s606:流量上报组件接收流级路径管理组件发送的第二通知消息后,注册报文监控钩子。
108.具体地,流量上报组件接收流级路径管理组件发送的第二通知消息后,注册报文监控钩子,该报文监控钩子用于监控网络通道中,第一应用与服务器之间的数据流。
109.步骤s607:流级路径管理组件向通道级路径管理组件请求主网络通道。
110.具体地,流级路径管理组件在接收到通道启用消息后,流级路径管理组件向通道级路径管理组件请求主网络通道。本技术实施例以电子设备支持同时使用两张sim卡(主卡和副卡),且两张sim卡开启了移动数据服务,且所述电子设备同时连接了两个wifi网络通道(主wifi网络通道和副wifi网络通道)为例进行举例说明。由于,电子设备开启了两张sim卡的移动数据服务,且电子设备同时连接了两个wifi网络通道,因此,电子设备当前连接了四个网络通道,分别为:主wifi网络通道、主移动数据网络通道、副wifi网络通道和副移动数据网络通道。其中,主wifi、主sim卡、副wifi、副sim卡对应的网络通道依次为:主wifi网络通道、主移动数据网络通道、副wifi网络通道以及副移动数据网络通道。
111.在第一应用启动后,流级路径管理组件可以依次请求主wifi网络通道、主移动数据网络通道、副wifi网络通道以及副移动数据网络通道为主网络通道,若流级路径管理组件当前请求的网络通道可用(流级路径管理组件当前请求的网络通道可以传输第一应用与服务器之间的数据流),则流级路径管理组件将该条网络通道作为主网络通道,并不再请求网络通道,否则,流级路径管理组件根据上述次序依次向通道级路径管理组件请求主网络通道,直至找到一条可用的网络通道。若未找到一条可用的网络通道,则第一应用的网路加速失效,不再对第一应用进行网络加速。例如,流级路径管理组件向通道级路径管理组件请求主wifi网络通道为主网络通道,若主wifi网络通道可用,则将主wifi网络通道作为主网络通道,并且流级路径管理组件不再请求主移动数据网络通道、副wifi网络通道以及副移动数据网络通道作为主网络通道。若主wifi网络通道不可用,则依次按照主移动数据网络通道、副wifi网络通道和副移动数据网络通道次序请求主网络通道,直至找到一条网络通道作为主网络通道。若上述四个网络通道都不可用,则第一应用网络加速失败,不会对第一应用进行网络加速,即切换第一应用的网络通道。
112.应当理解的是,流级路径管理组件可以根据主wifi网络通道、主移动数据网络通道、副wifi网络通道、副移动数据网络通道的顺序依次向通道级路径管理组件请求主网络通道之外,还可以根据其它顺序请求主网络通道,例如,流级路径管理组件可以根据主wifi网络通道、副wifi网络通道、主移动数据网络通道、副移动数据网络通道的顺序依次向通道级路径管理组件请求主网络通道,本技术实施例对此不做限制。
113.此外,流级路径管理组件请求主网络通道的次序也与电子设备连接的网络通道数相关,例如,在电子设备仅连接主wifi网络,开启主sim卡移动数据业务和副sim卡移动数据
的情况下,电子设备仅与主wifi网络通道、主移动数据网络通道、副移动数据网络通道连接,流级路径管理组件向通道级路径管理组件请求主网络通道的顺序可以为主wifi网络通道、主移动数据网络通道、副移动数据网络通道,也可以为基于这三个网络通道的其它组合的次序。本技术实施例对电子设备连接的网络通道数目,以及流级路径管理组件基于电子设备连接的网络通道,向通道级路径管理组件请求主网络通道的次序不做限制。
114.应当理解的是,步骤s607可以和步骤s605同时执行,也可以在步骤s605之前执行,也可以在步骤s605之后执行,本技术实施例对此不做限制。
115.步骤s608:通道级路径管理组件判断流级路径管理组件当前请求的主网络通道是否可用。
116.具体地,当通道级路径管理组件接收到流级路径管理组件发送的主网络通道请求后,通道级路径管理组件会判断流级路径管理组件当前请求的主网络通道是否可用。若不可用,通道级路径管理组件会向流级路径管理组件返回消息,该消息用于通知流级路径管理组件请求的主网络通道不可用,以便流级路径管理组件申请其它网络通道为主网络通道。
117.应当理解的是,在第一应用启动后,流级路径管理组件向通道级路径管理组件发送主网络通道请求后,通道级路径管理组件会定时地记录电子设备连接的所有网络通道的可用性。
118.步骤s609:在流级路径管理组件当前请求的主网络通道为可用网络通道的情况下,通道级路径管理组件向网络连接组件请求启用主网络通道。
119.示例性的,若流级路径管理模块向通道级路径管理模块请求主wifi网络通道为主网络通道,且通道级路径管理模块确定主wifi网络通道可用,通道级路径管理组件会向网络连接组件请求启用主wifi网络通道,使得第一应用与服务器之间的数据流可以在主wifi网络通道上传输。
120.步骤s610:网络连接管理组件启用主网络通道,向通道级路径管理组件反馈主网络通道已启用的通知消息。
121.步骤s611:通道级路径管理组件请求通道质量检测组件检测该主网络通道的通道质量。
122.具体地,通道级路径管理组件在收到主网络通道已启用的通知消息后,通道级路径管理模块向通道质量检测组件请求对当前启用的主网络通道进行质量检测。
123.示例性的,可以根据网络通道的以下至少一个参数对主网络通道的质量进行检测:通道的时延、丢包率、带宽及速率等。举例来说,上述质量检测可以是对主网络通道的往返时延(round-trip time,rtt)进行检测。
124.可选地,当前启用的主网络通道有历史选用记录时,也就是说,当前启用的网络通道曾经被启用过,此时,可以结合上述rtt及历史记录对主网络通道的质量进行评估,其中,该历史记录可以包括历史接收速率、通道质量为差的历史次数等,本技术实施例对上述通道质量的评估方式不做特殊限定。
125.步骤s612:通道质量检测组件将通道质量检测结果发送给通道级路径管理组件。
126.应当理解的是,当通道质量检测组件将网络质量检测结果发送给通道级管理组件之后,通道级管理组件对该网络质量检测结果进行分析,若当前启用的主网络通道的网络
质量未达到要求,通道级路径管理组件执行步骤s609,即:通道级路径管理模块基于流级路径管理模块请求主网络通道的次序(不包括当前启用的网络通道),向网络连接通道请求启动可用网络通道,直至找到一条网络质量达到要求的网络通道作为主网络通道。若未找到一条网络质量符合要求的主网络通道,第一应用的加速失效,不对第一应用进行加速。
127.例如,当前启用的主网络通道为主wifi网络通道,可用的网络通道包括主wifi网络通道、主移动数据网络通道、副wifi网络通道、副移动数据网络通道,且流级路径管理组件请求可用的主网络通道的顺序为主wifi网络通道、主移动数据网络通道、副wifi网络通道、副移动数据网络通道。若当前的启用的主网络通道(主wifi网络通道)的网络质量未达到要求,通道级路径管理组件向网络连接组件申请启用主移动数据网络通道作为主网络通道,并通过通道质量检测模块检测主移动数据网络通道的网络质量,若主移动数据网络通道的网络质量符合要求,则通道级路径管理组件不再向网络连接组件请求可用主网络通道,否则,通道级路径管理组件依次向网络连接组件请求将副wifi网络通道、副移动数据网络通道作为主网络通道,并启用,然后再检测其网络质量,直至找到一条可用的、网络质量满足要求的网络通道作为主网络通道,并启用,实现第一应用与应用程序的数据流在主网络通道上传输。
128.步骤s613:策略管理组件向流量感知组件发送流量探测请求。
129.具体地,该流量探测请求可以用于指示流量感知组件启动主网络通道上的网络应用的报文统计和监控。其中,该流量探测请求可以包括当前待探测的第一应用的身份标识(例如uid),用于请求对该主网络通道上的与上述身份标识对应的网络应用与服务器之间的数据流进行探测和监控。可以理解的是,该数据流可以是报文的形式。
130.应当理解的是,步骤s613和步骤s604可以同时执行,步骤s613也可以在步骤s604之后执行,本技术实施例对此不做限制。
131.步骤s614:流量感知组件向流量上报组件发送流量上报请求。
132.具体地,当流量感知组件收到应用级策略管理组件发送的流量探测请求后,可以向流量上报组件发送流量上报请求,其中,该流量上报请求可以用于指示流量上报组件对当前主网络通道上的第一应用与服务器之间传输的数据流进行探测,并将探测到的数据流进行上报。可以理解的是,上述流量探测请求可以包含第一应用的身份标识(例如uid)。
133.步骤s615:流量上报组件进行流量探测,并将目标流的报文统计信息上报给流量感知组件。
134.具体地,当流量上报组件接收到流量上报请求后,可以根据流量上报请求对主网络通道上的目标流进行探测,并将探测到的目标流的报文统计信息上报给流量感知组件。其中,目标流可以为第一应用与服务器之间传输的数据流。
135.在具体实现时,流量上报组件可以通过调用组件(例如,安卓系统的netfilter组件)获取当前主网络通道上目标流的报文。应当理解的是,上述netfilter组件仅为示例性说明,并不构成对本技术实施例的限定,在一些实施例中,也可以通过其他组件完成上述目标流的探测。
136.由于流量上报组件事先注册了报文监控钩子,当流量上报组件进行流量探测时,可以通过该报文监控钩子,获取目标流的报文。整体实现框图例如图7所示,netfilter钩包到流量上报组件的nf_hook钩子函数,当前主网络通道上承载的报文即进入到流量上报组
件,流量上报组件经过报文解析、流表创建、报文内容分析等流程,将目标流的报文存放到skb队列中,对于skb队列中的报文,按照报文所属目标流的上报策略,需要定时上报的目标流的报文统计信息由定时器触发上报至流量感知组件。
137.参见图7,报文上报组件的具体实现流程可以包括:
138.步骤s1,初始化;
139.在第一应用启动加载时,流量上报组件会收到上述步骤s606中的第二通知消息,去注册报文监控钩子函数。
140.步骤s2,报文处理;
141.本步骤具体包括报文解析、查流表和报文分析三个步骤。流表中记录有各网络应用中的流的标识信息、以及每条流的统计信息,每条流的统计信息可以包括:接收到的该条流的报文数量、接收到的该条流的报文的总字节数、出错的包数等。流的标识信息可以根据流中报文的五元组或者四元组计算得到,上述计算具体可以使用hash算法,从而流的标识信息可以是报文的五元组或者四元组计算得到的hash值。
142.在报文解析时,流量上报组件获取到报文,可以解析报文中是否存在第一应用的uid;如果存在,说明该报文是第一应用的报文,解析报文的四元组(或者五元组),执行后续的查流表步骤;如果不存在,说明该报文不是第一应用的报文,流程结束。上述四元组可以包括:源ip、目的ip、源端口、目的端口;五元组可以包括:源ip、目的ip、源端口、目的端口以及协议号。
143.在查流表时,可以根据报文的四元组(或者五元组)计算流的标识信息,使用计算得到的标识信息查找流表中是否已经记录有该标识信息,如果是,更新流表中该标识信息对应的统计信息;如果否,在流表中根据该流的标识信息创建流结点,更新流结点中该流的统计信息。
144.在进行报文分析时,流量上报组件可以通过预设条件来过滤接收到的报文,从而获得目标流的全部或部分报文。例如,该预设条件可以为:报文的源ip地址为主网络通道所连接网络的ip地址、报文的目的ip地址为第一应用的服务器、源端口、目的端口等,或者报文的目的ip地址为主网络通道所连接网络的ip地址、报文的源ip地址为第一应用的服务器、源端口、目的端口等。上述预设条件可以通过配置文件配置给流量上报组件,上述配置文件可以在步骤s614中流量感知组件发送的流量上报请求中携带,记录有报文需要匹配的特征信息。
145.步骤s3,根据流上报策略将匹配到的目标流以及目标流报文的统计信息上报给流量感知模块。
146.步骤s616:流量感知组件根据报文上报组件上报的目标流的报文统计信息检测网络质量,并基于该网络质量判断是否切换网络通道。
147.具体地,流量上报组件周期性地向流量感知组件上报目标流报文的统计信息,周期性地对第一应用与服务器之间目标流的网络质量进行检测。下面,结合图8,对流量感知组件以一个周期为单位检测网络质量的流程进行具体说明,具体流程如下:
148.步骤s801:流量感知组件接收流量上报组件上报的本周期目标流报文的统计信息。
149.具体地,流量上报组件探测第一应用与服务器之间的数据流,该数据流为目标数
据流,并以周期为单位对目标数据流中的上行报文和下行报文进行统计,目标流报文的统计信息,并将本周期的目标流报文的统计信息发送给流量感知组件。其中,目标流报文的统计信息包括不仅限于:上行报文的数量、下行报文的数量、每个报文的协议号、报文的字节数、报文的源ip地址、报文的目的ip地址等信息。
150.步骤s802:流量感知组件根据基于本周期的报文统计信息判断第一应用是否处于暂停下载/停止下载的状态。
151.具体地,流量感知组件可以从当前周期和以往周期的目标流的报文统计信息获取当前周期和过去多个周期的下行网络速率,并基于这多个下行网络速率判断第一应用处于暂停下载/停止下载状态。其中,第一应用的下载状态为服务器向第一应用发送下行数据流的状态。流量感知组件基于下行网络速率判断第一应用是否处于暂停下载/停止下载状态的方法可以为:若在当前周期内,下行网络速率大于第一速率值,小于threshhold,且上一个周期的网络质量记录为优,流量感知组件判断第一应用的处于暂停下载/停止下载状态,不记录当前周期的网络质量。否则,第一应用不处于暂停下载/停止下载状态。其中,threshhold用与判断当前周期的网络质量,若当前周期的下行网络速率大于或等于threshhold,则当前周期网络质量记录为优,若当前周期的下行网络速率小于threshhold,则当前周期的网络质量记录为差,threshhold大于第一速率值。第一速率值可以由历史数据得到,可以由实验数据得到,本技术实施例不做限制。
152.应当理解的是,本技术实施例对流量感知组件基于当前周期的报文统计信息判断出所述第一应用处于暂停下载/停止下载状态的方法仅做示例性说明,不做限制。
153.若第一应用处于暂停下载/停止下载状态,流量感知组件执行步骤s803,若第一应用不处于暂停下载/停止下载状态,流量感知组件执行步骤s804。
154.步骤s803:流量感知组件将下载结束标志设置为第一标识。
155.具体地,下载结束标志用于指示第一应用的下载状态,若下载结束标志为第一标识,流量感知组件确定第一应用处于暂停下载/停止下载状态,若下载结束标志不为第一标识,则流量感知组件确定第一应用不处于暂停下载/停止下载状态。示例性的,第一标识可以为“true”或“1”等字符,本技术实施例对第一标识的表示方法不做限制。
156.步骤s804:流量感知组件判断下载结束标志是否为第一标识。
157.具体地,若判断为是,流量感知组件执行步骤s806,若判断为否,流量感知组件执行步骤s805。
158.步骤s805:流量感知组件基于本周期的报文统计信息,记录本周期的网络质量。
159.具体地,流量感知组件可以将本周期的下行网络速率与预设的速率阈值threshhold进行比较,若下行网络速率大于或等于threshhold,则流量感知组件记录本周期网络质量优,若下行网络速率小于threshhold,则流量感知组件记录本周期网络质量差。其中,threshhold可以基于历史数据得到,也可以基于经验值得到,还可以基于实验数据得到,本技术实施例对此不做限制。其中,threshhold大于第一速率值。
160.步骤s806:流量感知组件不记录本周期的网络质量。
161.步骤s807:在存在上行报文的情况下,流量感知组件基于本周期的报文统计信息判断上行报文的网络协议是否为gquic协议。
162.具体地,如步骤s615所述,流量上报组件在对目标流进行探测的过程中,会对目标
流中的报文进行解析,从而得到目标流中的报文所使用的网络协议。流量上报组件在捕获报文后,判断在上行报文中是否存在chlo(client hello)字段,则判断报文使用的网络协议为gquic协议,如果使用gquic协议,流量上报组件将其记录在目标流的报文统计信息中。图9是本技术实施例提供的使用gquic协议的数据报的示意图,由图9可知,该报文含有chlo字段。
163.流量感知组件基于目标流的报文统计信息判断本周期中的上行报文的协议号判断报文的网络协议是否为gquic协议,若判断为是,执行步骤s808,若判断为否,结束流程。
164.步骤s808:流量感知组件判断上行数据报文是否为使用gquic协议的ack报文。
165.具体地,流量感知组件在确定本周期内的报文使用的网络协议为gquic协议的情况下,判断上行数据报文是否为ack报文,若判断为是,则说明上行报文不为下载请求报文,本周期的网络质量检测流程完成,结束流程,若判断为否,执行步骤s809。流量感知组件可以根据上行报文中payload字段的字节长度来判断上行报文是否为ack报文,若payload字段的字节长度大于或等于第一阈值(例如,300byte),则不为ack报文,该上行报文为下载请求报文,否则,该上行报文为ack报文。其中,第一阈值可以由经验值得到,也可以由历史数据得到,还可以由实验数据得到,本技术实施例不做限制。
166.为了便于理解,下面,结合图10对上述步骤s807-步骤s808中,流量感知组件判断上行报文是否为ack报文的详细流程进行说明,请参见图10,图10是本技术实施例提供的一种流量感知组件判断上行报文是否为ack报文的流程图,具体流程如下:
167.步骤s1001:流量感知组件判断上行报文是否存在chlo字段。若判断为是,执行步骤s1002,若判断为否,则说明该上行报文使用的网络协议不为gquic协议,执行步骤s1005。
168.步骤s1002:流量感知组件确定该上行报文的网络协议为gquic协议。
169.步骤s1003:流量感知组件判断该上行报文的payload字段的字节长度是否大于或等于第一阈值。若判断为否,执行步骤s1004,若判断为是,执行步骤s1005。
170.步骤s1004:流量感知组件确定该上行报文为ack报文。
171.步骤s1005:流量感知组件确定该上行报文不为ack报文。
172.步骤s809:流量感知组件设置将下载结束标志设置为第二标识。
173.具体地,若在当前周期内的上行数据报不为使用gquic协议的ack报文,将下载结束标志设置为第二标识,以便流量感知组件在下一周期根据下载结束标志判断是否要记录网络质量。如图11所示,在周期1~周期3中,第一应用处于下载状态,即服务器向第一应用发送下行数据流,流量感知组件在周期4判断下载过程暂停,将下载结束标志设置为第一标识,周期5~周期6下载结束标志都为第一标识,但在周期6,流量感知组件检测到有上行下载请求报文,此时说明第一应用的下载重新开始了,流量感知组件将下载结束标志设置为第二标识,在周期7,流量感知组件基于下载结束标志确定是否记录当前周期的网络质量,若下载结束标识不为第一标识,则记录当前周期的网络质量。
174.下面,结合图12对流量感知组件基于其记录的每个周期的网络质量,判断是否要切换网络通道的具体流程进行说明,具体流程如下:
175.步骤s1201:流量感知组件获取与当前周期相邻的前m个周期的网络质量检测结果。
176.步骤s1202:在流量感知组件在所述m个周期的网络质量检测结果中,判断是否超
过n个周期的网络质量检测结果为差。若判断为是,执行步骤s1203,若判断为否,执行步骤s1204。
177.在一些实施例中,当统计周期不足m个时,则根据已统计的周期数p内是否超过(n*p)/m个周期的网络质量检测结果为差。若判断为是,执行步骤s1203,若判断为否,执行步骤s1204
178.步骤s1203:流量感知组件确定切换网络通道。
179.步骤s1204:流量感知组件确定不切换网络通道。
180.应当理解的是,在上述图12实施例中,流量感知组件基于网络质量检测结果判断是否切换网络通道的方法仅是示例性说明,对于流量感知组件基于网络质量检测结果判断是否切换网络通道的其他方法,本技术实施例不做限制。
181.步骤s617:在确定切换网络通道的情况下,流量感知组件向流级路径管理组件发送网络通道切换指令。
182.具体地,在确定切换网络通道的情况下,流量感知组件向流级路径管理组件发送网络通道切换指令,该网络通道切换指令用于指示流级路径管理组件可以启动网络通道切换的业务。
183.可选地,该通道切换指令包括第一应用的身份标识(例如,第一应用的uid)。
184.步骤s618:流级路径管理组件向通道级路径管理组件请求启用备用网络通道。
185.具体地,在接收到流量感知组件发送的通道切换指令后,流级路径管理组件向通道级路径管理组件请求启用备用网络通道。
186.步骤s619:通道级路径管理组件向网络连接组件请求启用备用网络通道。
187.具体地,通道级路径管理组件在当前可用网络通道中,选择一条除主网络通道之外的网络通道作为备用网络通道。例如,若电子设备与主wifi网络通道、主移动数据网络通道、副wifi网络通道、副移动数据网络通道连接,上述四个网络通道均可用,主网络通道为主wifi网络通道,那么,通道级路径管理组件可以从主移动数据网络通道、副wifi网络通道、副移动数据网络通道中选择一条网络通道作为备用网络通道。
188.步骤s620:网络连接管理组件启动备用网络通道,向通道级路径管理组件反馈备用网络通道已启用的通知消息。
189.具体地,这里的启用备用网络通道是指使得备用网络通道从休眠状态转换至唤醒状态,从而在后续需要进行网络通道切换时,能够快速的从当前网络通道切换至备用网络通道。例如,备用网络通道为主移动数据网络通道,网络连接组件启动主移动数据网络通道的方法就是将主移动数据网络通道从休眠状态转换至唤醒状态。
190.步骤s621:通道级路径管理组件请求通道质量检测组件检测该备用网络通道的通道质量。
191.步骤s622:通道质量检测组件将通道质量检测结果发送给通道级路径管理组件。
192.具体地,步骤s621-步骤s622请参考步骤s611-步骤s612,在此不再赘述。
193.步骤s623:通道级路径管理组件将备用网络通道的路径发送给流级路径管理组件。
194.步骤s624:流级路径管理组件向策略执行组件发送网络通道切换通知。
195.步骤s625:策略执行组件切换网络通道。
196.具体地,在接收到流级路径管理组件向策略执行组件发送网络通道切换通知后,策略执行组件切换网络通道,将主网络通道上第一应用与服务器之间的数据流切换到备用网络通道进行传输。
197.本技术实施例,电子设备检测到应用向服务器发送下载请求报文后,会周期性地检测网络质量以及下载过程是否结束/暂停,若在本周期内,下载过程结束/暂停,则电子设备不会将本周期内下行网络速率作为判断网络质量好坏的参考因素,同时,电子设备会识别本周期内应用向服务器发送的上行数据报是否为下载请求数据报,若为下载请求数据报,电子设备将下载结束标志位设置为下载状态,通过这样的方法,避免了在下载过程停止或暂停后,电子设备将应用向服务器发送的ack确认报文识别为下载请求报文,进而将接收该确认报文之后的下行网络速率作为判断是否进行网络通道切换的参考因素,从而造成网络通道的误切。
198.下面对电子设备的系统框架图进行说明。如图13所示,电子设备包括应用层、服务层、策略层及内核层。其中,应用层可以用于提供多种网络应用,上述网络应用可以是第三方应用,也可以是系统应用,例如,游戏、音乐、视频等网络应用。本技术对上述应用层提供的网络应用的类型不做特殊限定。这里的网络应用是指需要使用电子设备的网络通道从网络上获取资源的应用。
199.服务层可以包括环境感知组件、通道级路径管理组件、策略管理组件及通道质量检测组件。其中,环境感知组件可以用于对应用的状态进行探测,例如上述第一应用的状态可以包括应用退出、应用打开、应用运行、应用安装及应用卸载等状态,可以理解的是,上述状态仅为示例性说明,还可以包括更多的状态,在此不再赘述。通道级路径管理组件可以用于负责请求/关闭网络通道,感知网络通道的状态变化,更新网络通道的选取策略,还可以用于存储多条网络通道的路径。策略管理组件可以基于输入信息生成不同的执行策略,示例性的,该策略可以是启用网络通道的加速功能,也可以是启动流量感知(例如,对网络通道的流量进行探测)等。通道质量检测组件可以用于评估网络通道的质量。服务层还可以包括:网络连接组件,用于启用网络通道,也即将网络通道从休眠状态转换为唤醒状态,在唤醒状态下网络通道可以直接被使用。
200.策略层可以包括流级路径管理组件及流量感知组件。其中,流级路径管理组件可以用于根据上层的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道,还可以用于存储不同的网络通道的路径,示例性的,可以存储应用当前使用的网络通道(例如,主网络通道)及备用网络通道的路径。流量感知组件可以用于对上报的流量进行统计,评估各条流的网络质量。
201.内核层可以包括流量上报组件及策略执行组件。其中,流量上报组件可以用于对流量信息的收集及上报。策略执行组件可以用于执行网络通道的切换。
202.可以理解的是,本技术实施例示意的各组件间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本技术另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
203.上述图13所示的系统框架仅用于说明电子设备的分层架构的实现。图13所示系统架构还可以作为已有的分层软件架构的一部分实现。以安卓(android)系统为例,图13所示为本技术实施例提供的一种android系统的电子设备的软件结构框图。分层架构将软件分
成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在图14所示的本技术实施例中,将android系统分为五层,从上至下分别为应用程序层、应用程序框架层(也称:系统框架层)、系统库和安卓运行时层、硬件抽象层(hardware abstraction layer,hal)和内核层。
204.应用程序层包括若干个应用程序(下文简称为应用),例如相机,图库,日历,wlan等。在一种可能的实例中,图14所示系统架构中的应用层可以与该应用程序层对应。图14所示电子设备的应用程序层可以包括本技术实施例所述的网络应用,例如视频播放应用、游戏应用等。
205.应用程序框架层为应用程序层的应用提供应用编程接口(application programming interface,api)和编程框架,包括各种组件和服务来支持开发者的安卓开发。应用程序框架层还包括一些预先定义的函数。例如应用程序框架层可包括窗口管理器、内容提供器、资源管理器、摄像头服务等。在一种可能的实例中,图13所示系统架构中的服务层和策略层可以位于应用程序框架层。
206.系统库和安卓运行时层包括系统库和安卓运行时(android runtime)。系统库可以包括多个功能模块。例如:表面管理器、二维图形引擎、三维图形处理库(例如:opengl es),媒体库、字体库等。
207.hal层为位于操作系统内核与硬件电路之间的接口层。hal层包括但不限于:音频硬件抽象层(audio hal)和摄像头硬件抽象层(camera hal)。
208.内核层是硬件和软件之间的层。内核层可以包括:显示驱动,摄像头驱动,音频驱动,传感器驱动等。在一种可能的实例中,图13所示系统架构中的内核层可以对应图14所示软件架构中的内核层,此时,如图14所示,内核层可以包括:流量上报组件及策略执行组件。
209.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。
210.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。
211.总之,以上所述仅为本发明技术方案的实施例,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围
之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献