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

通道切换方法、电子设备及存储介质与流程

2023-01-16 18:43:55 来源:中国专利 TAG:

通道切换方法、电子设备及存储介质
1.本技术是分案申请,原申请的申请号是202111137131.0,原申请日是2021年9月27日,原申请的全部内容通过引用结合在本技术中。
技术领域
2.本技术涉及通信技术领域,尤其涉及一种通道切换方法、电子设备及存储介质。


背景技术:

3.随着电子技术及互联网技术的快速发展,手机等移动设备在人们日常生活中的应用越来越广,例如,可以通过手机进行移动支付及游戏等。为了保证常用业务(例如,游戏,通话、社交软件等业务)的正常运行,通常用户的手机都会连接无线网络。然而,在某些场景下,当前的无线网络不足以满足业务的需求(例如,手机信号变差等情况),会导致业务运行的卡顿,由此可能降低用户的体验。


技术实现要素:

4.本技术提供了一种通道切换方法、电子设备及存储介质,能够减少业务运行的卡顿问题,提高用户的体验。
5.第一方面,本技术实施例提供一种通道切换方法,应用于电子设备,电子设备包括第一网络通道和第二网络通道,方法包括:启动第一应用,第一应用包括第一数据流,第一数据流承载在第一网络通道上;第一数据流包括报文;按照预设周期计算第一数据流的报文的预设参数;在确定连续m1个周期中的m2个周期中预设参数大于第一阈值时,或者,在确定连续m3个周期中的m4个周期中预设参数大于第二阈值时,将承载第一数据流的网络通道切换为第二网络通道;其中,第一阈值小于第二阈值,m2≤m1,m4≤m3,m1≥m3,m2>m4。该方法中,为预设参数设置2个阈值,从而可以在网络通道的不同网络质量下,根据网络质量的相对好坏,具有不同的网络质量评估时延,进而具有不同的网络通道切换速度,从而满足网络通道的不同网络质量下电子设备对于网络通道的切换速度需求,提高网络通道的切换速度,进而降低业务运行出现卡顿的可能性,提升用户体验。
6.在一种可能的实现方式中,还包括:确定连续m5个周期中的m6个周期中预设参数大于第三阈值,将承载第一数据流的网络通道切换为第二网络通道;其中,第二阈值小于第三阈值,m6≤m5,m3≥m5,m4>m6。该方法中,可以为预设参数设置3个甚至更多个阈值,每个阈值对应不同的网络质量评估时延,从而满足网络通道的不同网络质量下电子设备对于网络通道的切换速度需求,提高网络通道的切换速度,进而降低业务运行出现卡顿的可能性,提升用户体验。
7.在一种可能的实现方式中,第一应用包括第二数据流,第二数据流承载在第一网络通道上;方法还包括:在确定连续m1个周期中的m2个周期中预设参数大于第一阈值时,或者,在确定连续m3个周期中的m4个周期中预设参数大于第二阈值时,将承载第二数据流的网络通道切换为第二网络通道。该方法中,在第一数据流的网络质量变差时,可以将在同一
网络通道上的第二数据流也切换至第二网络通道,减少因为第二数据流的网络质量差导致的业务运行卡顿问题,提升用户体验。
8.在一种可能的实现方式中,第一数据流和第二数据流是对预设参数敏感的数据流,预设参数包括:时延、和/或丢包率。
9.在一种可能的实现方式中,按照预设周期计算第一数据流的报文的预设参数,包括:获取第一网络通道上承载的第一数据流的报文;根据第一数据流的报文按照预设周期计算第一数据流的报文的预设参数。
10.在一种可能的实现方式中,获取第一网络通道上承载的第一数据流的报文,包括:获取第一网络通道上承载的第一应用的报文;从第一应用的报文中获取第一数据流的报文。
11.在一种可能的实现方式中,从第一应用的报文中获取第一数据流的报文,包括:从第一应用的报文中获取第一数据流的心跳流报文。
12.在一种可能的实现方式中,将承载第一数据流的网络通道切换为第二网络通道之前,还包括:在检测到环境变化或者预测到第一网络通道的质量变差时,获取电子设备中除第一网络通道之外处于可用状态的网络通道;分别对处于可用状态的网络通道进行质量评估;根据质量评估的评估结果选择质量最佳的第二网络通道作为备用网络通道;启用备用网络通道。
13.在一种可能的实现方式中,将承载第一数据流的网络通道切换为第二网络通道,包括:确定具有已启用的、作为备用网络通道的第二网络通道时,将承载第一数据流的网络通道切换为第二网络通道。
14.在一种可能的实现方式中,将承载第一数据流的网络通道切换为第二网络通道,还包括:确定不具有已启用的备用网络通道时,获取除第一网络通道之外处于可用状态的网络通道;分别对处于可用状态的网络通道进行质量评估;根据质量评估的评估结果选择质量最佳的第二网络通道作为备用网络通道;启用作为备用网络通道的第二网络通道;将承载第一数据流的网络通道切换为第二网络通道。
15.在一种可能的实现方式中,按照预设周期计算第一数据流的报文的预设参数之前,还包括:确定第一应用是预设白名单中的应用。
16.在一种可能的实现方式中,第一网络通道是wifi通道或者蜂窝通道,第二网络通道是wifi通道或者蜂窝通道。
17.在一种可能的实现方式中,第一应用是游戏应用或者视频播放应用,第一数据流是语音流。
18.第二方面,本技术实施例提供一种电子设备,包括:
19.存储器,上述存储器用于存储计算机程序代码,上述计算机程序代码包括指令,上述电子设备具有多个网络通道,上述电子设备上运行有第一应用,上述第一应用承载于第一网络通道,上述第一应用包括多个报文流,当上述电子设备从上述存储器中读取上述指令,以使得上述电子设备执行第一方面任一项所述的方法。
20.第三方面,本技术实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行如第一方面所述的方法。
21.第四方面,本技术实施例提供一种计算机程序,当上述计算机程序被计算机执行
时,用于执行第一方面所述的方法。
22.在一种可能的设计中,第四方面中的程序可以全部或者部分存储在与处理器封装在一起的存储介质上,也可以部分或者全部存储在不与处理器封装在一起的存储器上。
附图说明
23.图1a为本技术实施例间隔为1s的心跳流报文示意图;
24.图1b为心跳流报文的往返时延计算方法示意图;
25.图1c为本技术实施例基于心跳流报文的rtt的一种网络质量评估方式示意图;
26.图1d为本技术实施例基于心跳流报文的rtt的另一种网络质量评估方式示意图;
27.图2a为本技术实施例提供的一种流的网络通道切换示意图;
28.图2b为本技术实施例提供的另一种的流的网络通道切换示意图;
29.图3a为本技术实施例提供的手机桌面显示示意图;
30.图3b为本技术实施例提供的应用界面示意图;
31.图3c为本技术实施例提供的手机使用主网络通道的应用界面示意图;
32.图3d为本技术实施例提供的手机使用备用网络通道的应用界面示意图;
33.图4为本技术实施例提供的电子设备的硬件结构示意图;
34.图5为本技术实施例提供的电子设备的软件架构示意图;
35.图6为本技术实施例提供的电子设备的另一种软件架构示意图;
36.图7为本技术提供的通道切换方法一个实施例的流程示意图;
37.图8为本技术实施例提供的心跳流报文结构示意图;
38.图9为本技术实施例提供的对战流报文统计示意图;
39.图10为本技术实施例提供的对战流报文结构示意图;
40.图11a-图11c为本技术实施例提供的流切换示意图;
41.图11d为本技术实施例提供的敏感类业务切换流程交互示意图;
42.图11e为本技术实施例提供的非敏感类业务切换流程交互示意图;
43.图12为本技术实施例电子设备组件之间的一种交互时序图;
44.图13为本技术实施例电子设备组件之间的另一种交互时序图;
45.图14为本技术实施例电子设备组件之间的另一种交互时序图;
46.图15为本技术实施例流量上报组件的实现原理示意图;
47.图16为本技术实施例注册钩子函数的代码实现示意图;
48.图17为本技术实施例注册钩子函数的代码实现示意图;
49.图18为本技术实施例特征信息的代码实现示意图;
50.图19为本技术实施例报文过滤的代码实现示意图;
51.图20为本技术实施例发送目标流和目标流的网络质量评估结果的代码实现示意图;
52.图21为本技术实施例获取待切换的流的代码实现示意图。
具体实施方式
53.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其
中,在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
54.以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
55.首先对本技术实施例涉及的名词进行示例性而非限定性的说明。
56.wifi网卡是支持通过无线局域网(wireless local area network,wlan)方式上网的装置。
57.数据业务网卡是支持通过通用分组无线服务(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)等移动通信技术上网的装置。
58.网络通道是指网络中两个或两个以上节点间的任何路由,或网络中一个源地址到一个目的地址的路由。
59.本技术实施例中电子设备的网络通道是指通过使用上述wifi网卡或者数据业务网卡等上网的装置与其他电子设备例如服务器之间建立的路由。本技术实施例中,将使用wifi网卡建立的网络通道,称为wifi通道,将使用数据业务网卡建立的网络通道称为蜂窝通道。
60.电子设备中可以预先配置多条网络通道,示例性的,该多条网络通道可以包括主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通道作为主网络通道也只是优选方案,并不构成对本技术实施例的限定,在一些实施例中,也可以选取其他网络通道作为主网络通道。
61.随着电子技术及互联网技术的快速发展,手机等移动设备在人们的日常生活中的应用越来越广,例如,可以通过手机进行移动支付及游戏等。为了保证常用业务(例如,游戏,通话、社交软件等业务)的正常运行,通常用户的手机都会连接无线网络。然而,在某些场景下,当前的无线网络不足以满足业务的需求(例如,手机信号变差等情况),会导致业务
运行的卡顿,由此可能降低用户的体验。
62.为了解决上述问题,电子设备可以开通加速通道,用于满足业务的需求。其中,上述加速通道可以是一条备用网络通道。在本技术提供的一个实例中,电子设备在当前运行的应用的某条流的网络通道质量变差时,可以将该流或者包括该流在内的多条流切换到备用网络通道。
63.上述实例中,在将某条流(为便于描述,以下称为流s)或者包括流s在内的多条流从当前使用的网络通道切换至备用网络通道之前,需要对流s当前使用的网络通道的网络质量进行评估,根据评估得到的网络质量评估结果决策是否进行网络通道切换,在决策结果为进行网络通道切换时,才将流s或者包括流s在内的多条流从当前使用的网络通道切换至备用网络通道。为了便于描述,以下说明中将一条流使用的网络通道的网络质量评估结果称为一条流的网络质量评估结果,例如流s的网络质量评估结果也即为流s使用的网络通道的网络质量评估结果。
64.在本技术提供的一个实施例中,可以根据流s的报文周期性地计算流s的报文的预设参数(例如时延),根据该预设参数是否满足预设条件,来评估流s的网络质量,得到流s的网络质量评估结果。
65.在一种可能的实现方式中,可以为预设参数设置一个阈值1,在每个周期,计算流s的报文的预设参数,将该预设参数与阈值1进行比较,根据比较结果对流s的网络质量进行评估,从而得到每个周期中流s的网络质量评估结果(例如,质量评估结果可以包括:质量好、或者质量差),再根据连续若干个周期中流s的网络质量评估结果最终确定流s的网络质量评估结果,例如当连续k1个周期中有k2个周期的质量评估结果是质量差时,确定流s的网络质量评估结果为差,上述k2小于等于k1。
66.以当前应用包括语音流,语音流中包括心跳流报文为例。心跳流报文是流s(例如上述语音流)中按照一定的时间间隔出现的报文。参见图1a所示,为时间间隔1s的心跳流报文示意图。
67.往返时延(round-trip time,rtt)是网络重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。参见图1b,为心跳流报文的往返时延计算方法示意图。以用户手机与服务器之间传输的心跳流报文为例,心跳流报文的往返时延为:用户手机向服务器发送心跳请求报文开始,到用户手机接收到服务器反馈的心跳响应报文为止,总共经历的时延。
68.当前应用中语音流使用的网络通道的网络质量可以根据上述心跳流报文的rtt评估,假设心跳流报文的时间间隔为1s,心跳流报文的rtt的计算周期为1s,图1c是应用当前使用的网络通道的若干个周期的rtt示意图,基于图1c可以得到相对时间与rtt的对应关系表如下表1所示。
69.相对时间t(s)123456789心跳往返时延rtt(ms)404040500500500500500500
70.表1
71.假设心跳流报文的rtt的预设阈值为150ms,那么如果一个周期中计算得到的心跳流报文的rtt》150ms,那么该周期中语音流的网络质量评估结果为质量差,否则,该周期中语音流的网络质量评估结果为质量好;基于表1,如果需要连续5个周期中的3个周期中语音
流的网络质量评估结果为质量差,语音流的网络质量评估结果为质量差,那么最快需要3个周期,最慢需要5个周期才能确定语音流的网络质量评估结果,进而根据网络质量评估结果决策是否进行网络通道切换,在决策结果为进行网络通道切换时完成网络通道切换,语音流的网络质量评估过程耗费的时间过长,影响网络通道的切换效率,进而可能导致业务运行的卡顿,降低用户的体验。
72.在本技术提供的另一个实施例中,相对于上一个实施例,可以将预设参数对应的预设条件从一个预设条件扩展为多个预设条件。
73.以扩展为预设条件1和预设条件2两个预设条件为例,两个预设条件的对应的网络质量评估时延不相同,预设条件对应的网络质量相对越好,网络质量评估时延相对越大,否则,网络质量评估时延相对越小。以预设条件1的网络质量评估时延大于预设条件2的网络质量评估时延为例。具体的,
74.按照预设周期计算流s的报文的预设参数后,可以分别判断预设参数是否满足预设条件1和预设条件2,只要满足其中的一个预设条件,将流s或者包括流s在内的多条流从当前使用的网络通道切换至备用网络通道。
75.延续前述对于心跳流报文的举例,可以为心跳流报文的rtt设置150ms和300ms两个阈值,150ms对应的网络质量评估策略为:连续5个周期中的3个周期中流s的网络质量评估结果为差,流s的网络质量评估结果为差,300ms对应的网络质量评估策略为:1个周期中流s的网络质量评估结果为差,流s的网络质量评估结果为差。150ms对应的网络质量相对好于300ms对应的网络质量,而基于上述网络质量评估策略可知:300ms对应的网络质量评估策略的时延为1个周期,而150ms对应的网络质量评估策略的时延为至少3个周期,300ms对应的网络质量评估时延小于150ms对应的网络质量评估时延,从而300ms对应的网络通道切换时延一般小于150ms对应的网络通道切换时延。
76.参见图1d所示,rtt的曲线与图1c相同,基于图1d也可以得到相对时间与rtt的对应关系表如上表1所示。结合图1d可知,对于本实施例,在相对时间的第4s对应的周期内,由于rtt的值为500ms,大于300ms,则根据300ms对应的网络质量评估策略可以决策语音流的网络质量评估结果为差,从而可以将语音流或者包括语音流在内的多条流切换至备用网络通道。
77.该方法中,由于为预设参数设置至少2个预设条件,从而可以在网络通道的不同实际网络质量下,根据网络质量的相对好坏,具有不同的网络质量评估时延,进而具有不同的网络通道切换速度,从而满足网络通道的不同网络质量下电子设备对于网络通道的切换速度需求,提高网络通道的切换速度,进而降低业务运行出现卡顿的可能性,提升用户体验。
78.对本技术实施例通道切换方法使用的场景进行举例说明。
79.在本技术实施例提供的一个实例中,监控当前运行的应用的每条流的网络质量,在某条流的网络质量变差时,将该流切换到备用网络通道进行传输,以提升该条流的网络质量。例如图2a所示,以第一设备是手机为例,手机的某一应用包括流a和流b,流a和流b一开始均在wifi通道上传输,蜂窝通道上没有传输该应用的流,当流b的网络质量变差时,手机将流b切换到蜂窝通道上传输;切换后,流a在wifi通道上传输,流b在蜂窝通道上传输。在该实例中,在对上述流进行网络通道质量评估时,可以使用本技术实施例报文识别方法,从而快速评估出该流的网络通道质量是否变差,进而快速实现网络通道切换。
80.在本技术实施例提供的另一个实例中,当应用存在多于一条流时,如果一条流的网络质量变差,可以将同一网络通道上包括该条流在内的多条流切换到备用网络通道,从而可以把单条流的质量评估结果一起应用在包括上述单条流在内的多条流,实现多条流的网络通道切换,进而降低应用的业务出现卡顿的可能性,提升用户体验。如图2b所示,为本技术实施例中针对于当前应用的流的通道切换示意图。图2b中以流a和流b是应用的时延敏感流为例,流a和流b初始在wifi通道上传输,如果检测到流b的质量变差(例如计算流b的网络时延状态变差),将同一wifi通道上的流a和流b一起切换到蜂窝通道,从而把流b的网络质量评估结果一起应用在同一网络通道上的流a和流b,通过对流b的网络质量的快速感知保证了同一网络通道上同一类型(例如时延敏感流)的所有流的网络质量的快速感知以及网络通道的快速切换。在该实例中,在对某条流进行网络通道质量评估时,也可以使用本技术实施例报文识别方法,从而快速评估出该流的网络通道质量是否变差,进而快速完成网络通道切换。
81.一个应用通常都会包括多条流,由于不同流的不同传输特点,有些流很难监控到其网络质量是否变差,因此,即便电子设备实时监控该应用所有流的网络质量,也可能无法及时监控到所有网络质量变差的流。本技术实施例在单条流的网络质量变差时,将同一网络通道上包括该条流在内的多条流切换到备用网络通道,上述多条流中就可以包括上述无法及时监控到网络质量变差的流,从而解决上述无法及时监控到网络质量变差的流导致的业务运行的卡顿问题。仍以上述图2b为例,流a和流b在wifi通道上传输,如果wifi通道的传输出现问题,导致流a和流b的网络质量变差,进而导致应用的业务运行出现卡顿,但是手机仅及时监控到流b的网络质量变差,未及时监控到流a的网络质量变差,通过将流a和流b一起切换到备用网络通道(例如,蜂窝通道),既解决了由于流b的网络质量变差导致的业务运行卡顿问题,又解决了由于流a的网络质量变差导致的业务运行卡顿问题,从而能够减少业务运行的卡顿问题,提高用户的体验。
82.以下,以上述另一个实例为例,对本技术通道切换方法进行示例性说明。
83.通过图3a~图3d对本技术实施例通道切换方法的适用场景进行举例说明。
84.以第一设备是手机为例。图3a为手机桌面示意图。如图3a所示,用户可以在手机桌面点击视频应用图标,以打开一个视频应用,由此可以得到如图3b所示的视频显示示意图。
85.图3c为手机使用主网络通道(例如,wifi通道)后的效果示意图。如图3c所示,当手机获取到主网络通道的路径后,可以使用主网络通道进行视频的观看。
86.可以理解的是,当前的网络应用(例如,图3c中的视频应用)可以包括多个流(例如,视频流及音频流),该多个流可以承载在上述主网络通道上。
87.参见图2b,如果多个流(例如,视频流及音频流)中一条流(例如,视频流)质量变差,将多个流一起切换到备用网络通道。
88.图3d为手机使用备用网络通道(例如,蜂窝通道)的示意图。如图3d所示,当手机接收到通道切换指示后,可以将语音流和视频流由当前的主网络通道切换至备用网络通道,并可以使用备用网络通道进行视频的观看,以避免视频的卡顿。
89.本技术提供的通道切换方法可以应用于第一设备。其中,第一设备可以是移动终端、终端设备、用户设备(user equipment,ue)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。第
一设备可以是wlan中的站点(staion,st),可以是蜂窝电话、无绳电话、会话启动协议(session initiation protocol,sip)电话、无线本地环路(wireless local loop,wll)站、个人数字处理(personal digital assistant,pda)设备、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、车联网终端、电脑、膝上型计算机、手持式通信设备、手持式计算设备、卫星无线设备、无线调制解调器卡、电视机顶盒(set top box,stb)、用户驻地设备(customer premise equipment,cpe)和/或用于在无线系统上进行通信的其它设备以及下一代通信系统,例如,5g网络中的移动终端或者未来演进的公共陆地移动网络(public land mobile network,plmn)网络中的移动终端等。该第一设备10还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,如智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
90.下面首先介绍本技术以下实施例中提供的示例性电子设备。图4示出了电子设备100的结构示意图,该电子设备100可以是上述第一设备。
91.电子设备100可以包括处理器110,外部存储器接口120b,内部存储器120a,通用串行总线(universal serial bus,usb)接口130,充电管理模块140a,电源管理模块140b,电池140c,天线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等。
92.可以理解的是,本技术实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
93.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
94.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令
local 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转为电磁波辐射出去。
104.在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其它设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,gsm),通用分组无线服务(general packet radio service,gprs),码分多址接入(code division multiple access,cdma),宽带码分多址(wideband code division multiple access,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),北斗卫星导航系统(beidou navigation satellite system,bds),准天顶卫星系统(quasi-zenith satellite system,qzss)和/或星基增强系统(satellite based augmentation systems,sbas)。
105.电子设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
106.显示屏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的正整数。
107.电子设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
108.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
109.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,
电子设备100可以包括1个或n个摄像头193,n为大于1的正整数。
110.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其它数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
111.视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
112.npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
113.外部存储器接口120b可以用于连接外部存储卡,例如micro sd卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120b与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
114.内部存储器120a可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器120a可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器120a可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器120a的指令,和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种功能应用以及数据处理。
115.电子设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
116.触摸传感器180k,也称“触控面板”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
117.本技术实施例中,通过该触摸传感器180k可以获取用户的触屏数据,并可以将该触屏数据发送至处理器110进行处理。
118.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。
119.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
120.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
121.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。电子设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在电子设备100中,不能和电子设备100分离。
122.接着,对上述第一设备的系统框架图进行说明。如图5所示,第一设备10包括应用层11、服务层12、策略层13及内核层14。其中,
123.应用层11可以用于提供多种网络应用,上述网络应用可以是第三方应用,也可以是系统应用,例如,游戏、音乐、视频等网络应用。本技术对上述应用层11提供的网络应用的类型不做特殊限定。这里的网络应用是指需要使用第一设备10的网络通道从网络上获取资源的应用。
124.服务层12可以包括环境探测组件121、网络探测组件122、通道级路径管理组件123、应用级策略管理组件124及通道及应用质量评估组件125。其中,环境探测组件121可以用于对应用的状态进行探测,例如上述应用的状态可以包括应用退出、应用打开、应用运行、应用安装及应用卸载等状态,可以理解的是,上述状态仅为示例性说明,还可以包括更多的状态,在此不再赘述。网络探测组件122可以用于探测网络通道的开启状态。通道级路径管理组件123可以用于负责请求/关闭网络通道,感知网络通道的状态变化,更新网络通道的选取策略,还可以用于存储多条网络通道的路径。应用级策略管理组件124可以基于输入信息生成不同的执行策略,示例性的,该策略可以是启用网络通道的加速功能,也可以是启动流量感知(例如,对网络通道的流量进行探测)等。通道及应用质量评估组件125可以用于评估网络通道的质量。服务层12还可以包括:网络连接管理组件126,用于启用网络通道,也即将网络通道从休眠状态转换为唤醒状态,在唤醒状态下网络通道可以直接被使用。
125.策略层13可以包括流级路径管理组件131、流级策略管理组件132及流量感知组件133。其中,流级路径管理组件131可以用于根据上层的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道,还可以用于存储不同的网络通道的路径,示例性的,可以存储应用当前使用的网络通道(例如,主网络通道)及备用网络通道的路径。流级策略管理组件132可以用于指示网络通道的切换,还可以用于存储网络应用中流的网络通道切换策略。流量感知组件133可以用于对上报的流量进行统计,评估各条流的网络质量。
126.内核层14可以包括流量上报组件141及策略执行组件142。其中,流量上报组件141可以用于对流量信息的收集及上报。策略执行组件142可以用于执行网络通道的切换。
127.可以理解的是,本技术实施例示意的各组件间的接口连接关系,只是示意性说明,并不构成对第一设备的结构限定。在本技术另一些实施例中,第一设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
128.以上图5所示的系统框架仅用于说明第一设备的分层架构的实现。图5所示系统架构还可以作为已有的分层软件架构的一部分实现。以安卓(android)系统为例,图6所示为
本技术实施例提供的一种android系统的电子设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在图6所示的本技术实施例中,将android系统分为五层,从上至下分别为应用程序层、应用程序框架层(也称:系统框架层)、系统库和安卓运行时层、硬件抽象层(hardware abstraction layer,hal)和内核层。
129.应用程序层包括若干个应用程序(下文简称为应用),例如相机,图库,日历,wlan等。在一种可能的实例中,图5所示系统架构中的应用层可以与该应用程序层对应。图6所示电子设备的应用程序层可以包括本技术实施例所述的网络应用,例如视频播放应用、游戏应用等。
130.应用程序框架层为应用程序层的应用提供应用编程接口(application programming interface,api)和编程框架,包括各种组件和服务来支持开发者的安卓开发。应用程序框架层还包括一些预先定义的函数。例如应用程序框架层可包括窗口管理器、内容提供器、资源管理器、摄像头服务等。在一种可能的实例中,图5所示系统架构中的服务层和策略层可以位于应用程序框架层。
131.系统库和安卓运行时层包括系统库和安卓运行时(android runtime)。系统库可以包括多个功能模块。例如:表面管理器、二维图形引擎、三维图形处理库(例如:opengl es),媒体库、字体库等。
132.hal层为位于操作系统内核与硬件电路之间的接口层。hal层包括但不限于:音频硬件抽象层(audio hal)和摄像头硬件抽象层(camera hal)。
133.内核层是硬件和软件之间的层。内核层可以包括:显示驱动,摄像头驱动,音频驱动,传感器驱动等。在一种可能的实例中,图5所示系统架构中的内核层可以对应图6所示软件架构中的内核层,此时,如图6所示,内核层可以包括:流量上报组件及策略执行组件。
134.以下结合上述图4~图6所示的第一设备对本技术实施例通道切换方法进行示例性说明。
135.图7为本技术实施例提供的通道切换方法一个实施例的流程示意图,包括:
136.步骤301,响应于用户的操作,启动网络应用。
137.具体地,用户可以在第一设备中进行打开操作,以打开一个网络应用。示例性的,用户可以在第一设备中点击网络应用的图标。响应于用户的操作,第一设备中的应用层11启动网络应用。可以理解的是,上述示例仅示例性的示出了通过点击方式启动网络应用的场景,并不构成对本技术实施例的限定,在一些实施例中,也可以通过其他操作(例如,双击、滑动等操作)启动网络应用。上述网络应用可以是联机游戏、在线视频及在线音乐等网络类型的应用。
138.图3a为手机桌面示意图。如图3a所示,用户可以在手机桌面点击视频应用图标,以打开一个视频应用,由此可以得到如图3b所示的视频显示示意图。
139.步骤302,环境探测组件121探测到网络应用切换到前台或网络发生变化,通知应用级策略管理组件124。
140.具体地,第一设备中的服务层12中的环境探测组件121可以持续对上述网络应用的状态或网络的环境进行探测,当环境探测组件121探测到任一网络应用切换到前台或网络的环境发生变化后,可以发送第一通知消息给应用级策略管理组件124,该第一通知消息
可以用于通知应用级策略管理组件124网络应用已切换到前台或网络的环境已发生变化。可以理解的是,上述第一通知消息中还可以包括该网络应用的身份标识(例如,该网络应用的身份标识可以是uid),该身份标识可以用于标识网络应用的唯一身份。
141.示例性的,上述网络应用的身份标识可以通过如下代码实现:
[0142][0143]
export_symbol(sock_i_uid)。
[0144]
步骤303,应用级策略管理组件124接收环境探测组件121发送的第一通知消息,判断当前网络应用是否满足开启加速的条件。
[0145]
具体地,当应用级策略管理组件124接收环境探测组件121发送的第一通知消息后,可以从第一通知消息中确定该网络应用已切换到前台。接着,应用级策略管理组件124可以进一步确定该网络应用是否包含在预设应用白名单内。
[0146]
在具体实现时,应用级策略管理组件124中可以预设应用白名单,该应用白名单可以包括多个网络应用,每个网络应用可以通过上述身份标识进行标识,该应用白名单可以用于表征可以开启加速的网络应用。其中,上述预设应用白名单中的网络应用可以包括业务类型,例如,上述预设应用白名单中的网络应用的业务类型都可以是敏感类,该敏感类业务可以包括时延敏感类业务、丢包率敏感类业务等。当通过对第一通知消息中的网络应用的身份标识与预设应用白名单中的网络应用的身份标识的比对,可以确定第一通知消息中的网络应用是否包含在预设应用白名单中。若第一通知消息中的网络应用包含在预设应用白名单中,则可以确定该网络应用满足开启加速的条件,若第一通知消息中的网络应用不包含在预设应用白名单中,则可以确定该网络应用不满足开启加速的条件。
[0147]
示例性的,表2为网络应用的白名单。
[0148]
应用名称特征流类型通道质量参数百度网盘下载流速率微信视频流时延/丢包游戏对战流时延/丢包
[0149]
表2
[0150]
可以理解的是,若当前的网络应用不在上述预设应用白名单中,也就是说,当前的网络应用的业务类型为非敏感类务,则第一设备在探测到主网络通道变差时,可以进一步探测其他质量较好的网络通道,由此可以直接将上述非敏感类业务切换到质量较好的网络通道上。
[0151]
步骤304,应用级策略管理组件124向流级路径管理组件131发送通道启用消息,用于启用一条网络通道。
[0152]
具体地,若应用级策略管理组件124确定当前网络应用满足开启加速的条件,则可以向流级路径管理组件131发送通道启用消息,其中,该通道启用消息用于指示流级路径管理组件131可以启用一条网络通道(例如,主网络通道)。
[0153]
步骤305,流级路径管理组件131向通道级路径管理组件123请求主网络通道的路径。
[0154]
具体地,当流级路径管理组件131接收到应用级策略管理组件124发送的通道启用消息后,可以向通道级路径管理组件123发送主网络通道请求,其中,该主网络通道请求用于请求主网络通道的路径。示例性的,该主网络通道可以是主wifi通道。
[0155]
步骤306,通道级路径管理组件123将主网络通道的路径发送给流级路径管理组件131。
[0156]
具体地,通道级路径管理组件123可以预先配置多条网络通道的路径,示例性的,该多条网络通道可以包括主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通道作为主网络通道也只是优选方案,并不构成对本技术实施例的限定,在一些实施例中,也可以选取其他网络通道作为主网络通道。
[0157]
当通道级路径管理组件123接收到流级路径管理组件131发送的主网络通道请求后,可以在上述多条网络通道中选取一条网络通道作为主网络通道(例如,该主网络通道为主wifi通道),并将该主网络通道的路径发送给流级路径管理组件131。
[0158]
步骤307,流级路径管理组件131存储接收到的主网络通道的路径。
[0159]
具体地,当流级路径管理组件131接收到通道级路径管理组件123发送的主网络通道的路径后,可以将该主网络通道的路径进行存储。示例性的,该主网络通道的路径可以用wifi1表征。
[0160]
图3c为手机使用主网络通道后的效果示意图。如图3c所示,当手机获取到主网络通道的路径后,可以使用主网络通道进行视频的观看。
[0161]
可以理解的是,当前的网络应用(例如,图3c中的视频应用)可以包括多个流(例如,视频流及音频流),该多个流可以承载在上述主网络通道上。
[0162]
步骤308,应用级策略管理组件124向流量感知组件133发送流量探测请求。
[0163]
具体地,该流量探测请求可以用于指示流量感知组件133启动主网络通道上的网络应用的报文统计。其中,该流量探测请求可以包括当前待探测的网络应用的身份标识(例如uid),用于请求对该主网络通道上的与上述身份标识uid对应的网络应用的流进行探测。可以理解的是,上述网络应用的流可以是报文的形式。
[0164]
需要说明的是,本步骤308可以与步骤304同时执行,也可以在步骤304之后的任一时刻执行,本技术对此不做特殊限定。
[0165]
步骤309,流量感知组件133向流量上报组件141发送流量上报请求。
[0166]
具体地,当流量感知组件133收到应用级策略管理组件124发送的流量探测请求后,可以向流量上报组件141发送流量上报请求,其中,该流量上报请求可以用于指示流量上报组件141对当前主网络通道上的网络应用的报文进行探测,并将探测到的报文进行上报。可以理解的是,上述流量探测请求可以包含网络应用的身份标识(例如uid)。
[0167]
步骤310,流量上报组件141进行流量探测,并将探测到的报文上报给流量感知组件133。
[0168]
具体地,当流量上报组件141接收到上述流量感知组件133发送的流量上报请求后,可以根据上述流量上报请求中的网络应用的身份标识(例如uid),对与网络应用的身份标识对应的网络应用的报文进行探测,由此可以得到主网络通道上网络应用的报文,并可以将上述探测到的网络应用的报文上报给流量感知组件133。
[0169]
在具体实现时,上述流量上报组件141可以调用组件(例如,安卓系统的netfilter组件)获取上述主网络通道上的网络应用的报文。可以理解的是,上述netfilter组件仅为示例性说明,并不构成对本技术实施例的限定,在一些实施例中,也可以通过其他组件完成上述报文的探测。
[0170]
示例性的,上述网络通道的参数可以通过如下代码实现:
[0171]
typedef struct{
[0172]
bool available;
[0173]
bool slowdevforbbiden;
[0174]
uint64_t qoebadtimestamp;
[0175]
uint64_t chqoebadstarttime;
[0176]
uint32_t rcvrate;
[0177]
}
[0178]
可以理解的是,上述探测的报文可以是当前网络应用中一个或多个特征流的报文,其中,该特征流可以是网络应用中敏感性最高的流,也就是对当前网络应用影响较大的流。此外,通过上述网络通道的参数可以对网络通道的质量进行评估。
[0179]
步骤311,流量感知组件133对主网络通道上的网络应用的报文进行统计,根据统计结果进行预测,得到预测结果,并将预测结果发送给流级路径管理组件131。
[0180]
具体地,当流量感知组件133接收到流量上报组件141探测到的网络应用的报文后,可以对上述报文进行统计,由此可以得到报文统计结果。接着,可以根据上述报文统计结果进行分析,由此可以对网络状况进行预测,也就是说,可以根据报文统计结果预测网络状况会变好还是变坏。在具体实现时,可以统计上述网络应用的报文的丢包率和/或时延,由此可以预测网络状况。示例性的,可以统计预设n个周期内的报文的丢包率和/或时延,若统计的丢包率和/或时延满足预设要求,则可以预测网络状况为好,若统计的丢包率和/或时延不满足预设要求,则可以预测网络状况为差。
[0181]
可以理解的是。本步骤311的网络通道的质量为粗粒度的评估,也就是说,是在一个较短的周期内对特征流的报文进行统计,用于对网络的状况进行快速预测,由此可以提前选取备用网络通道,进而可以节省通道切换的时延。
[0182]
上述报文可以是主网络通道上的网络应用的各个流的报文。当流量感知组件133
接收到上述报文后,可以对上述报文进行分析。其中,上述报文分析可以是基于报文的特征,以此来识别特征流。举例来说,以和平精英游戏为例,该游戏的特征流可以是语音流,也就是说,语音流对该游戏的影响是比较大的,敏感性最高,当语音流质量不好(例如,时延和丢包率都不满足要求)时,会严重影响用户的游戏体验。因此,需要识别语音流,并进一步统计报文中的语音流报文。而该语音流的报文的识别可以通过心跳包统计实现。示例性的,以udp协议为例,该语音流的数据报文特征可以通过如下特征表征:
[0183]
上行:udp.payload[6]=0x64;
[0184]
下行:udp.payload[6]=0x65。
[0185]
图8为udp协议的语音流的心跳报文示意图。
[0186]
也就是说,对上述上下行报文中的载荷中的预设字段的读取,可以识别该报文是否是语音流数据包。
[0187]
接着,可以对语音流的报文进行统计,由此可以获得上述语音流的报文的时延和/或丢包率。在具体实现时,可以统计预设时长内的语音流的报文。优选地,上述预设时长可以为1s,由此可以尽快的确定语音流的质量是否变差,进而可以尽快的将该语音流切换到备用网络通道上,以提供较高的游戏体验。示例性的,若上述语音流的报文的时延和/或丢包率达不到要求时,则可以确定该语音流的质量为差,此时,可以触发切换,用于将上述语音流切换到备用网络通道上。需要说明的是,上述示例仅以游戏为例进行示例性说明,在具体应用中,还可以包括其他网络应用,例如,百度网盘,该网络应用的特征流是下载流,也就是说,可以在上述报文中找到下载流的报文,而该下载流的报文的影响因素可以是速率。此外,上述网络应用还可以包括微信等社交网络应用,该网络应用的特征流是视频流,也就是说,可以在上述报文中找到视频流的报文,而该视频流的报文的影响因素可以是时延/或丢包率。
[0188]
可以理解的是,上述特征流除上述语音流之外,还可以包括游戏中的对战流。以和平精英为例,通过周期统计udp报文个数可以判断当前的报文流是否是对战流。目前,和平精英采用的周期是500ms,因此,可以统计周期内的报文总数判断是否是对战流,例如,上述500ms周期的报文总数大于10个,则该报文流为对战流。图9为udp协议的对战流的报文统计示意图。如图9所示,横轴为时间,纵轴为报文总数,由于每秒基本保持在30个报文,因此,可以通过计算确定每500ms有15个报文,由此可以确定该报文流是对战流。
[0189]
接着,以王者荣耀为例,其中,王者荣耀采用过滤udp协议号和报文头特征payload=0x00010000来过滤对战报文。图10为udp协议的对战流的心跳报文示意图。
[0190]
步骤312,流级路径管理组件131基于接收到的预测结果向通道级路径管理组件123请求备用网络通道。
[0191]
具体地,当流级路径管理组件131接收到预测结果后,可以基于预测结果提前选取备用网络通道,例如,可以向通道级路径管理组件123发送备用网络通道请求,用于请求一条备用网络通道。
[0192]
可选地,上述备用网络通道请求还可以携带标签,该标签可以用于指示对主网络通道的切换的预测,并不真正进行切换。
[0193]
现结合图11a-11c,以手机为例对上述备用网络通道的选取进行说明。如图11a所示,手机具有主wifi通道(例如wifi1)、辅wifi通道(例如wifi2)、主蜂窝通道(例如
mobile1)及辅蜂窝通道(例如mobile2)等4条网络通道的能力。假设手机当前在wifi1通道(主网络通道)运行一个网络应用(例如微信),该网络应用包括流a(例如视频流)和流b(例如音频流)。当手机接收到网络即将变差的预测结果后,可以提前选取备用网络通道,其中,该备用网络通道可以是上述辅wifi通道(例如wifi2)、主蜂窝通道(例如mobile1)及辅蜂窝通道(例如mobile2)中的通道质量最好的一条。当选取上述辅wifi通道(例如wifi2)、主蜂窝通道(例如mobile1)及辅蜂窝通道(例如mobile2)中的一条网络通道作为备用网络通道(例如,mobile1通道)后,可以将该mobile1通道的路径进行存储。
[0194]
当手机通过进一步报文探测,发现流a的质量已经不满足需求,此时,可以仅将上述流a切换到备用网络通道,也就是mobile1通道上。如图11b所示,此时,上述流b可以继续承载在主网络通道,也就是wifi通道上,而流a可以承载在备用网络通道,也就是mobile1通道上。
[0195]
需要说明的是,上述示例仅示例性的示出了一条流进行切换的场景,并不构成对本技术实施例的限定,在一些实施例中,也可以包含多条流进行切换的场景。
[0196]
可选地,当手机通过进一步报文探测,发现流a的质量已经不满足需求,此时,可以将上述流a及流b都切换到备用网络通道,也就是mobile1通道上。如图11c所示,此时,上述流a及流b都承载在mobile1通道上。
[0197]
接着,结合图11d和图11e,以手机为例对通道切换的触发条件进行说明。图11d为非敏感类业务的通道切换触发过程。如图11d所示,手机中的流量感知组件133在预设第一时长内接收流量上报组件141探测到的特征流的心跳流报文,通过对上述预设第一时长内的特征流的心跳流报文的统计分析,可以确定网络通道质量的是否变差。其中,由于当前业务是非敏感类业务,因此,上述预设第一时长可以设置的较长,例如5s。当流量感知组件133确定当前的网络通道质量变差后,可以发送切换通知给策略管理组件132,以触发网络通道的切换,例如,可以通过对其他网络通道的质量进行评估,并将当前的非敏感类业务切换到质量最优的其他网络通道上。
[0198]
图11e为敏感类业务的通道切换触发过程。如图11e所示,手机中的流量感知组件133在预设第二时长内接收流量上报组件141探测到的特征流的心跳流报文,通过对上述预设第二时长内的特征流的心跳流报文的统计分析,可以预测网络通道质量的是否变差。其中,上述预设第二时长可以设置的较短,例如1s,由此可以快速的对网络通道的状况进行预测,进而可以快速选取备用网络通道,以节省将来进行网络通道的实际切换时对备用网络通道的评估时间。接着,手机中的流量感知组件133在预设第三时长内继续接收流量上报组件141探测到的特征流的心跳流报文,通过对上述预设第三时长内的特征流的心跳流报文的统计分析,可以确定当前网络应用中特征流的业务质量。其中,上述预设第三时长可以和预设第一时长等长,例如5s,也可以比预设第一时长设置的短,例如3s。当确定特征流的业务质量变差时,可以发送切换通知给流级策略管理组件132,以触发网络通道的切换,例如,可以将当前网络应用的特征流切换到上述备用网络通道上。
[0199]
步骤313,通道级路径管理组件123接收备用网络通道请求,请求各可选网络通道的启用状态。
[0200]
具体地,当通道级路径管理组件123接收到上述流级路径管理组件131发送的备用网络通道请求后,可以向网络探测组件122发送通道状态请求,其中,该通道状态请求可以
用于请求获得各可选网络通道的启用状态。可以理解的是,上述启用状态可以包括可用及不可用。上述可用状态可以用于表征该可选网络通道可以启用,上述不可用状态可以用于表征该可选网络通道禁止启用。该可选网络通道可以包括辅wifi通道、主蜂窝通道及辅蜂窝通道等。
[0201]
步骤314,网络探测组件122检测各可选网络通道的启用状态,并向通道级路径管理组件123发送各可选网络通道的启用状态。
[0202]
具体地,当网络探测组件122接收到通道级路径管理组件123发送的通道状态请求后,可以检测各可选网络通道的启用状态。在具体实现时,该网络探测组件122可以用于管理各可选网络通道的开关,当任一可选网络通道开启后,该可选网络通道处于可用状态,当任一可选网络通道关闭后,该可选网络通道处于不可用状态。因此,当网络探测组件122检测到通道级路径管理组件123请求的所有可选网络通道的启用状态后,可以将上述所有可选网络通道的启用状态发送给通道级路径管理组件123。
[0203]
步骤315,通道级路径管理组件123请求各可用网络通道的通道质量。
[0204]
具体地,当通道级路径管理组件123接收到各可选网络通道的启用状态后,可以选取可用网络通道(也就是处于可用状态的可选网络通道),并可以进一步向通道及应用质量评估组件125发送通道评估请求,其中,该通道评估请求可以用于请求评估可用网络通道的质量。
[0205]
步骤316,通道及应用质量评估组件125对各可用网络通道的质量进行评估,并将评估结果发送给通道级路径管理组件123。
[0206]
具体地,当通道及应用质量评估组件125接收到通道级路径管理组件123发送的通道评估请求后,可以根据该通道评估请求对各可用网络通道的质量进行评估。示例性的,该通道质量可以包括该通道的时延、丢包率、带宽及速率等。上述评估可以是对可用网络通道的往返时延(round-trip time,rtt)进行评估,往返时延最小的网络通道为最佳。可选地,当可用网络通道有历史选用记录时,也就是说,上述可用网络通道曾经被选用为网络通道过,此时,可以结合上述rtt及历史记录对通道质量进行评估,其中,该历史记录可以包括历史接收速率、通道质量为差的历史次数等,本技术实施例对上述通道质量的评估方式不做特殊限定。当通道及应用质量评估组件125对通道评估请求中所有可用网络通道的质量评估完成之后,可以将上述评估结果发送给通道级路径管理组件123。
[0207]
步骤317,通道级路径管理组件123基于评估结果确定备用网络通道,并将备用网络通道的路径发送给流级路径管理组件131。
[0208]
具体地,当通道级路径管理组件123接收到上述评估结果后,可以基于上述评估结果选取最佳的可用网络通道作为备用网络通道,并可以将上述备用网络通道的路径发送给通道级路径管理组件123。
[0209]
步骤318,流级路径管理组件131接收并存储通道级路径管理组件123发送的备用网络通道的路径。
[0210]
具体地,当流级路径管理组件131接收到通道级路径管理组件123发送的备用网络通道的路径后,可以预先存储该备用网络通道的路径。可以理解的是,由于在步骤312中仅是对网络状况进行预测,也就是说,当前的网络较差,可能会对业务造成卡顿,但是还没有达到切换的条件,此时,第一设备并不切换到该备用网络通道,也就是说,第一设备仍在使
用主网络通道。
[0211]
示例性的,当流级路径管理组件131在t1时刻接收到通道级路径管理组件123发送的备用网络通道的路径后,可以预先存储该备用网络通道的路径。此时,第一设备并不切换到该备用网络通道,也就是说,第一设备仍在使用主网络通道。接着,当在t2时刻检测到当前的网路应用的特征流的质量变差,已经达到切换的条件,此时,第一设备可以将上述特征流由主网络通道切换到备用网络通道。
[0212]
步骤319,流量上报组件141上报报文至流量感知组件133。
[0213]
具体地,流量上报组件141可以持续探测当前主网络通道的报文,并将探测到的报文上报给流量感知组件133。
[0214]
步骤320,流量感知组件133接收流量上报组件141上报的报文,对报文进行分析,得到报文分析结果,并将报文分析结果发送给流级策略管理组件132。
[0215]
具体地,流量感知组件133接收到流量上报组件141上报的报文后,可以从上述报文中识别出特征流。其中,上述识别特征流的方式可以参考步骤311,在此不再赘述。接着,可以对上述特征流中报文进行分析,由此可以得到报文分析结果,该报文分析结果可以用于表征该特征流是否满足业务需求,例如,是否满足时延需求或是否满足丢包率需求等。并可以将上述报文分析结果发送给流级策略管理组件132。
[0216]
可以理解的是,本步骤320不同于步骤311中的对网络通道的粗粒度质量评估,也就是说,在较短周期内对接收到的特征流的报文进行分析,由此可以获取网络质量,并进行切换的预测。而本步骤320是在较长周期内对接收到的特征流的报文进行分析,由此可以确定是否要进行实际切换,也就是说,步骤320是细粒度的质量评估,由此可以实现针对特征流的网络通道的切换,节省时延。
[0217]
现有技术中,针对于网络质量评估使用的参数(例如,时延或者丢包率),仅为该参数设置一个阈值,使用该阈值对应的评估策略评估网络质量。在本技术实施例提供的方法中,可以为参数设置至少2个数值不相同的阈值,每个阈值对应有一套评估策略,阈值越大,评估策略的时延越小。举例来说,如果为时延设置有阈值1、阈值2,阈值2大于阈值1,则阈值1对应的评估策略可以为:连续5个周期中有3个周期时延大于阈值1,则报文分析结果为质量差,否则报文分析结果为质量好;阈值2对应的评估策略可以为:1个周期的时延大于阈值2,则报文分析结果为质量差,否则报文分析结果为质量好。基于以上评估策略可知,阈值1对应的评估策略的时延为3个周期,阈值2对应的评估策略的时延为1个周期。
[0218]
举例来说:
[0219]
特征流是语音流,流量上报组件上报的报文是语音流中的心跳流报文,通过心跳流报文的rtt对网络通道的质量进行评估,为心跳流报文的rtt预设阈值1和阈值2两个阈值,阈值对应的评估策略延续前述举例。
[0220]
流量感知组件133判断当前周期的rtt是否大于阈值2;
[0221]
如果是,则确定语音流的报文分析结果为:质量差,将语音流的报文分析结果发送给流级策略管理组件132;
[0222]
如果否,流量感知组件133判断当前周期所在窗口是否有3个周期的rtt大于阈值1;当前周期所在窗口由以当前周期为结束周期的连续5个周期构成的;
[0223]
如果是,则确定语音流的报文分析结果为:质量差,将语音流的报文分析结果发送
给流级策略管理组件132;如果否,则确定语音流的报文分析结果为:质量好,将语音流的报文分析结果发送给流级策略管理组件132。
[0224]
可选地,流量感知组件133可以仅在语音流的报文分析结果为质量差时,才将语音流的报文分析结果发送给流级策略管理组件132。
[0225]
基于图1d可以得到如上表1所示的相对时间与rtt的对应关系表。假设阈值1为150,阈值2为300;那么,
[0226]
在相对时间4s所在的周期,流量感知组件133可以确定语音流的报文分析结果为:质量差,将语音流的报文分析结果发送给流级策略管理组件132,后续流级策略管理组件132可以将语音流或者包括语音流在内的多条流切换至备用网络通道。
[0227]
需要说明的是,上述说明中以为参数预设2个阈值为例,其也可以扩展至预设3个阈值或者更多个阈值,本技术实施例不作限定。
[0228]
步骤321,流级策略管理组件132基于报文分析结果确定切换,并请求获取备用网络通道的路径。
[0229]
具体地,当流级策略管理组件132接收到流量感知组件133上报的报文分析结果后,可以根据报文分析结果判断是否进行通道切换。在具体实现时,若当前的网络应用的特征流(例如,游戏中的语音流、微信中的视频流或百度网盘的下载流)不满足要求(例如,时延和/或丢包率),则可以确定需要进行通道切换。此时,流级策略管理组件132可以向流级路径管理组件131发送备用网络通道路径获取请求,用于获取备用网络通道的路径,举例来说,若备用网络通道为主蜂窝,则备用网络通道的路径例如可以是mobile1。
[0230]
示例性的,上述请求备用网络通道的路径可以通过如下代码实现:
[0231]
[0232][0233]
此外,在具体实现时,上述网络通道的路径(例如,该路径可以用网卡或sim卡的设备号表征)可以在数据结构中进行定义,代码示例如下:
[0234]
[0235]
如上述代码所示,其中,sk_bound_dev_if为切换的目标网卡或目标sim卡的设备号。可以理解的是,通过上述网卡或sim卡可以接收报文,该接收报文的代码可以参考如下示例:
[0236]
pktinfo.msg.flow_msg.dev_if=sk-》sk_bound_dev_if;
[0237]
其中,pktinfo为接收到的报文,msg.flow_msg为报文流的名称。
[0238]
可以理解的是,若通过报文分析,确定当前的网络应用的特征流满足需求,也就是说,无需进行切换,此时,第一设备可以删除上述备用网络通道的路径,由此可以释放资源,同时也可以节省第一设备的功耗。可选地,第一设备也可以在预设时长(例如,预设第四时长)后删除上述备用网络通道的路径,由此可以保证在该预设第四时长内,如果特征流的质量变差,可以及时的切换至备用网络通道,避免因删除上述备用网络通道的路径导致无法切换。
[0239]
步骤322,流级路径管理组件131向流级策略管理组件132发送备用网络通道的路径。
[0240]
步骤323,流级策略管理组件132向策略执行组件142发送通道切换指示。
[0241]
具体地,当流级策略管理组件132接收到流级路径管理组件131发送的备用网络通道的路径后,可以向策略执行组件142发送通道切换指示,其中,该通道切换指示可以用于指示策略执行组件142将上述特征流由当前的主网络通道切换至备用网络通道,由此可以更快的完成通道切换,减少通道切换带来的时延,提高用户的体验。
[0242]
步骤324,策略执行组件142执行通道切换。
[0243]
具体地,当策略执行组件142接收到流级策略管理组件132发送的通道切换指示后,可以将上述特征流由当前的主网络通道切换至备用网络通道,也就是说,上述网络应用的其他流可以继续承载在主网络通道上运行,上述特征流可以承载在备用网络通道上运行,由此可以快速的完成切换,进而可以保证业务的质量以及用户的体验。
[0244]
可选地,可以将上述网络应用整个切换至备用网络通道,也就是说,可以停用上述主网络通道,上述网络应用的所有流都承载在备用网络通道上运行。
[0245]
图3d为手机使用备用网络通道的示意图。如图3d所示,当手机接收到通道切换指示后,可以将视频流由当前的主网络通道切换至备用网络通道,并可以使用备用网络通道进行视频的观看,以避免视频的卡顿。
[0246]
下面结合图5所示的第一设备的系统框架图,通过图12~图14所示第一设备内各组件交互的时序图对本技术实施例通道切换方法进行详细说明。
[0247]
图12为本技术实施例第一设备内各组件交互的一种时序图,如图12所示,该方法可以包括:
[0248]
步骤1201:响应于用户的操作,启动网络应用。
[0249]
本步骤的实现可以参考步骤301,这里不赘述。
[0250]
步骤1202:网络应用与服务器之间进行流传输。
[0251]
用户在网络应用中选择业务,网络应用根据业务与服务器之间进行业务需要的流的传输。其中,网络应用可以使用一网络通道(例如,主网络通道)与服务器之间进行流的传输。以网络应用是视频应用,用户选择播放一视频为例,该业务需要的流可以包括视频流及音频流,视频流及音频流可以承载在上述主网络通道上,相应的,手机可以使用主网络通道
与服务器之间进行交互,从服务器获取视频流和音频流,从而播放视频。
[0252]
需要说明的是,本技术实施例关注于网络应用开始使用主网络通道与服务器进行交互后如何实现网络通道的切换,网络应用初始启动后如何根据使用主网络通道开始与服务器进行交互本技术实施例不作限定。
[0253]
步骤1203:环境探测组件121探测到网络应用切换到前台,通知应用级策略管理组件124。
[0254]
本步骤的实现可以参考步骤302中的说明,这里不赘述。
[0255]
步骤1204:应用级策略管理组件124判断网络应用是否满足开启加速的条件。
[0256]
本步骤的实现可以参考步骤303中的说明,这里不赘述。
[0257]
进一步对网络应用白名单的实现进行说明。
[0258]
本技术实施例中以网络应用的数据按照类型划分流为例,一种类型对应网络应用的一条流。如下表3所示,网络应用白名单中除了记录有需要开启加速的网络应用外,还可以记录有:
[0259]
每个网络应用中的需要被监控的目标流的类型;例如,表3中目标流的类型字段所示;
[0260]
每种目标流的类型对应的流模型,例如下表3中流模型字段所示;
[0261]
用于评估目标流的网络质量的网络质量评估参数,例如下表3中通道质量参数字段所示;
[0262]
评估目标流的网络质量变差后对网络应用的流进行通道切换的策略,以下简称为流切换策略;例如下表3中流切换策略字段所示。
[0263][0264]
表3
[0265]
可选地,上述目标流可以是在承载该目标流的网络通道的质量变差时,能够快速在某个或者某些网络质量评估参数上表现出来的流,例如,可以是网络应用的一条或者多条特征流。
[0266]
可选地,目标流的网络质量评估参数可以是能够快速反映出目标流的网络质量变差的参数。
[0267]
上述流切换策略中记录需要与目标流一起切换网络通道的流,可选地,流切换策略中记录的流一般是网络应用中对业务处理影响较大的流,例如前述说明中网络应用的特征流,如视频播放应用中的视频流和音频流,游戏应用中的游戏对战流、语音流等。
[0268]
可选地,流切换策略中记录的需要与目标流一起切换网络通道的流可以是与目标流对相同的网络评估参数敏感的流,例如目标流是对时延敏感的流(以下简称时延敏感流),则流切换策略中的流是网络应用中包括目标流在内的部分或者全部时延敏感流;目标
流是对丢包率敏感的流(以下简称丢包率敏感流),则流切换策略中的流是网络应用中包括目标流在内的部分或者全部丢包率敏感流。从而,目标流的网络质量变差,将网络应用中对相同网络评估参数敏感的一类流切换网络通道。
[0269]
可选地,上述目标流类型对应的流模型用于记录目标流中需要监控的报文的特征信息,例如特征信息可以是以下特征信息中的至少一种特征信息:报文的四元组、五元组、协议号、载荷中的字符串等。
[0270]
需要说明的是,本技术实施例中流切换策略中,当网络应用的某一条流的质量变差时,可以对在同一网络通道上包括该条流在内的网络应用的多条流进行网络通道切换,从而将上述多条流从当前所在的网络通道切换到其他质量相对更好的网络通道上,防止网络应用的业务出现卡顿。例如表3中,如果微信的视频流变差,微信的视频流和语音流在同一网络通道上,则对微信的视频流和语音流均进行网络通道切换,从而将视频流和语音流从当前网络通道切换至质量相对更好的网络通道上,降低微信的视频和语音播放出现卡顿问题的可能性。
[0271]
步骤1205:应用级策略管理组件124向流级路径管理组件131发送加速启动消息。
[0272]
具体地,若应用级策略管理组件124确定当前网络应用满足开启加速的条件,则可以启动针对于网络应用的加速业务,并且,向流级路径管理组件131发送加速启动消息,该加速启动消息用于指示流级路径管理组件131可以启动针对于该网络应用的加速业务。
[0273]
上述加速业务可以包括但不限于:
[0274]
在电子设备所处环境或者电子设备的系统环境变化时,启用一条备用网络通道,使得该备用网络通道从休眠状态转换为唤醒状态;和/或,
[0275]
监控该网络应用中若干条流的网络质量,在电子设备监控到该网络应用的某条流质量变差时,将该网络应用包括上述质量变差的流在内的多条流切换至备用网络通道,从而使得网络应用的上述多条流始终承载在质量相对较好的网络通道上,保证流的传输质量,降低网络应用出现业务卡顿的可能性,提升用户体验。需要说明的是,如果决策将多条流切换至备用网络通道时,电子设备已经启用了备用网络通道,则将多条流切换至已经启用的备用网络通道,如果决策将多条流切换至备用网络通道时,电子设备未启用备用网络通道,则,电子设备需要先启用一条备用网络通道,再切换至已启用的备用网络通道。
[0276]
可选地,加速启动消息中可以包括网络应用白名单中当前网络应用的身份标识对应的信息,例如可以包括:当前网络应用的身份标识,目标流类型,目标流类型对应的流模型、网络质量评估参数信息、以及流切换策略信息。具体可以参考前述相关说明,这里不赘述。
[0277]
可选地,流级路径管理组件131中可以存储有当前使用的网络通道的路径,该路径也即是网络应用的使用的网络通道的路径;或者,如果流级路径管理组件131中未存储当前使用的网络通道的路径,也即流级路径管理组件131中未存储网络应用使用的网络通道的路径,则,流级路径管理组件131可以向通道级路径管理组件123请求网络应用使用的网络通道的路径,通道级路径管理组件123可以将网络应用使用的网络通道的路径发送给流级路径管理组件131。
[0278]
步骤1206:流级路径管理组件131将网络应用的身份标识和流切换策略信息发送给流级策略管理组件132,向流量感知组件133发送流量探测请求,流量感知组件133向流量
上报组件发送流量上报请求。
[0279]
可选地,流量探测请求中可以包括针对于网络应用的第一配置文件,第一配置文件中可以包括:网络应用的身份标识,目标流类型,目标流类型对应的流模型、网络质量评估参数信息等。
[0280]
可选地,流量上报请求中可以包括针对于网络应用的第二配置文件,第二配置文件中可以包括:网络应用的身份标识,目标流类型,目标流类型对应的流模型。
[0281]
需要说明的是,本步骤的执行目的在于将针对于当前网络应用的各种相关信息初始化至流级策略管理组件132、流量感知组件133以及流量上报组件141,因此,在其他可能的实现方式中,流级路径管理组件131也可以将针对于网络应用的第二配置文件直接发送至流量上报组件141,这里并不限制。
[0282]
通过本步骤的处理,可以触发流量上报组件开始监控网络应用中的流,进而触发后续针对流的网络通道切换流程。
[0283]
以下,分别通过图13和图14对电子设备启用备用网络通道以及流的通道切换过程进行说明。
[0284]
图13为本技术实施例第一设备内各组件交互的另一种时序图,如图13所示,该方法可以包括:
[0285]
步骤1301:环境探测组件121进行环境探测。
[0286]
具体地,环境探测组件探测的环境可以包括第一设备所处的物理环境,也可以包括第一设备中的系统环境。例如,物理环境可以包括:电梯、高铁上、在车库等网络较差的场景;系统环境可以包括:设备温度等。
[0287]
现以电梯场景为例进行说明,当用户进入电梯后,电梯上升或下降,会导致用户的重力发生变化,例如,电梯上升会引起超重,电梯下降会引起失重。因此,可以通过第一设备中的加速度传感器进行探测,当加速度传感器探测到用户处于失重或超重时,也就是说,探测到第一设备在垂直方向的加速度,由此可以确定用户正处于电梯环境中。
[0288]
此外,由于电梯在上升或下降过程中,会根据不同的用户的需求(例如,不同的用户可以点按不同的楼层)进行停靠,因此,电梯会出现在垂直方向上持续运行或走走停停的现象。由于在上述电梯升降过程中,第一设备没有探测到水平方向的运动,因此,仍可以确定该第一设备处于电梯中,其中,上述水平方向的运动可以通过第一设备中的加速度传感器进行探测获得。例如,通过上述加速度传感器探测到有水平方向的加速度,则可以确定有水平方向的运动。
[0289]
当第一设备探测到第一设备有水平方向的加速度,也就是说,第一设备发生水平运动时,可以确定用户出了电梯,换句话说,就是该第一设备已经出了电梯。此时,可以无需提前进行备用网络通道的检测,也就无需向应用级策略管理组件124发送场景变化通知消息,由此可以节省电子设备因备用网络通道的探测带来的电量消耗。
[0290]
可选地,电子设备也可以通过检测移动网络的信号强度的强弱,确定用户所处场景是否发生变化。例如,当移动网络的信号强度变弱,则可以确定用户进入了一个较差的网络环境,此时,第一设备可以确定场景发生了变化,并可以向应用级策略管理组件124发送场景变化通知消息,用于提前进行备用网路通道的探测。当移动网络的信号强度变强,则可以确定用户进入了一个较好的网络环境,此时,可以无需提前进行备用网络通道的检测,也
就无需向应用级策略管理组件124发送场景变化通知消息,由此可以节省电子设备因备用网络通道的探测带来的电量消耗。
[0291]
步骤1302:环境探测组件121向应用级策略管理组件124发送环境变化通知消息。
[0292]
具体的,若环境探测组件121探测到第一设备的环境发生变化(例如,用户进入了电梯),可以向应用级策略管理组件124发送环境变化通知消息,其中,该环境变化通知消息用于通知应用级策略管理组件124用户所处的环境发生了变化,由此可以触发应用级策略管理组件124执行后续处理。
[0293]
步骤1303:应用级策略管理组件124将环境变化通知消息转发至流级路径管理组件131。
[0294]
步骤1304:流级路径管理组件131向通道级路径管理组件123请求备用网络通道。
[0295]
具体地,由于在电梯中通常信号都较差,而在进电梯后再进行网络通道的选择、启用并切换会造成业务较大的时延,导致用户的体验变差。因此,在探测到用户进入到电梯时,可以预先选取一条备用网络通道,由此可以加快通道切换的速度,减少通道切换给业务带来的时延。
[0296]
步骤1305:通道级路径管理组件123接收备用网络通道请求,请求各可选网络通道的启用状态。
[0297]
具体地,当通道级路径管理组件123接收到上述流级路径管理组件131发送的备用网络通道请求后,可以向网络探测组件122发送通道状态请求,其中,该通道状态请求可以用于请求获得各可选网络通道的启用状态。可以理解的是,上述启用状态可以包括可用及不可用。上述可用状态可以用于表征该可选网络通道可以启用,上述不可用状态可以用于表征该可选网络通道禁止启用。该可选网络通道可以包括辅wifi通道、主蜂窝通道及辅蜂窝通道等。
[0298]
步骤1306:网络探测组件122探测各可选网络通道的启用状态,并向通道级路径管理组件123发送各可选网络通道的启用状态。
[0299]
具体地,当网络探测组件122接收到通道级路径管理组件123发送的通道状态请求后,可以检测各可选网络通道的启用状态。在具体实现时,该网络探测组件122可以用于管理各可选网络通道的开关,当任一可选网络通道开启后,该可选网络通道处于可用状态,当任一可选网络通道关闭后,该可选网络通道处于不可用状态。因此,当网络探测组件122检测到通道级路径管理组件123请求的所有可选网络通道的启用状态后,可以将上述所有可选网络通道的启用状态发送给通道级路径管理组件123。
[0300]
步骤1307:通道级路径管理组件123请求各可用网络通道的通道质量。
[0301]
具体地,当通道级路径管理组件123接收到各可选网络通道的启用状态后,可以选取可用网络通道(也就是处于可用状态的可选网络通道),并可以进一步向通道及应用质量评估组件125发送通道评估请求,其中,该通道评估请求可以用于请求评估可用网络通道的质量。
[0302]
步骤1308:通道及应用质量评估组件125对各可用网络通道的质量进行评估,并将评估结果发送给通道级路径管理组件123。
[0303]
具体地,当通道及应用质量评估组件125接收到通道级路径管理组件123发送的通道评估请求后,可以根据该通道评估请求对各可用网络通道的质量进行评估。
[0304]
示例性的,可以根据网络通道的以下至少一个参数对网络通道的质量进行评估:通道的时延、丢包率、带宽及速率等。举例来说,上述质量评估可以是对可用网络通道的往返时延(round-trip time,rtt)进行评估,往返时延最小的网络通道为最佳。
[0305]
可选地,当可用网络通道有历史选用记录时,也就是说,上述可用网络通道曾经被选用为网络通道过,此时,可以结合上述rtt及历史记录对通道质量进行评估,其中,该历史记录可以包括历史接收速率、通道质量为差的历史次数等,本技术实施例对上述通道质量的评估方式不做特殊限定。
[0306]
当通道及应用质量评估组件125对通道评估请求中所有可用网络通道的质量评估完成之后,可以将上述评估结果发送给通道级路径管理组件123。
[0307]
步骤1309:通道级路径管理组件123基于评估结果确定备用网络通道。
[0308]
具体地,当通道级路径管理组件123接收到上述评估结果后,可以基于上述评估结果选取最佳的可用网络通道作为备用网络通道。
[0309]
步骤1310:通道级路径管理组件123向网络连接管理组件126请求启用备用网络通道。
[0310]
步骤1311:网络连接管理组件126启动备用网络通道,向通道级路径管理组件123反馈备用网络通道已启用的通知消息。
[0311]
网络连接管理组件126响应于通道级路径管理组件123的请求,启用备用网络通道,这里的启用备用网络通道是指使得备用网络通道从休眠状态转换至唤醒状态,从而在后续需要进行网络通道切换时,能够快速的从当前网络通道切换至备用网络通道。
[0312]
可以理解的是,由于在步骤1301中仅是检测到场景变化,也就是说,当前场景变化可能导致网络质量变差,进而对业务造成卡顿,但是还没有达到切换的条件,此时,电子设备并不切换到该备用网络通道,也就是说,电子设备仍在使用原来的网络通道。
[0313]
步骤1312:通道级路径管理组件123将备用网络通道的路径发送给流级路径管理组件131。
[0314]
从而,流级路径管理组件131可以接收并存储通道级路径管理组件123发送的备用网络通道的路径。
[0315]
通过上述处理,电子设备可以在检测到环境变化后,启用备用网络通道,以便后续确定进行网络通道切换时,能够快速完成网络通道切换,降低网络应用发生业务卡顿的可能性。
[0316]
需要说明的是,图13中以电子设备检测到环境变化后启用备用网络通道为例,在其他可能的实现中,也可以由流量感知组件在根据接收到的报文预测网络变差后启用备用网络通道,具体可以参考图7中的对应说明,这里不赘述。
[0317]
图14为本技术实施例第一设备内各组件交互的另一种时序图,如图14所示,该方法可以包括:
[0318]
步骤1401:流量上报组件141进行流量探测,并将探测到的报文上报给流量感知组件133。
[0319]
具体地,基于前述的步骤1206,流量上报组件141接收到流量上报请求后,可以根据流量上报请求对网络应用的目标流的报文进行探测,并将探测结果上报给流量感知组件133。上述探测结果可以包括:目标流的报文,或者,目标流的报文以及目标流的报文统计信
息,等。
[0320]
在具体实现时,上述流量上报组件141可以通过调用组件(例如,安卓系统的netfilter组件)获取当前网络通道(例如主网络通道)上的网络应用的目标流的报文。可以理解的是,上述netfilter组件仅为示例性说明,并不构成对本技术实施例的限定,在一些实施例中,也可以通过其他组件完成上述报文的探测。
[0321]
示例性的,上述网络通道的参数可以通过如下代码实现:
[0322]
typedef struct{
[0323]
bool available;
[0324]
bool slowdevforbbiden;
[0325]
uint64_t qoebadtimestamp;
[0326]
uint64_t chqoebadstarttime;
[0327]
uint32_t rcvrate;
[0328]
}
[0329]
可以理解的是,上述探测的报文可以是当前网络应用中一个或多个特征流的报文,其中,该特征流可以是网络应用中敏感性最高的流,也就是对当前网络应用影响较大的流。此外,通过上述网络通道的参数可以对网络通道的质量进行评估。
[0330]
可选地,流量上报组件141进行流量探测时,可以在内核netfilter框架注册钩子函数,获取目标流的报文。整体实现框图例如图15所示,netfilter钩包到流量上报组件的nf_hook钩子函数,当前网络通道上承载的报文即进入到流量上报组件141,流量上报组件经过报文解析、流表创建、报文内容分析等流程,将目标流的报文存放到skb队列中,对于skb队列中的报文,按照报文所属目标流的上报策略,需要定时上报的数据(报文,或者,报文和统计信息)由定时器触发上报至流量感知组件133,需要立即上报的报文由netlink的线程即时上报至流量感知组件133。
[0331]
需要说明的是,目标流可以是一条或者多条;流量上报组件探测目标流的报文时,可以将目标流的全部或者部分报文上报至流量感知组件,本技术实施例不作限定。
[0332]
以对目标流中的心跳流报文进行探测和上报为例,结合图15对报文上报组件的具体实现流程进行说明。
[0333]
这里所称之心跳流报文可以是按照一定的时间间隔在目标流中出现的报文,心跳流报文的载荷的固定位置存在预设特征信息。可选地,心跳流报文的五元组与同一流中其他报文的五元组可以相同或者不同。本技术实施例的心跳流报文的时间间隔本技术实施例不作限定,例如为1s。参见图1a所示,为间隔为1s的心跳流报文示意图。相应的,后续流量感知组件133可以根据心跳流报文计算往返时延,将往返时延作为目标流的网络质量评估参数,来判断目标流的网络质量。心跳流报文的rtt计算方法例如参见图1b所示,具体说明可以参见前述相关说明,这里不赘述。
[0334]
举例来说,本技术实施例提供的心跳流报文可以具有以下特征:
[0335]
(ip.src==100.100.3.90&&udp.srcport==60539&&ip.dst==58.217.244.144&&udp.dstport==10126)&&(data[6]==64)。其中,data[6]表示报文的载荷的第6个字节。
[0336]
参见图15,报文上报组件的具体实现流程包括:
[0337]
步骤s1,初始化;
[0338]
在网络应用启动加载时,流量上报组件141会收到app launch消息,去注册nf_hook钩子函数。代码示例如图16和图17所示。
[0339]
步骤s2,报文处理;
[0340]
本步骤具体包括报文解析、查流表和报文分析三个步骤。流表中记录有各网络应用中的流的标识信息、以及每条流的统计信息,每条流的统计信息可以包括:接收到的该条流的报文数量、接收到的该条流的报文的总字节数、出错的包数等。流的标识信息可以根据流中报文的五元组或者四元组计算得到,上述计算具体可以使用hash算法,从而流的标识信息可以是报文的五元组或者四元组计算得到的hash值。
[0341]
在报文解析时,流量上报组件141获取到报文,可以解析报文中是否存在网络应用的uid;如果存在,说明该报文是网络应用的报文,解析报文的四元组(或者五元组),执行后续的查流表步骤;如果不存在,说明该报文不是网络应用的报文,流程结束;
[0342]
上述四元组可以包括:源ip、目的ip、源端口、目的端口;五元组可以包括:源ip、目的ip、源端口、目的端口以及协议号。
[0343]
在查流表时,可以根据报文的四元组(或者五元组)计算流的标识信息,使用计算得到的标识信息查找流表中是否已经记录有该标识信息,如果是,更新流表中该标识信息对应的统计信息;如果否,在流表中根据该流的标识信息创建流结点,更新流结点中该流的统计信息。
[0344]
在报文分析时,流量上报组件141可以通过预设流模型,过滤接收到的报文,从而得到目标流的全部或者部分报文,例如如果使用前述心跳流报文的流模型,则可以得到目标流的心跳流报文。
[0345]
上述流模型可以通过配置文件配置给流量上报组件,上述配置文件可以在步骤1206中流量感知组件发送的流量上报请求中携带。流模型中记录有报文需要匹配的特征。举例来说,如图18所示,上述心跳流报文可以在报文载荷的第6个字节具有固定的特征信息,例如上行心跳流报文中的特征信息为0x64,下行心跳流报文中的特征信息为0x65,则可以在流模型中预设匹配特征filterstr,在上行流中匹配0x64,在下行流中匹配0x65,匹配的位置为偏移udp载荷6个字节。
[0346]
如图19所示,代码逻辑可以通过memcmp比较报文内容跟配置的匹配特征filterstr是否一致。具体代码为:if(memcmp(rpt_cfg-》filter_str[i],payload filter_str_offset,rpt_cfg-》filter_str_len[i])==0),memcmp比较得到与匹配特征filterstr一致的报文,从而过滤出目标流的报文,也即过滤出目标流。
[0347]
步骤s3,根据流上报策略将匹配到的目标流以及目标流的统计信息进行上报。
[0348]
具体的,过滤出的目标流的报文可以存储于skb队列,按照目标流的上报策略进行周期性上报或者即时上报。
[0349]
如果周期性上报,可以在每个周期结束时将目标流在本周期内接收到的部分或者全部报文(例如,本周期接收到的该目标流的最后一个报文)上报至流量感知组件,可选地,还可以将本周期内对目标流的报文统计信息(例如,报文数量,字节数等)上报至流量感知组件。
[0350]
如果即时上报,可以将匹配得到的报文直接上报至流量感知组件。
[0351]
通过上述处理,可以在流量上报组件中精确匹配过滤出目标流的报文,在流量感知组件中使用上报的报文做网络质量评估。
[0352]
步骤1402:流量感知组件133对流量上报组件141上报的报文进行分析,得到报文分析结果。
[0353]
本步骤中,流量感知组件133可以进行流级别的网络质量评估。每条目标流进行网络质量评估使用的网络质量评估参数可以参考表3中的举例。每条目标流的网络质量评估参数可以在步骤1206中下发至流量感知组件133。
[0354]
本步骤中,得到的报文分析结果可以是流级别的分析结果,例如目标流的质量是好或者坏。
[0355]
本步骤中可以使用前述实施例中提供的流的网络质量评估方法进行目标流的网络质量评估,得到目标流的网络质量评估结果,上述报文分析结果可以包括:目标流的上述网络质量评估结果,可选地,目标流的上述网络质量评估结果可以用于描述目标流的质量好或者不好。
[0356]
步骤1403:流量感知组件133将报文分析结果发送给流级路径管理组件131。
[0357]
具体的,上述报文分析结果可以包括:目标流的标识信息、目标流的网络质量评估结果。
[0358]
如图20所示,以网络应用是游戏应用为例,示出了将目标流和目标流的网络质量评估结果发送给流级路径管理组件131做多流的路径调度切换的可能代码实现。
[0359]
步骤1404:流级路径管理组件131根据报文分析结果确定进行通道切换,判断是否存在备用网络通道,如果存在,执行步骤1414,如果不存在,执行步骤1405。
[0360]
步骤1405~步骤1413的实现可以参考步骤1304~步骤1312,这里不赘述。
[0361]
步骤1414:流级路径管理组件131将质量差的目标流的标识信息以及备用网络通道的路径发送给流级策略管理组件132。
[0362]
具体的,流级路径管理组件131根据各个目标流的报文分析结果判断某个目标流的质量差时,将质量差的目标流的标识信息以及备用网络通道的路径发送至流级策略管理组件132。
[0363]
步骤1415:流级策略管理组件132向策略执行组件142发送通道切换指示。
[0364]
具体地,当流级策略管理组件132接收到流级路径管理组件131发送的质量差的目标流的标识信息以及备用网络通道的路径后,可以确定上述质量差的目标流对应的流切换策略,根据流切换策略从与上述质量差的目标流承载在同一网络通道上的流中确定网络应用的待切换的流,向策略执行组件142发送通道切换指示,其中,该通道切换指示可以用于指示策略执行组件142将上述待切换的流由当前的网络通道(例如主网络通道)切换至备用网络通道(例如数据网络通道),由此可以更快的完成通道切换,减少通道切换带来的时延,提高用户的体验。
[0365]
举例来说,参见图11a所示,网络应用的流a、流b、流c均承载在wifi1通道上,流a是目标流,流a对应的流切换策略为:流a和流b;则,如果流a的网络质量差,那么可以根据上述流a对应的流切换策略,确定网络应用的流a和流b是待切换的流,从而参见图11b所示,流级策略管理组件132可以通过通道切换指示指示策略执行组件142将流a和流b切换至备用网络通道,也即图11b中的mobile1通道。延续该举例,假设流a对应的流切换策略为:流a、流b
和流c;则,如果流a的网络质量差,那么可以根据上述流a对应的流切换策略,确定网络应用的流a、流b和流c是待切换的流,从而参见图11c所示,流级策略管理组件132可以通过通道切换指示指示策略执行组件142将流a、流b和流c切换至备用网络通道,也即图11c中的mobile1通道。
[0366]
如图21所示,以网络应用是游戏应用为例,示出了流级策略管理组件132通过遍历业务上的所有流类型、获取网络应用中待切换的流的可能代码实现。
[0367]
步骤1416,策略执行组件142执行通道切换。
[0368]
具体地,当策略执行组件142接收到流级策略管理组件132发送的通道切换指示后,可以将网络应用的多个待切换的流由当前的网络通道切换至备用网络通道,也就是说,上述网络应用的其他流可以继续承载在当前的网络通道上运行,上述多个待切换的流可以承载在备用网络通道上运行,由此可以快速的完成切换,进而可以保证业务的质量以及用户的体验。
[0369]
上述图12~图14所示的通道切换方法中,扩展了流级别的通道切换调度,将单条流的调度扩展到多条流的调度;在某些实施例中,能够快速感知网络应用的一条流的网络质量评估结果,将该评估结果应用到网络应用的一类流(例如时延敏感流)上,从而降低该类流导致业务运行卡顿的可能性,提升用户体验。
[0370]
举实例来说:
[0371]
和平精英的语音流中存在1s周期的心跳流报文,该语音流可以作为该游戏应用的目标流,流量上报组件可以探测出该语音流的心跳流报文,流量感知组件可以根据该语音流的心跳流报文计算出该语音流的网络往返时延,以评估该语音流的网络质量,当网络质量变差后,可以将该评估结果应用到整个游戏的所有时延敏感流(例如,对战流和语音流),该游戏的所有时延敏感流一起切换网络通道。
[0372]
使用本技术实施例的通道切换方法,无需精确获取网络应用中每一条流的报文,进行每条流的网络质量评估,能够减少电子设备需要监测和评估的流,降低电子设备的数据处理量;而且,可以在网络通道质量变差时及时对多条流(例如一类流)进行通道切换,降低了多条流的网络质量变差引起业务运行卡顿的可能性,从而降低了业务运行卡顿的发生率,提高了用户体验。
[0373]
并且,本技术实施例的通道切换方法中,流量感知组件在对某一条流(例如,语音流)的报文(例如心跳流报文)进行分析时,可以为报文的预设参数(例如,rtt)设置一个或者多个预设条件,每个预设条件包括一种网络质量评估策略,不同预设条件的网络质量评估时延不同,从而网络通道的质量相对较好的情况下网络质量评估时延相对较长,网络通道的质量相对较差的情况下网络质量评估时延相对较短,从而可以在不同的网络通道的实际网络质量下对应有不同的网络质量评估时延,从而满足网络通道的不同网络质量下电子设备对于网络通道的切换速度需求,提高网络通道的切换速度,进而降低业务运行出现卡顿的可能性,提升用户体验。
[0374]
本技术实施例还提供一种电子设备,所述设备包括存储介质和中央处理器,所述存储介质可以是非易失性存储介质,所述存储介质中存储有计算机可执行程序,所述中央处理器与所述非易失性存储介质连接,并执行所述计算机可执行程序以实现本技术图7~图15任一实施例提供的方法。
[0375]
本技术实施例还提供一种电子设备,包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述设备执行时,使得所述设备执行图7~图15任一实施例提供的方法。
[0376]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当其在计算机上运行时,使得计算机执行本技术图7~图15任一实施例提供的方法。
[0377]
本技术实施例还提供一种计算机程序产品,该计算机程序产品包括计算机程序,当其在计算机上运行时,使得计算机执行本技术图7~图15任一实施例提供的方法。
[0378]
可以理解的是,上述电子设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0379]
本技术实施例可以根据上述方法示例对上述电子设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0380]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0381]
在本技术实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0382]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0383]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献