网络卡顿的预测方法、设备和存储介质与流程

未命名 07-27 阅读:81 评论:0


1.本技术涉及无线网络技术领域,尤其涉及一种网络卡顿的预测方法、设备和存储介质。


背景技术:

2.在有无线网络覆盖的区域,电子设备通过接入无线网络为用户提供上网服务,当用户离开无线网络覆盖的区域时,电子设备收到的无线网络的信号会逐渐减弱,直至断开和无线网络的连接。无线网络的信号减弱会使用户上网时发生卡顿。


技术实现要素:

3.本技术提供了一种网络卡顿的预测方法、设备和存储介质,以解决用户离开无线网络覆盖区域时网络卡顿的问题。
4.为了实现上述目的,本技术提供了以下技术方案:
5.本技术第一方面提供一种网络卡顿的预测方法,包括:
6.在电子设备接入当前无线网络后,检测所述当前无线网络的信号强度是否低于所述当前无线网络的阈值;
7.若所述当前无线网络的信号强度低于所述阈值,获得当前网络列表信息,所述当前网络列表信息包括当前扫描到的无线网络的网络标识和信号强度;
8.将所述当前网络列表信息和所述当前无线网络的卡顿围栏匹配;
9.若所述当前网络列表信息和所述卡顿围栏匹配成功,将所述当前无线网络承载的数据流切换到蜂窝网络。
10.本实施例的有益效果在于,利用卡顿围栏预测当前无线网络是否会卡顿,从而在发生卡顿前将当前无线网络承载的数据流切换到蜂窝网络,使用户在上网时获得更流畅的使用体验。
11.在一些可选的实施例中,还包括:
12.在所述电子设备接入所述当前无线网络时,实时采集网络列表信息,采集到的网络列表信息包括采集时扫描到的无线网络的网络标识和信号强度;
13.根据预设时间段内采集到的网络列表信息确定所述当前无线网络的卡顿围栏和阈值。
14.具体的,本实施例中电子设备可以在接入当前无线网络后,实时地扫描无线网络,每完成一次扫描,就将本次扫描到的若干个无线网络的网络标识和对应的信号强度记录下来,作为一条网络列表信息,然后利用预设时间段内采集到的一条或多条网络列表信息确定卡顿围栏和阈值。
15.本实施例的具体实现方式,可以参见图8所示的步骤s01至s06,以及图10所示的步骤s01至b03。
16.在一些可选的实施例中,所述预设时间段,为所述电子设备和所述当前无线网络
断开连接前的第一预设时长。
17.示例性的,第一预设时长可以是30秒。也就是说,本实施例中电子设备可以利用当前无线网络断开前30秒内采集到的网络列表信息确定当前无线网络的卡顿围栏和阈值。
18.在一些可选的实施例中,所述预设时间段,为所述电子设备确定所述当前无线网络的网络质量差之前的第二预设时长。
19.示例性的,第二预设时长可以是2秒。也就是说,本实施例中电子设备可以利用发现当前无线网络质量差之前的2秒内采集到的网络列表信息确定当前无线网络的卡顿围栏和阈值。
20.网络质量可以根据无线网络的传输速率,丢包数等指标评估,传输速率越高,丢包数越低,则网络质量越好,反之则网络质量越差。
21.本实施例的有益效果在于:
22.利用本实施例所确定的卡顿围栏,电子设备可以提前发现当前无线网络的质量会变差,进而在当前无线网络的质量变差之前完成数据流的切换,进一步改善用户的使用体验。
23.在一些可选的实施例中,所述当前无线网络的卡顿围栏,包括所述预设时间段内采集到的网络列表信息中每一个无线网络对应的信号强度均值;
24.所述无线网络对应的信号强度均值,为所述预设时间段内采集到的网络列表信息中所述无线网络对应的多个信号强度的平均值。
25.在一些可选的实施例中,所述当前无线网络的阈值,为所述预设时间段内采集到的网络列表信息中所述当前无线网络对应的多个信号强度的平均值。
26.在一些可选的实施例中,所述将所述当前网络列表信息和所述当前无线网络的卡顿围栏匹配,包括:
27.计算所述当前网络列表信息中无线网络的信号强度偏差,所述无线网络的信号强度偏差,为所述卡顿围栏中所述无线网络的信号强度均值与所述当前网络列表信息中所述无线网络的信号强度的差值;
28.确定信号强度偏差在预设的偏差范围内的无线网络在所述当前网络列表信息中所占的比例;
29.若所述比例大于预设的比例阈值,确定所述当前网络列表信息和所述卡顿围栏匹配成功;
30.若所述比例小于或等于所述比例阈值,确定所述当前网络列表信息和所述卡顿围栏匹配失败。
31.在一些可选的实施例中,所述获得当前网络列表信息之前,还包括:
32.判断所述当前无线网络的信号强度低于所述当前无线网络的阈值之前的第三预设时长内,所述当前无线网络的信号强度是否持续下降;
33.若所述当前无线网络的信号强度在所述第三预设时长内持续下降,执行所述获得当前网络列表信息步骤。
34.第三预设时长的具体数值视实际需要而定,本实施例对此不作限定。
35.作为一个示例,第三预设时长可以是5秒。也就是说,本实施例中电子设备在检测到当前无线网络的信号强度低于阈值时,进一步判断信号强度低于阈值之前5秒内信号强
度是否持续下降,判断出之前5秒内信号强度持续下降后再执行后续步骤。
36.本实施例的有益效果在于:
37.避免在无线路由器故障和电子设备进入密闭空间等情况下发生误判,提高本实施例的卡顿预测方法的准确性。
38.在一些可选的实施例中,所述将所述当前无线网络承载的数据流切换到蜂窝网络,包括:
39.将所述当前无线网络承载的前台应用的数据流切换到蜂窝网络。
40.作为一个示例,电子设备要切换数据流时,前台运行有视频应用,后台运行有聊天应用时,电子设备可以只将视频应用的数据流切换到蜂窝网络,而聊天应用的数据流则仍然由当前无线网络传输。
41.本实施例的有益效果在于:
42.后台应用的卡顿一般不会被用户感知到,因而将后台应用的数据流保持在当前无线网络不会对用户的使用体验造成不良影响,同时,本实施例通过减少蜂窝网络承载的数据流,可以减少电子设备消耗的流量,节约通信费用。
43.本技术第二方面提供一种电子设备,包括存储器和一个或多个处理器;
44.所述存储器用于存储计算机程序;
45.所述一个或多个处理器用于执行所述计算机程序,具体用于实现本技术第一方面任意一项所提供的网络卡顿的预测方法。
46.本技术第三方面提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现本技术第一方面任意一项所提供的网络卡顿的预测方法。
47.本技术实施例提供一种网络卡顿的预测方法、设备和存储介质,方法包括:在电子设备接入当前无线网络后,检测当前无线网络的信号强度是否低于当前无线网络的阈值;若当前无线网络的信号强度低于阈值,获得当前网络列表信息,当前网络列表信息包括当前扫描到的无线网络的网络标识和信号强度;将当前网络列表信息和当前无线网络的卡顿围栏匹配;若当前网络列表信息和卡顿围栏匹配成功,将当前无线网络承载的数据流切换到蜂窝网络。本方案利用卡顿围栏预测当前无线网络是否会卡顿,从而在发生卡顿前提前将数据流从当前无线网络切换到蜂窝网络,避免了无线网络信号弱时的卡顿问题,改善用户的使用体验。
附图说明
48.图1为本技术实施例提供的一种电子设备的结构示意图;
49.图2为本技术实施例提供的一种无线网络的信号强度随电子设备移动而降低的示意图;
50.图3为本技术实施例提供的一种网络卡顿的界面示意图;
51.图4为本技术实施例提供的一种预先切换至蜂窝网络的界面示意图;
52.图5为本技术实施例提供的一种电子设备切换数据流的示意图;
53.图6为本技术实施例提供的一种wlan界面的示意图;
54.图7为本技术实施例提供的一种电子设备的软件框架的示意图;
55.图8为本技术实施例提供的一种网络卡顿的预测方法的时序图;
56.图9为本技术实施例提供的一种流量上报组件上报给流量感知组件数据流信息的示意图;
57.图10为本技术实施例提供的另一种网络卡顿的预测方法的时序图;
58.图11为本技术实施例提供的一种网络卡顿的预测方法的流程图。
具体实施方式
59.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
60.本技术实施例提供一种电子设备100,其具体可以是手机,平板电脑等设备。
61.如图1所示,电子设备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等。
62.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),通信处理器(communicationprocessor,cp,也可以称为调制解调器),图形处理器(graphics processing unit,gpu)等。
63.配置有无线网卡的电子设备(例如手机)可以通过无线网卡和无线路由器建立通信连接,从而接入无线路由器提供的无线网络,也可以通过数据业务网卡和基站建立通信连接,从而接入基站提供的网络。本实施例中,无线路由器提供的网络可以称为无线网络,或wi-fi,基站提供的网络可以称为蜂窝网络。
64.可以理解的,电子设备和无线路由器收到的无线网络信号的强度,会受电子设备和无线路由器之间的距离影响,两者的距离越远,则收到的无线网络信号越弱,当电子设备和无线路由器的距离超过一定范围时,电子设备就收不到无线路由器发出的无线网络信号,电子设备断开和无线路由器的连接,脱离无线路由器提供的无线网络。
65.请参见图2,为本技术实施例提供的一种无线网络的信号强度随电子设备移动而降低的示意图。用户在有无线路由器的房间内时,用户的手机接入无线路由器提供的无线网络。用户从该房间离开时,用户的手机和无线路由器之间的距离逐渐增大,手机收到的无线网络信号的强度随着距离的增大而逐渐降低,直到手机断开和无线路由器的通信连接。
66.请参见图3,为本技术实施例提供的一种网络卡顿的界面示意图。当用户在有无线网络(例如wi-fi)覆盖的区域使用手机时,例如在一个有无线路由器的房间内使用手机时,手机可以接入无线网络,通过无线网络为用户提供上网服务。以图3的(1)为例,手机接入无线路由器提供的wi-fi后,可以通过wi-fi播放网络视频。
67.当用户离开无线网络覆盖的区域,例如从无线路由器所在的房间走到室外时,手机收到的无线路由器的无线网络信号会逐渐减弱,但是手机仍通过无线网络提供上网服务,直到手机因距离无线路由器过远而断开和无线网络的连接后,手机才切换到蜂窝网络,使用蜂窝网络的移动数据流量继续提供上网服务。
68.在此过程中,当wi-fi信号较弱时,手机通过wi-fi上网就会发生卡顿。以图3的(2)为例,手机收到的wi-fi信号弱时,网络视频就需要较长的时间来加载,无法流畅地播放。
69.针对上述问题,本技术实施例提供一种网络卡顿的预测方法。通过执行本实施例的方法,手机等电子设备可以在远离无线路由器时提前切换至蜂窝网络上网,从而避免继续使用信号较弱的无线网络上网而引起的卡顿。
70.示例性的,请参加图4,为本技术实施例提供的预先切换至蜂窝网络的界面示意图。如图4的(1)所示,当手机位于wi-fi的覆盖区域内时,wi-fi信号较强,此时手机通过wi-fi提供上网服务,例如通过wi-fi播放网络视频。
71.如图4的(2)所示,当手机随着用户离开wi-fi的覆盖区域而远离无线路由器时,手机通过执行网络卡顿的预测方法,在wi-fi因信号过弱而卡顿之前切换至蜂窝网络,通过蜂窝网络继续提供上网服务,从而避免了无线网络卡顿的问题。
72.请参见图5,为本技术实施例提供的一种电子设备切换数据流的示意图。
73.当手机通过无线网络上网时,手机上运行的应用可以通过无线网卡和服务器建立连接,应用和服务器之间的数据流通过手机的无线网卡和无线路由器传输。以图5的(1)为例,手机运行有视频应用a和聊天应用b,视频应用a和服务器a之间产生数据流a,聊天应用b和服务器b之间产生数据流b,数据流a和数据流b均通过无线网卡和无线路由器传输。
74.本技术实施例中将两个电子设备之间传输的数据序列记为数据流。在实际应用中,基于该数据流的应用场景,该数据流可以为视频流、音频流、下载流、会话流等。
75.如图2所示,手机收到的无线网络信号的强度随着手机远离无线路由器而降低。因此在手机通过无线路由器上网期间,手机可以实时地检测收到的无线网络信号的强度是否低于预设的阈值。若检测出无线网络信号的强度低于阈值,则手机可以采集当前的网络列表信息,将采集到的网络列表信息和预先生成的无线网络的卡顿围栏进行匹配。
76.若当前的网络列表信息和卡顿围栏匹配成功,则手机预测当前接入的无线网络将要发生卡顿,于是手机从无线网络上网切换为蜂窝网络上网。具体的切换方式可以是,手机将原本通过无线网卡传输的数据流,切换至提供蜂窝网络能力的数据业务网卡传输。
77.以图5的(2)为例,当手机预测无线网络将要发生卡顿时,手机将原本通过无线网卡传输的数据流a和数据流b,均切换到数据业务网卡,使得数据流a和数据流b通过数据业务网卡和基站传输,由此,手机就从无线网络上网切换为蜂窝网络上网。
78.需要说明,图5仅仅是本技术提供的切换数据流的示例。在实际应用中,手机等电子设备可以将无线网卡传输的一个或多个数据流全部切换至数据业务网卡,该一个或多个数据流可以由一个或多个应用产生,并不限于图5所示的数据流a和数据流b。
79.在一些可选的实施例中,当手机预测当前接入的无线网络将要发生卡顿时,可以只切换当前在前台运行的应用产生的数据流,而不切换后台运行的应用的数据流。
80.例如,用户在使用视频应用观看视频,即视频应用为前台运行的应用,同时手机还在后台运行一个聊天应用,当手机预测当前接入的无线网络将要发生卡顿时,手机可以只将视频应用的数据流从无线网卡切换到数据业务网卡,而聊天应用的数据流则继续通过无线网卡传输。
81.这样做的好处在于,数据业务网卡消耗的流量通常会产生额外的通信费用,并且后台运行的应用的卡顿通常不会被用户感知,所以只切换前台的应用的数据流,可以在保证流畅的上网体验的前提下,减少数据业务网卡消耗的流量,节约通信费用。
82.上述网络列表信息,可以包括电子设备扫描到的一个或多个无线网络的网络标识和信号强度。
83.请参见图6,电子设备可以通过扫描发现当前可接入的一个或多个无线网络,,电子设备可以将这些扫描到的无线网络以图6所示的列表的形式在无线局域网(wireless local areanetwork,wlan)界面显示,其中wifi-100为电子设备当前连接的无线网络,wifi-200至wifi-400表示电子设备通过扫描发现的其他可接入的无线网络。以图6中扫描到的无线网络为例,上述网络列表信息可以包括wifi-100至wifi-400这四个无线网络的网络标识和信号强度。
84.在本技术实施例中,卡顿围栏可以理解为电子设备接入的无线网络发生卡顿时扫描到的无线网络的信号强度信息。例如,卡顿围栏可以包括电子设备接入的无线网络发生卡顿时扫描到的一个或多个无线网络的信号强度,或者包括这些无线网络的信号强度均值。
85.将网络列表信息和卡顿围栏进行匹配,可以确定电子设备当前采集到的网络列表信息和卡顿围栏是否相似,从而预测电子设备是否会发生卡顿。
86.示例性的,电子设备可以将无线网络断开前的一段时间(例如断开前5秒),或者将发现网络质量差之前的一段时间(例如发现网络质量差前的2秒)视为发生卡顿的时间,将这段时间内扫描到的一个或多个无线网络的网络标识,以及这些无线网络在这段时间内信号强度的均值确定为一个卡顿围栏。
87.下面对本技术的网络卡顿的预测方法的技术实现细节进行说明。
88.请参见图7,为本技术实施例提供的一种电子设备的软件架构示意图。图7中仅示出了与本技术实施例相关的部分层和部分组件,实际应用中,还可以包括图7中未示出的层级和组件。当然,也可以仅包含图7所示的组件中的部分组件。
89.电子设备的软件系统可以包括应用层,服务层,策略层和内核层。
90.其中应用层可以包括电子设备的一个或多个应用,如视频,导航和wlan。其中wlan为用户提供连接无线网络的功能,用户可以通过wlan启用或禁用电子设备的无线网络功能,以及选择要接入的无线网络。
91.服务层可以包括路径管理组件,应用级策略管理组件和卡顿围栏组件。其中卡顿围栏组件又可以细分为围栏数据采集组件,卡顿围栏生成组件,围栏数据库组件和卡顿预测组件。
92.路径管理组件,存储有多条网络通道的路径,用于请求或关闭任一网络通道,可以
感知任一网络通道的状态变化,还可以感知任一网络通道的质量。
93.应用级策略管理组件,用于开启数据流的切换,例如在预测出无线网络将要卡顿时,发起数据流切换,从而将无线网络承载的数据流切换到蜂窝网络。
94.卡顿围栏组件用于生成卡顿围栏,以及用于根据卡顿围栏预测电子设备接入的无线网络是否会发生卡顿。
95.在一些实施例中,卡顿围栏组件具体可以分为围栏数据采集组件,围栏数据库组件,卡顿围栏生成组件和卡顿预测组件。其中,围栏数据采集组件用于采集网络列表信息,围栏数据库组件用于存储采集到的网络列表信息和生成的卡顿围栏,卡顿围栏生成组件用于处理采集到的网络列表信息,以产生卡顿围栏,卡顿预测组件用于检测无线网络的信号强度是否低于阈值,并在信号强度低于阈值时触发围栏数据采集组件采集网络列表信息,根据网络列表信息和围栏数据库组件存储的卡顿围栏预测无线网络是否会卡顿。
96.策略层可以包括流级策略管理组件,体验质量(quality ofexperience,qoe)评估组件和流量感知组件。
97.流级策略管理组件用于在启动数据流切换之后,向内核下发流切换命令,以触发内核将数据流切换到其他网络。
98.qoe评估组件用于评估电子设备当前使用的网络的质量,以及用于在发现电子设备当前使用的网络质量差时,向卡顿围栏组件上报网络质量差的通知。示例性的,在电子设备接入一个无线网络时,qoe评估组件可以实时地获取电子设备在该无线网络上的数据传输速率,当发现数据传输速率低于设定的速率阈值时,则认为该无线网络的质量差,然后向卡顿围栏组件上报网络质量差的通知。
99.流量感知组件用于保存数据流的相关信息。示例性的,数据流的相关信息,可以包括,数据流的标识、数据传输速率、报文和承载该数据流的网络的标识等信息。
100.内核层可以包括策略执行组件和流量上报组件。
101.其中策略执行组件用于执行网络的切换。示例性的,策略执行组件响应于流切换命令,将原本由无线网络承载的数据流切换至蜂窝网络。
102.流量上报组件用于收集数据流信息并向流量感知组件上报收集的数据流信息。
103.作为本技术另一实施例,上述实施例中一个组件可以拆分为两个或多个组件,位于同一层级的两个或多个组件可以合并为同一组件。
104.例如图7中路径管理组件和应用级策略管理组件可以合并为一个决策中心组件。
105.下面结合上述软件架构对本技术的网络卡顿的预测方法进行说明。请参见图8,为本技术实施例提供的一种网络卡顿的预测方法的时序图。
106.电子设备的wlan功能被开启后,wlan应用可以实时地扫描是否有可接入的无线网络,当扫描到可接入的无线网络时,wlan应用即自动向该无线网络注册,若该无线网络设置了注册密码,则wlan应用可以利用用户输入的注册密码,或者之前注册时保存的注册密码向该无线网络注册。
107.在wlan应用成功注册到一个无线网络后,wlan应用执行步骤s01,检测到接入无线网络,然后向卡顿围栏组件执行步骤s02,发送无线网络接入通知。
108.在一些实施例中,wlan应用可以向前述围栏数据采集组件发送无线网络接入通知,围栏数据采集组件可以将无线网络接入通知再转发给卡顿预测组件。或者,wlan应用可
以将无线网络接入通知一并发送给围栏数据采集组件和卡顿预测组件。
109.上述无线网络接入通知可以携带wlan应用接入的无线网络的网络标识。
110.示例性的,无线网络的网络标识,可以是该无线网络的基本服务集标识(basic service set identifier,bssid)。
111.s03,持续采集网络列表信息。
112.如前,步骤s03具体可以由围栏数据采集组件在电子设备断开和无线网络的连接之前持续地执行,采集到的网络列表信息可以存在围栏数据库组件中。
113.步骤s03的实施方式可以是,围栏数据采集组件利用电子设备的无线网卡扫描可接入的无线网络,每完成一次扫描,围栏数据采集组件就从无线网卡获得本次扫描到的一个或多个无线网络的网络标识(例如bssid)和信号强度,将这些网络标识,信号强度以及本次扫描的时间戳确定为一条网络列表信息。
114.网络列表信息可以包括无线网卡扫描到的每一个无线网络的网络标识和信号强度。
115.或者,在无线网卡扫描到的无线网络较多时,网络列表信息可以包括其中部分无线网络的网络标识和信号强度。例如,无线网卡扫描到的无线网络包括当前接入的无线网络和其他10个可接入的无线网络,网络列表信息可以包括当前接入的无线网络的网络标识和信号强度,以及其他10个可接入的无线网络中强度较高的前5个无线网络的网络标识和信号强度。采用上述做法的好处在于,减少一条网络列表信息的数据量,从而节约电子设备的存储空间,另外,减少网络列表信息中无线网络的数量还可以减少卡顿围栏中无线网络的数量,从而缩短卡顿围栏组件将网络列表信息和卡顿围栏匹配的耗时,提高预测效率。
116.围栏数据采集组件采集到的网络列表信息可以用多种形式存储在围栏数据库组件中,示例性的,采集到的一条网络列表信息可以用下述形式表示:
[0117][0118][0119]
上述网络列表信息可以记为网络列表信息1,其中,timestamp表示围栏数据采集
组件采集到该信息的时间戳,也可以认为是无线网卡进行一次扫描的时间戳。bssid表示扫描到的无线网络的网络标识,其中第一个bssid为电子设备当前接入的无线网络的网络标识,bssid_list表示扫描到的可接入的无线网络的列表,bssid_list中包含的bssid为扫描到的可接入的无线网络的网络标识。bssid之后的rssi表示扫描时对应的无线网络的信号强度。例如,上述网络列表信息中,扫描时6c:16:32:17:3c:95对应的无线网络的信号强度为-74dbm。
[0120]
围栏数据采集组件可以在电子设备接入无线网络后,即收到无线网络接入通知后立即执行步骤s03。
[0121]
用户进入特定场所(例如某房间)后一般不会迅速离开,电子设备刚接入无线网络一段时间内(例如10分钟内)断开和无线网络连接的可能性较低,这段时间内采集的网络列表信息用于确定卡顿围栏的可能性也较低,所以围栏数据采集组件可以在接入无线网络一段时间后再执行步骤s03。这样做的好处在于,缩短电子设备实时扫描无线网络的时间,从而降低电子设备的功耗。
[0122]
示例性的,用户进入房间后,wlan应用接入房间内路由器提供的名为wifi-100的无线网络,然后向围栏数据采集组件发送无线网络接入通知,围栏数据采集组件收到通知后开始计时,在计时到10分钟时,wlan应用仍未向围栏数据采集组件发送无线网络断开通知,也就是说此时电子设备仍然接入wifi-100的无线网络,于是围栏数据采集组件开始执行步骤s03,实时采集网络列表信息。
[0123]
在一些可选的实施例中,卡顿围栏组件在确定卡顿围栏和阈值时通常使用最近一段时间内采集到的网络列表信息,例如使用最近30秒内采集到的网络列表信息。因此围栏数据采集组件可以在采集网络列表信息的同时持续地清理围栏数据库组件中存储时间较早的数据。这样做的好处在于,能够节约电子设备的存储空间。
[0124]
示例性的,若卡顿围栏组件使用最近30秒内的网络列表信息确定卡顿围栏和阈值,则围栏数据采集组件每采集到一条网络列表信息并存入围栏数据库组件时,可以将围栏数据库组件中对应的时间戳在30秒以前的网络列表信息删除。例如围栏数据采集组件在t0时刻存入一条网络列表信息时,从围栏数据库组件中删除时间戳在t0-30秒之前的网络列表信息。
[0125]
电子设备断开和无线网络的连接时,wlan执行步骤s04,检测到无线网络断开,以及步骤s05,发送无线网络断开通知。其中,步骤s05的无线网络断开通知由wlan应用发送给卡顿围栏组件,具体可以发送给围栏数据采集组件和卡顿围栏生成组件,以触发围栏数据采集组件停止采集网络列表信息,触发卡顿围栏生成组件执行步骤s06。
[0126]
无线网络断开通知可以携带断开的无线网络的网络标识。
[0127]
当电子设备和无线路由器的距离太远或间隔的障碍物太多时,电子设备收到的无线网络信号的强度会大幅降低,电子设备可能因此而断开和无线网络的连接。电子设备还可能因为wlan功能被禁用,或者用户手动切换至其他无线网络而断开和当前的无线网络的连接。
[0128]
禁用wlan功能以及切换接入的无线网络,均需要用户在wlan应用中进行相应的操作。因此wlan应用可以在检测到无线网络断开后识别断开的原因是否为wlan功能被禁用以及切换无线网络,如果是因为wlan功能被禁用或者切换无线网络而导致当前接入的无线网
络断开,wlan应用可以不向卡顿围栏组件发送无线网络断开通知,以避免卡顿围栏组件确定的卡顿围栏不准确。
[0129]
进一步的,电子设备响应于用户的操作而从一个无线网络切换至另一个无线网络,则wlan应用可以向卡顿围栏组件发送接入另一个无线网络的通知,使卡顿围栏组件采集网络列表信息并确定另一个无线网络的卡顿围栏。
[0130]
以图6为例,电子设备当前接入的无线网络为wifi-100,用户可以在wlan应用中查看可接入的无线网络,然后选择接入无线网络wifi-200,在这种情况下wlan应用可以不向卡顿围栏组件发送断开wifi-100的通知,而发送无线网络接入通知,通知中携带wifi-200的网络标识。
[0131]
s06,根据网络列表信息确定卡顿围栏和阈值。
[0132]
在实际应用中,步骤s06可以由卡顿围栏组件执行,或者具体可以由前述卡顿围栏生成组件执行。
[0133]
在步骤s06中,卡顿围栏生成组件可以处理在无线网络断开之前的第一预设时长内采集到的网络列表信息,从而确定刚断开连接的这个无线网络对应的卡顿围栏和阈值。
[0134]
第一预设时长的长短可以根据实际需要设定。示例性的,第一预设时长可以是30秒,即卡顿围栏组件可以根据断开连接前30秒内采集到的网络列表信息确定卡顿围栏和阈值。
[0135]
也就是说,在本实施例中卡顿围栏生成组件将电子设备和无线网络断开连接前的一段时间视为无线网络发生卡顿的时间,从而根据这段时间内的网络列表信息确定卡顿围栏和阈值。
[0136]
在一些可选的实施例中,每次卡顿围栏生成组件执行步骤s06后,如果围栏数据库组件中已经存储同一无线网络的卡顿围栏和阈值,则可以用本次确定新卡顿围栏和阈值,替换数据库中旧的卡顿围栏和阈值。
[0137]
以图6所示的无线网络为示例,用户每天离开家时,用户的手机都会断开和家中的无线网络wifi-100的连接,第一天断开连接时,手机中的卡顿围栏生成组件执行步骤s06确定出无线网络wifi-100对应的卡顿围栏和阈值,并将无线网络wifi-100对应的卡顿围栏和阈值存储在围栏数据库组件。第二天断开连接时,卡顿围栏生成组件再次执行步骤s06确定出新的无线网络wifi-100对应的卡顿围栏和阈值,然后用本次确定的卡顿围栏和阈值替换数据库前一天确定的无线网络wifi-100对应的卡顿围栏和阈值。
[0138]
这样做的好处在于,电子设备能够快速地更新无线网络对应的卡顿围栏,从而提高后续根据卡顿预测的结果的准确性。
[0139]
在一些可选的实施例中,步骤s03至s06所示的确定卡顿围栏和阈值的过程,可以在接入的无线网络没有对应的卡顿围栏和阈值的前提下执行,如果电子设备已经获得一个无线网络对应的对应的卡顿围栏和阈值,则接入和断开该无线网络时,电子设备可以不执行前述步骤s03至s06所示的确定卡顿围栏和阈值的过程。
[0140]
以图6所示的无线网络为示例,当手机首次接入wifi-100,并在一段时间(例如20分钟)后断开wifi-100时,卡顿围栏生成组件可以通过前述步骤s03至s06确定并保存wifi-100对应的卡顿围栏和阈值,此后当手机再次接入wifi-100时,由于已经有wifi-100对应的卡顿围栏和阈值,卡顿围栏生成组件可以不执行步骤s03至s06所示的确定卡顿围栏和阈值
的过程。
[0141]
这样做的好处在于,减少电子设备对无线网络的扫描,降低电子设备的耗电量。
[0142]
卡顿围栏生成组件可以采用多种算法来处理采集到的网络列表信息,本实施例对具体使用的算法不做限定。
[0143]
作为一个示例,卡顿围栏生成组件可以按如下方式生成卡顿围栏:
[0144]
首先,读取围栏数据库组件中断开连接前30秒内采集到的网络列表信息。如前所述,每一条网络列表信息都有对应的时间戳,因此卡顿围栏生成组件直接从围栏数据库组件中读取时间戳在断开连接前30秒内的网络列表信息。
[0145]
然后,计算读取到的网络列表信息中每一个无线网络在断开连接前30秒内的信号强度均值。
[0146]
如前,一条网络列表信息中包含扫描到的多个无线网络的信号强度,相应的,在多条网络列表信息中,可以获得一个无线网络在多次扫描时对应的多个信号强度,利用多个信号强度可以计算得到无线网络的信号强度均值。
[0147]
作为一个示例,断开连接前30秒内的网络列表信息可以包括前述网络列表信息1,以及下述网络列表信息2:
[0148][0149]
结合网络列表信息1和2,两次扫描时无线网络6c:16:32:17:3c:95的信号强度分别时-70dbm和-74dbm,对应的信号强度均值为-72dbm;无线网络的6c:16:32:17:3c:51的信号强度分别是-54dbm和-52dbm,对应的信号强度均值为-53dbm;无线网络6c:17:32:27:2c:92的信号强度分别是-61dbm和-63dbm,对应的信号强度均值为-62dbm。
[0150]
最后,用多个无线网络对应的信号强度均值确定断开连接的无线网络对应的卡顿围栏。
[0151]
获得各个无线网络的信号强度均值后,可以直接将各个无线网络的网络标识和信号强度均值组合为一个卡顿围栏。
[0152]
一个无线网络对应的卡顿围栏可以用多种方式表示,本实施例对卡顿围栏的具体
形式不做限定。
[0153]
续接前述示例,在电子设备断开和无线网络6c:16:32:17:3c:95的连接后,卡顿围栏生成组件确定的无线网络6c:16:32:17:3c:95对应的卡顿围栏可以如下:
[0154][0155]
其中,timestamp表示卡顿围栏生成组件确定这个卡顿围栏的时间戳,首个bssid为这个卡顿围栏对应的无线网络的网络标识,bssid_list为这个卡顿围栏包含的无线网络的列表,其中包含一个或多个无线网络的网络标识,每一个网络标识之后的rssi表示这个网络标识对应的无线网络的信号强度均值。
[0156]
需要说明,上述卡顿围栏以及确定卡顿围栏的算法,仅仅是为了便于理解而提供的一个简单示例。在其他可选的实施例中,根据确定卡顿围栏的算法的不同,获得的卡顿围栏可以包括其他能反映对应时间段内无线网络的信号强度的数值,而不包括无线网络对应的信号强度均值,当然也可以包括信号强度均值。
[0157]
卡顿围栏生成组件同样可以采用多种方式确定无线网络对应的阈值,本实施例对具体的确定阈值的方式不做限定。
[0158]
作为一个示例,卡顿围栏生成组件可以按如下方式确定无线网络的阈值:
[0159]
卡顿围栏生成组件读取断开连接前一段时间内采集的网络列表信息,利用这些网络列表信息计算断开连接的无线网络在断开连接前的信号强度均值,将计算结果确定为该无线网络的阈值。
[0160]
示例性的,当卡顿围栏生成组件收到无线网络6c:16:32:17:3c:95断开的通知时,获取断开前5秒内采集到的网络列表信息,从这些网络列表信息中获得一个或多个无线网络6c:16:32:17:3c:95的信号强度,用这些信号强度计算断开连接前5秒内6c:16:32:17:3c:95的信号强度均值,将计算结果确定为6c:16:32:17:3c:95对应的阈值。
[0161]
当电子设备再次接入无线网络时,wlan执行步骤s07,检测到接入无线网络,并对卡顿围栏组件执行步骤s08,发送无线网络接入通知。步骤s07和步骤s08的具体实施方式可以参见步骤s01和步骤s02。
[0162]
s09,检测信号强度是否低于阈值。
[0163]
若检测出信号强度低于阈值,执行步骤s10,若检测出信号强度不低于阈值,则再次执行步骤s09,直至检测出信号强度低于阈值,或者电子设备断开和无线网络的连接为止。
[0164]
步骤s09有卡顿围栏组件执行。在实际应用中,步骤s09具体可以由卡顿围栏组件中的卡顿预测组件执行。
[0165]
可以理解,步骤s09中的阈值为电子设备当前连接的无线网络对应的阈值。示例性的,若无线网络6c:16:32:17:3c:95对应的阈值为-75dbm,无线网络6c:16:32:17:3c:51对应的阈值为-55dbm。若电子设备接入无线网络6c:16:32:17:3c:95,卡顿预测组件实时检测信号强度是否低于-75dbm,若电子设备接入无线网络6c:16:32:17:3c:51,卡顿预测组件实时检测信号强度是否低于-55dbm。
[0166]
可选的,步骤s09可以在电子设备接入无线网络后立即执行,也可以在电子设备接入无线网络一段时间后,例如接入无线网络10分钟后才执行。其中,在电子设备接入无线网络一段时间后才执行步骤s09,可以起到降低电子设备的耗电量的效果。
[0167]
在一些可选的实施例中,检测出信号强度低于阈值之后,可以先判断是否存储有无线网络对应的卡顿围栏,若判断出有无线网络对应的卡顿围栏,则执行步骤s10,若判断出没有无线网络对应的卡顿围栏,则结束本方法,即不执行步骤s10至s12。
[0168]
在一些可选的实施例中,无线网络的信号强度低于阈值也可能由提供无线网络的无线路由器故障,电子设备进入一个密闭空间等因素导致。为了避免在上述情况中误判电子设备远离无线路由器,可以在检测出信号强度低于阈值时进一步执行如下判断:
[0169]
判断在检测到信号强度低于阈值之前的第三预设时长内无线网络的信号强度是否持续下降。示例性的,第三预设时长可以是5秒,即可以判断信号强度低于阈值之前的5秒内无线网络的信号强度是否持续下降。
[0170]
请参见图2所示的曲线,当电子设备远离无线路由器时,电子设备收到的无线网络的信号强度会缓慢地逐渐降低,因此在检测到信号强度低于阈值之前的一段时间内,该无线网络的信号强度就在持续地下降。
[0171]
相对的,若无线路由器故障或电子设备进入密闭空间,信号强度会在发生故障或进入密闭空间时突然大幅度降低,这种情况下在信号强度低于阈值之前的一段时间内,信号强度会有一段时间保持不变,然后突然降低至阈值以下,而不会出现持续下降的情况。
[0172]
综上所述,通过判断最近一段时间内无线网络的信号强度是否持续下降,可以提高本方法的卡顿预测结果的准确性。
[0173]
s10,获取当前的网络列表信息。
[0174]
在实际应用中,步骤s10可以由卡顿围栏组件中的卡顿预测组件执行。
[0175]
在步骤s10中,卡顿预测组件可以通过多种方式获取网络列表信息,本实施例对具体的获取方式不做限定。
[0176]
作为一个示例,若需要执行步骤s10时,围栏数据采集组件在实时采集网络列表信息,则卡顿预测组件可以直接从围栏数据库组件读取围栏数据采集组件最新采集到的网络列表信息,将读取到的最新的网络列表信息确定为当前的网络列表信息。
[0177]
作为另一个示例,若需要执行步骤s10时,围栏数据采集组件未实时采集网络列表
信息,卡顿预测组件可以向围栏数据采集组件发送数据采集命令,围栏数据采集组件收到命令后,利用电子设备的无线网卡进行一次扫描,然后将扫描得到的网络列表信息反馈给卡顿预测组件。
[0178]
s11,用网络列表信息和卡顿围栏匹配。
[0179]
在实际应用中,步骤s11具体可以由卡顿围栏组件,或者由卡顿围栏组件中的卡顿预测组件执行。
[0180]
步骤s11所述的网络列表信息为步骤s10中获取的当前的网络列表信息,上述卡顿围栏,为电子设备当前接入的无线网络对应的卡顿围栏。卡顿预测组件可以用当前接入的无线网络的网络标识和围栏数据库组件中存储的多个卡顿围栏对应的无线网络的网络标识比对,从而找到当前接入的无线网络对应的卡顿围栏。
[0181]
若网络列表信息和卡顿围栏匹配成功,执行步骤s12,若网络列表信息和卡顿围栏匹配失败,可以返回执行步骤s09。
[0182]
根据卡顿围栏的具体形式的不同,在步骤s11中卡顿预测组件可以采用不同的方式来匹配网络列表信息和卡顿围栏,本实施例对具体的匹配方法不做限定。
[0183]
示例性的,卡顿预测组件可以按如下方法匹配网络列表信息和卡顿围栏:
[0184]
将网络列表信息中无线网络的信号强度,和卡顿围栏中同一无线网络的信号强度均值做比对,判断两者的差值是否在预设的偏差范围内,在网络列表信息中的每个无线网络均完成上述比对后,判断差值在偏差范围内的无线网络在网络列表信息包含的所有无线网络中的占比是否超过设定的比例阈值。若占比超过比例阈值,则认为网络列表信息和卡顿围栏匹配成功,若占比不超过比例阈值,则认为网络列表信息和卡顿围栏匹配失败。
[0185]
其中,当前的网络列表信息中无线网络的信号强度,和卡顿围栏中同一无线网络的信号强度之间的差值,可以记为该无线网络的信号强度偏差。
[0186]
作为一个示例,当卡顿预测组件发现当前接入的无线网络6c:16:32:17:3c:95的信号强度低于阈值时,卡顿预测组件获取当前的网络列表信息,并从围栏数据库组件读取如前所述的6c:16:32:17:3c:95对应的卡顿围栏,获取到的网络列表信息中,无线网络6c:16:32:17:3c:95的信号强度为-75dbm,无线网络6c:16:32:17:3c:51的信号强度为-55dbm,无线网络6c:17:32:27:2c:92的强度为-65dbm,预设的偏差范围为5dbm,将这三个无线网络当前的信号强度,和前述卡顿围栏中对应的信号强度均值比对后,发现6c:16:32:17:3c:95,6c:16:32:17:3c:51和6c:17:32:27:2c:92的信号强度和卡顿围栏中对应的信号强度均值的偏差均在偏差范围内,也就是说差值在偏差范围内的无线网络的占比为100%,假设前述比例阈值为80%,可以发现差值在偏差范围内的无线网络的占比大于比例阈值,因此确定网络列表信息和卡顿围栏匹配成功。
[0187]
可以理解的,上述偏差范围和比例阈值均为本实施例提供的一个示例,在实际应用时偏差范围和比例阈值均可以根据具体情况而设定,并不限于上述数值。
[0188]
卡顿预测组件在确定网络列表信息和卡顿围栏匹配成功之后,对路径管理组件执行步骤s12,发送无线网络卡顿预测信息。该信息用于向路径管理组件说明电子设备当前接入的无线网络将要发生卡顿。
[0189]
通过s07至s12所示的预测无线网络卡顿的过程,电子设备能够利用接入的无线网络的信号强度和预先生成的卡顿围栏,在电子设备远离无线路由器的过程中,预测无线网
络在什么时候可能发生卡顿,从而提前采取对应的措施,有助于缓解在信号强度较低时无线网络卡顿的问题。
[0190]
如前,路径管理组件可以请求激活或关闭电子设备的特定网络通道,如请求激活或关闭无线网络,或者请求激活或关闭蜂窝网络。因此当路径管理组件收到无线网络卡顿预测信息时,路径管理组件可以执行步骤s13,请求激活蜂窝网络,从而激活电子设备的蜂窝网络。被激活后电子设备的蜂窝网络即处于可用的状态。
[0191]
需要说明,在执行步骤s13之前,电子设备的蜂窝网络可能已被激活,也可能未被激活。若执行s13前确定蜂窝网络已被激活,可以不执行步骤s13。
[0192]
蜂窝网络被激活成功后,路径管理组件向策略管理组件执行步骤s14,通知蜂窝网络激活成功。
[0193]
确定蜂窝网络激活成功后,策略管理组件执行步骤s15,读取数据流的相关信息和步骤s16,发送流切换命令。
[0194]
本实施例中,策略管理组件可以视为图4所示的通道级策略管理组件和流级策略管理组件的组合,在实际应用中,路径管理组件可以向位于同一层的通道级策略管理组件发送蜂窝网络激活成功的通知,通道级策略管理组件再将该通知转发给策略层的流级策略管理组件,使得流级策略管理组件执行步骤s15,读取数据流的相关信息和步骤s16,发送流切换命令。
[0195]
在步骤s15中,流级策略管理组件可以从同一层的流量感知组件读取数据流的相关信息。在实际应用中,流级策略管理组件可以从流量感知组件读取电子设备当前产生的每一个数据流的数据流标识。
[0196]
在一些可选的实施例中,电子设备产生的多个数据流可能有一部分由无线网络承载,一部分由蜂窝网络承载,因此在步骤s15中,数据流的相关信息,还可以包括承载数据流的网络的标识,这样流级策略管理组件可以根据数据流的相关信息确定无线网络承载的数据流的数据流标识。
[0197]
在一些可选的实施例中,流级策略管理组件从流量感知组件读取数据流的相关信息时,也可以由流量感知组件根据上报的数据流的相关信息确定出无线网络承载的数据流,然后在向流级策略管理组件发送信息时,仅发送这些由无线网络承载的数据流的数据流标识。
[0198]
流量感知组件可以通过如下步骤获得数据流的相关信息:
[0199]
流量上报组件向流量感知组件执行步骤a01,上报数据流的相关信息,流量感知组件收到上报的数据流的相关信息后,执行步骤a02,存储数据流的相关信息。
[0200]
其中,流量上报组件可以在电子设备产生数据流时持续地执行步骤a01,或者,流量上报组件可以在电子设备接入无线网络时持续地执行步骤a01,针对后一种情况,wlan应用可以在电子设备接入无线网络时向流量上报组件发送接入无线网络的通知,以触发流量上报组件执行步骤a01。
[0201]
流量上报组件可以通过多种方式获得数据流的相关信息,本实施例对具体的获取方式不做限定。
[0202]
示例性的,流量上报组件可以预先注册一个或多个报文监听钩子,通过报文监听钩子获取数据流的相关信息并上报给流量感知组件。
[0203]
在步骤s16中,流级策略管理组件向内核的策略执行组件下发流切换命令。其中,流切换命令可以包括需要切换到蜂窝网络的数据流的数据流标识,从而指示策略执行组件将对应的数据流切换到蜂窝网络。
[0204]
策略执行组件收到流切换命令后,执行步骤s17,将数据流切换到蜂窝网络。
[0205]
以图5的(1)为例,策略管理组件收到蜂窝网络激活成功的通知后执行步骤s15,从流量感知组件读取到手机上通过无线网络传输的数据流a和数据流b的数据流标识,然后执行步骤s16,将携带数据流a和数据流b的数据流标识的流切换命令发送给策略执行组件。策略执行组件收到流切换命令后,如图5的(2)所示,将数据流a和数据流b从无线网卡切换到数据业务网卡,由此,数据流a和数据流b从之前通过无线网络传输,变为通过蜂窝网络传输。
[0206]
在一些可选的实施例中,数据流的相关信息还可以包括每个数据流所属应用的应用标识,策略管理组件读取数据流的相关信息后,根据应用标识在多个数据流中确定出属于前台应用的数据流,然后在流切换命令中仅携带属于前台应用的数据流的数据流标识,使得策略执行组件仅将前台应用的数据流切换到蜂窝网络。
[0207]
仍以图5为例,策略管理组件根据数据流的相关信息发现数据流a属于前台的视频应用a,数据流b属于后台的聊天应用b,因此下发的流切换命令可以仅携带数据流a的数据流标识,使策略执行组件将数据流a切换至蜂窝网络。
[0208]
通过步骤s13至s17所述的切换数据流的过程,电子设备能够在预测到当前接入的无线网络将要发生卡顿时,提前将无线网络传输的数据流切换到蜂窝网络传输,避免了无线网络卡顿对电子设备上运行的联网的应用造成干扰,从而改善电子设备远离无线路由器时的使用体验。
[0209]
在一些可选的实施例中,完成步骤s17之后,wlan应用可以主动断开和当前的无线网络的连接,也可以继续保持和当前的无线网络的连接,直到无线网络的信号强度过低而自动断开连接。
[0210]
在一些可选的实施例中,步骤s01至s06所示的电子设备确定卡顿围栏的过程,以及步骤s07至步骤s12所示的电子设备预测无线网络是否卡顿的过程,可以同时执行。
[0211]
示例性的,在wlan通知接入无线网络之后,一方面围栏数据采集组件实时采集网络列表信息并将采集到的无线网络信息存入围栏数据库组件,一方面卡顿预测组件实时检测无线网络的信号强度是否低于阈值。
[0212]
当卡顿预测组件检测出无线网络的信号强度低于阈值,且判断出有当前接入的无线网络对应的卡顿围栏时,卡顿预测组件执行步骤s10和步骤s11,以预测无线网络是否将要发生卡顿。
[0213]
在卡顿预测组件预测出无线网络将要发生卡顿时,路径管理组件,策略管理组件和策略执行组件依次执行步骤s13至s17,将无线网络的数据流切换到蜂窝网络。
[0214]
在执行步骤s09至s17的过程中,以及在完成数据流切换之后,电子设备仍然和无线网络保持连接,因此在上述过程中围栏数据采集组件可以继续执行步骤s03,直至wlan通知无线网络断开。在无线网络断开后,卡顿围栏生成组件执行步骤s06,确定新的卡顿围栏和阈值。
[0215]
上述实施例中,流量上报组件通过注册报文监听钩子来获取应用的数据流信息并
将数据流信息上报给流量感知组件,下面对该过程的技术实现细节进行说明。
[0216]
电子设备的系统中存在netfilter组件,通过该组件可以获取到特定应用标识对应的应用的数据流。流量上报组件可以通过调用netfilter组件获取特定应用(如前述示例的应用市场)的数据流的报文。具体实现时,流量上报组件上报给流量感知组件的数据流信息可以包括数据流的报文和数据流的统计信息等。具体可参照图9所示实施例的描述。
[0217]
参见图9,流量上报组件可以预先注册报文监听钩子(例如,nf_hook钩子函数)。
[0218]
在流量上报组件调用netfilter组件后,netfilter组件上报数据流的报文,流量上报组件接收到netfilter组件上报的数据流的报文之后,调用预先注册的nf_hook钩子函数。
[0219]
该nf_hook钩子函数对接收到的数据流的报文进行以下操作:报文解析、查流表和报文分析等操作。
[0220]
在进行报文解析时,可以查看该报文是否存在应用标识以及该报文的四元组(或五元组),以得到解析结果。若存在应用标识,则可以确定该报文对应的应用。四元组中包括源ip、目的ip、源端口、目的端口;五元组中包括:源ip、目的ip、源端口、目的端口以及协议号。也就是说,报文的四元组或五元组包含前述部分流特征(例如报文的协议和端口)。另外,报文自身也可以携带部分流特征。
[0221]
在进行解析之后,根据解析结果查询流表,并更新流表的统计信息。流表中存储了各个应用中数据流的标识信息、以及各个数据流的统计信息。各个流的统计信息包括:接收到该数据流的报文数量、总字节数、错误包数量等。
[0222]
实际应用中,各个流的统计信息还可以包括其他信息,例如,接收到的数据包的大小和时间戳确定的对应数据流的下载速率。
[0223]
当然,若流表中不存在某个数据流的标识信息或相关统计信息时,则可以在流表中增加该数据流的标识以及相关的统计信息。
[0224]
在查流表并更新流表信息之后,则可以对报文进行分析。例如,过滤报文,从而得到全部或部分报文。
[0225]
作为一种示例,该过滤过程可以是过滤某个数据流的心跳包报文。则经过过滤处理后,得到该数据流的心跳包报文。该过滤处理过程可以是:通过预先设置某些特征,将满足该特征的报文保留。即满足预先设置的某些特征的报文就为过滤后的报文。
[0226]
其中,心跳包报文为按照一定的时间间隔存在在数据流中的报文。心跳包报文在固定位置(例如第6个字节)存在固定特征(例如0x64或0x65)。由于该心跳包报文为按照一定时间存在的报文,因为,可以基于该心跳包报文计算获得时延(例如,手机向服务器发送心跳请求报文开始,到手机接收到服务器反馈的心跳响应报文为止,总共经历的时间)。
[0227]
上述示例以过滤心跳包为例进行说明,实际应用中,还可以过滤处理以获得满足其它特征的数据包报文。
[0228]
作为另一示例,过滤条件还可以包括:保留特定应用的报文,则经过过滤处理后,得到特定应用的数据流的报文。例如,当前开启的应用为应用市场,进行报文分析时,可以保留应用市场的数据流的报文。
[0229]
经过上述处理后,得到的过滤后的部分报文被存储在skb队列中。
[0230]
skb队列中存储的数据流的报文上报时的策略包括:立即上报和定期上报。
[0231]
若为立即上报,流量上报组件中的特定线程及时查看队列,将队列中的报文及时上报给流量感知组件。
[0232]
若为定期上报,流量上报组件中设置了定时器,基于该定时器设置的时间以一定的周期查看skb队列中的报文,将队列中的部分或全部报文上报给流量感知组件。
[0233]
当然,实际应用中,skb队列中存储的数据流的报文有些是需要立即上报的,有些是需要定期上报的。同样的原理,流量上报组件中的特定线程及时查看队列,将队列中的需要立即上报的报文及时上报给流量感知组件。流量上报组件中还设置了定时器,基于该定时器设置的时间以一定的周期查看skb队列中的报文,将队列中的需要定期上报的报文上报给流量感知组件。
[0234]
在图8所示的实施例中,卡顿围栏组件在电子设备断开和无线网络的连接后确定卡顿围栏和对应的阈值。除此之外,在一些可选的实施例中,卡顿围栏组件也可以在发现无线网络的质量差时确定卡顿围栏和阈值。
[0235]
请参见图10,为本技术另一实施例提供的一种网络卡顿的预测方法的时序图。
[0236]
本实施例中,步骤s01至s05,步骤s07至s17,以及步骤a01和a02的具体实施方式均与图8所示的实施例中对应步骤的具体实施方式一致,不再赘述。
[0237]
本实施例与图8所示的实施例的区别在于:
[0238]
在电子设备接入无线网络之后,qoe评估组件持续地执行步骤b01,检测无线网络的质量,当qoe评估组件得出检测结果为无线网络的质量差时,qoe评估组件向卡顿围栏组件执行步骤b02,发送网络质量差通知,从而向卡顿围栏组件说明当前无线网络发生卡顿,卡顿围栏组件响应于qoe评估组件的通知,执行步骤b03,根据网络列表信息确定卡顿围栏和阈值。
[0239]
在步骤b01中,qoe评估组件从流量感知组件获得由无线网络承载的数据流的相关信息,根据获得的数据流的相关信息确定一个或多个反映无线网络的质量的指标,例如无线网络的传输速率,无线网络的丢包数等,通过这些指标的高低确定无线网络的质量是好还是差。本实施例对检测网络质量好坏所依据的指标不做限定。
[0240]
作为一个示例,qoe评估组件从流量感知组件获得无线网络承载的一个或多个数据流的传输速率,将这些数据流的传输速率的总和确定为无线网络的传输速率,然后判断无线网络的传输速率是否大于特定的传输速率阈值,若无线网络的传输速率大于传输速率阈值,则确定无线网络的质量好,若无线网络的传输速率不大于传输速率阈值,则确定无线网络的质量差。
[0241]
作为另一个示例,qoe评估组件从流量感知组件获得无线网络承载的一个或多个数据流的丢包数,将这些数据流的丢包数的总和确定为无线网络的丢包数,然后判断无线网络的丢包数是否大于特定的丢包数阈值,若无线网络的丢包数不大于丢包数阈值,则确定无线网络的质量好,若无线网络的丢包数大于丢包数阈值,则确定无线网络的质量差。
[0242]
当然,在其他示例中qoe评估组件也可以综合传输速率和丢包数来判断无线网络的质量好坏。
[0243]
在步骤b02中,qoe评估组件具体可以向卡顿围栏生成组件发送网络质量差通知,从而触发卡顿围栏生成组件执行步骤b03。其中,qoe评估组件发送的通知具体可以是qoe bad消息,卡顿围栏生成组件收到该消息,就可以认为当前接入的无线网络发生卡顿。
[0244]
在实际应用中,步骤b03可以由卡顿围栏组件,或者说由卡顿围栏组件中的卡顿围栏生成组件执行。
[0245]
卡顿围栏生成组件执行b03时,可以从围栏数据库组件读取收到网络质量差通知之前第二预设时长内采集的网络列表信息,根据读取的这些网络列表信息确定卡顿围栏和阈值。
[0246]
第二预设时长的具体数值视实际应用情况而定,本实施例对此不作限定。示例性的,第二预设时长可以是2秒。
[0247]
也就是说,在本实施例中卡顿围栏生成组件将发现无线网络质量差之前的一段时间视为无线网络发生卡顿的时间,从而根据这段时间内的网络列表信息确定卡顿围栏和阈值。
[0248]
示例性的,卡顿围栏生成组件t0时刻收到网络质量差通知,则卡顿围栏生成组件从围栏数据库组件读取对应的时间戳在收到网络质量差通知之前2秒内,即时间戳在t0-2秒到t0这段时间内的网络列表信息,根据这些网络列表信息确定卡顿围栏和阈值。
[0249]
步骤b03和前述步骤s06的区别在于,在步骤b03中卡顿围栏生成组件根据收到网络质量差通知前一定时间内的网络列表信息确定卡顿围栏和阈值,在步骤s06中卡顿围栏生成组件根据无线网络断开前一定时间内的网络列表信息确定卡顿围栏和阈值,即两个步骤所用的网络列表信息所属的时间段不同。
[0250]
步骤b03中根据网络列表信息确定卡顿围栏和阈值的方式,可以和前述步骤s06相同,此处不再详述。
[0251]
可选的,本实施例中卡顿围栏组件在收到网络质量差通知并执行步骤b03后,既可以停止采集网络列表信息,而不必等到断开无线网络的连接后再停止采集网络列表信息,这样可以起到减少电子设备的耗电量的效果。这种情况下,wlan应用就可以不执行步骤s04和步骤s05。
[0252]
可以理解,图8所示的实施例和图10所示的实施例可以合并为一个实施例。也就是说,卡顿围栏组件既可以在发现无线网络的质量差时确定卡顿围栏和阈值,也可以在电子设备断开和无线网络的连接后确定卡顿围栏和对应的阈值。
[0253]
在一些可选的实施例中,若在连接无线网络期间卡顿围栏组件收到网络质量差的通知,则卡顿围栏组件按步骤b03的方式确定卡顿围栏和阈值,若在连接无线网络期间卡顿围栏组件未收到网络质量差的通知,则卡顿围栏组件在无线网络断开后按步骤s06的方式确定卡顿围栏和阈值。
[0254]
根据上述图8和图10所示的实施例,可以得到一种网络卡顿的预测方法,应用于具有wlan功能的电子设备,例如智能手机,平板电脑等。请参见图11,为本技术实施例提供的一种网络卡顿的预测方法的流程图。
[0255]
在接入无线网络后,执行步骤s1101。
[0256]
s1101,检测当前接入的无线网络的信号强度是否低于阈值。
[0257]
若当前接入的无线网络的信号强度低于阈值,执行步骤s1102,若当前接入的无线网络的信号强度不低于阈值,再次执行步骤s1101,直至检测出当前接入的无线网络的信号强度低于阈值或者电子设备断开和无线网络的连接为止。
[0258]
步骤s1101的具体实施方式可以参见前述步骤s07至s09,此处不再赘述。
[0259]
s1102,获得当前的网络列表信息。
[0260]
其中,当前的网络列表信息包括当前扫描到的一个或多个可接入的无线网络的网络标识和信号强度。
[0261]
步骤s1102的具体实施方式可以参见前述步骤s10,此处不再赘述。
[0262]
s1103,将当前的网络列表信息和当前接入的无线网络的卡顿围栏匹配。
[0263]
若当前的网络列表信息和当前接入的无线网络的卡顿围栏匹配成功,则执行步骤s1104,若当前的网络列表信息和当前接入的无线网络的卡顿围栏匹配失败,则返回执行步骤s1101。
[0264]
在本技术实施例中,卡顿围栏可以包括当前接入的无线网络发生卡顿时扫描到的无线网络的信号强度信息。
[0265]
步骤s1101所述的阈值和步骤s1103所述的卡顿围栏均可以在电子设备前一次接入该无线网络时获得。
[0266]
步骤s1103的具体实施方式可以参见图8和图10所示的实施例中的步骤s11,此处不再赘述。
[0267]
s1104,将当前接入的无线网络承载的数据流切换到被激活的蜂窝网络。
[0268]
在步骤s1104中,电子设备可以确定由当前接入的无线网络承载的数据流的数据流标识,从而将对应的数据流切换到被激活的蜂窝网络。
[0269]
步骤s1104的具体实施方式,可以参见图8和图10所示的实施例中的步骤s12至s17,以及步骤a01和a02,此处不再赘述。
[0270]
本方案的有益效果在于,电子设备根据预先获得的阈值和卡顿围栏,预测当前接入的无线网络是否会发生卡顿,并在预测到无线网络可能卡顿时将数据流从无线网络切换到蜂窝网络,从而避免无线网络的卡顿降低用户上网时的使用体验。
[0271]
电子设备可以通过如下方式获得一个无线网络对应的卡顿围栏和阈值:
[0272]
在电子设备接入无线网络时,持续采集网络列表信息;
[0273]
该步骤的具体实施方式可以参见前述步骤s01至s03。
[0274]
在电子设备断开该无线网络的连接,或者电子设备发现该无线网络的质量差时,根据采集的网络列表信息确定该无线网络对应的卡顿围栏和阈值。
[0275]
该步骤的具体实施方式可以参见图8所示的实施例的步骤s04至s06,或者参见图10所示的实施例的步骤b01至b03。
[0276]
本技术实施例提供一种电子设备,包括存储器和一个或多个处理器。
[0277]
存储器用于存储计算机程序。
[0278]
一个或多个处理器用于执行计算机程序,具体用于实现本技术任一实施例所提供的网络卡顿的预测方法。
[0279]
本技术实施例还提供一种计算机存储介质,用于存储计算机程序,该计算机程序被执行时,具体用于实现本技术任一实施例所提供的网络卡顿的预测方法。
[0280]
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有
的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0281]
本技术实施例涉及的多个,是指大于或等于两个。需要说明的是,在本技术实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。

