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