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

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

2022-03-14 01:25:58 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及一种通道切换方法、电子设备及存储介质。


背景技术:

2.随着电子技术及互联网技术的快速发展,手机等移动设备在人们日常生活中的应用越来越广,例如,可以通过手机进行移动支付及游戏等。为了保证常用业务(例如,游戏,通话、社交软件等业务)的正常运行,通常用户的手机都会连接无线网络。然而,在网络环境发生变化时,应用的流在不同网络通道之间切换,如果网络通道的切换速度较慢,切换过程中会导致业务运行的卡顿,降低用户的体验。


技术实现要素:

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

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

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

相关文献