技术特征:
1.一种网络卡顿的预测方法,其特征在于,包括:在电子设备接入当前无线网络后,检测所述当前无线网络的信号强度是否低于所述当前无线网络的阈值;若所述当前无线网络的信号强度低于所述阈值,获得当前网络列表信息,所述当前网络列表信息包括当前扫描到的无线网络的网络标识和信号强度;将所述当前网络列表信息和所述当前无线网络的卡顿围栏匹配;若所述当前网络列表信息和所述卡顿围栏匹配成功,将所述当前无线网络承载的数据流切换到蜂窝网络。2.根据权利要求1所述的方法,其特征在于,还包括:在所述电子设备接入所述当前无线网络时,实时采集网络列表信息,采集到的网络列表信息包括采集时扫描到的无线网络的网络标识和信号强度;根据预设时间段内采集到的网络列表信息确定所述当前无线网络的卡顿围栏和阈值。3.根据权利要求2所述的方法,其特征在于,所述预设时间段,为所述电子设备和所述当前无线网络断开连接前的第一预设时长。4.根据权利要求2所述的方法,其特征在于,所述预设时间段,为所述电子设备确定所述当前无线网络的网络质量差之前的第二预设时长。5.根据权利要求2至4任意一项所述的方法,其特征在于,所述当前无线网络的卡顿围栏,包括所述预设时间段内采集到的网络列表信息中每一个无线网络对应的信号强度均值;所述无线网络对应的信号强度均值,为所述预设时间段内采集到的网络列表信息中所述无线网络对应的多个信号强度的平均值。6.根据权利要求2至4任意一项所述的方法,其特征在于,所述当前无线网络的阈值,为所述预设时间段内采集到的网络列表信息中所述当前无线网络对应的多个信号强度的平均值。7.根据权利要求5所述的方法,其特征在于,所述将所述当前网络列表信息和所述当前无线网络的卡顿围栏匹配,包括:计算所述当前网络列表信息中无线网络的信号强度偏差,所述无线网络的信号强度偏差,为所述卡顿围栏中所述无线网络的信号强度均值与所述当前网络列表信息中所述无线网络的信号强度的差值;确定信号强度偏差在预设的偏差范围内的无线网络在所述当前网络列表信息中所占的比例;若所述比例大于预设的比例阈值,确定所述当前网络列表信息和所述卡顿围栏匹配成功;若所述比例小于或等于所述比例阈值,确定所述当前网络列表信息和所述卡顿围栏匹配失败。8.根据权利要求1至7任意一项所述的方法,其特征在于,所述获得当前网络列表信息之前,还包括:判断所述当前无线网络的信号强度低于所述当前无线网络的阈值之前的第三预设时长内,所述当前无线网络的信号强度是否持续下降;
若所述当前无线网络的信号强度在所述第三预设时长内持续下降,执行所述获得当前网络列表信息步骤。9.根据权利要求1至8任意一项所述的方法,其特征在于,所述将所述当前无线网络承载的数据流切换到蜂窝网络,包括:将所述当前无线网络承载的前台应用的数据流切换到蜂窝网络。10.一种电子设备,其特征在于,包括存储器和一个或多个处理器;所述存储器用于存储计算机程序;所述一个或多个处理器用于执行所述计算机程序,具体用于实现如权利要求1至9任意一项所述的网络卡顿的预测方法。11.一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现如权利要求1至9任意一项所述的网络卡顿的预测方法。

技术总结
本申请实施例提供一种网络卡顿的预测方法、设备和存储介质,方法包括:在电子设备接入当前无线网络后,检测当前无线网络的信号强度是否低于当前无线网络的阈值;若当前无线网络的信号强度低于阈值,获得当前网络列表信息,当前网络列表信息包括当前扫描到的无线网络的网络标识和信号强度;将当前网络列表信息和当前无线网络的卡顿围栏匹配;若当前网络列表信息和卡顿围栏匹配成功,将当前无线网络承载的数据流切换到蜂窝网络。本方案利用卡顿围栏预测当前无线网络是否会卡顿,从而在发生卡顿前提前将数据流从当前无线网络切换到蜂窝网络,避免了无线网络信号弱时的卡顿问题,改善用户的使用体验。用户的使用体验。用户的使用体验。


技术研发人员:张忠伟 王金香 梁恒辉
受保护的技术使用者:荣耀终端有限公司
技术研发日:2022.01.07
技术公布日:2023/7/25
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