CN116709367A - 一种网络加速方法和装置 - Google Patents
一种网络加速方法和装置 Download PDFInfo
- Publication number
- CN116709367A CN116709367A CN202211267458.4A CN202211267458A CN116709367A CN 116709367 A CN116709367 A CN 116709367A CN 202211267458 A CN202211267458 A CN 202211267458A CN 116709367 A CN116709367 A CN 116709367A
- Authority
- CN
- China
- Prior art keywords
- fence
- application
- network
- katon
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 152
- 230000001133 acceleration Effects 0.000 title claims abstract description 151
- 230000001413 cellular effect Effects 0.000 claims abstract description 93
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000004891 communication Methods 0.000 claims description 60
- 230000033001 locomotion Effects 0.000 claims description 55
- 230000005540 biological transmission Effects 0.000 claims description 47
- 238000005259 measurement Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 39
- 230000008447 perception Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000000903 blocking effect Effects 0.000 claims description 13
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000001303 quality assessment method Methods 0.000 claims description 11
- 238000013441 quality evaluation Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 145
- 238000007726 management method Methods 0.000 description 109
- 230000006870 function Effects 0.000 description 43
- 238000011156 evaluation Methods 0.000 description 18
- 238000013461 design Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 230000004044 response Effects 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 13
- 238000001914 filtration Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 206010044565 Tremor Diseases 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/083—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for increasing network speed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/08—Testing, supervising or monitoring using real traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0083—Determination of parameters used for hand-off, e.g. generation or modification of neighbour cell lists
- H04W36/0085—Hand-off measurements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/14—Reselecting a network or an air interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/16—Performing reselection for specific purposes
- H04W36/165—Performing reselection for specific purposes for reducing network power consumption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/24—Reselection being triggered by specific parameters
- H04W36/30—Reselection being triggered by specific parameters by measured or perceived connection quality data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例提供一种网络加速方法和装置,涉及终端领域,能够解决电子设备在弱网环境中上网卡顿的问题。其方法为:电子设备运行第一应用;当电子设备进入第一小区时,电子设备的第一应用进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种;其中,第一小区中包括卡顿围栏,卡顿围栏包括至少一个卡顿点,当电子设备处于卡顿点时,第一电子设备当前连接的第一蜂窝网络的上网参数满足预设条件。
Description
技术领域
本申请涉及终端领域,尤其涉及一种网络加速方法和装置。
背景技术
随着电子设备(例如,手机、平板电脑等)和互联网的快速发展,人们在日常生活中越来越依赖电子设备和互联网。人们经常会利用空闲时间上网,比如在乘车或步行过程中观看电影、电视剧等视频内容,或者使用社交短视频类应用观看短视频。
然而,用户在上网过程中经过信号覆盖较差的区域时,网络信号(例如,蜂窝网络信号)可能会突然变差甚至掉网,从而造成用户上网卡顿,导致用户体验较差。
发明内容
本申请实施例提供一种网络加速方法和装置,能够解决用户经过网络信号覆盖较差的区域时上网卡顿的问题。
第一方面,本申请实施例提供一种网络加速方法,应用于电子设备,包括:电子设备运行第一应用;当电子设备进入第一小区时,电子设备的第一应用进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种;其中,第一小区中包括卡顿围栏,卡顿围栏包括至少一个卡顿点,当电子设备处于卡顿点时,第一电子设备当前连接的第一蜂窝网络的上网参数满足预设条件。
基于本申请实施例提供的网络加速方法,当电子设备进入包括卡顿围栏的第一小区时,电子设备可以进行以下至少一种处理:提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率。可以理解的是,电子设备进入包括卡顿围栏的第一小区后,电子设备极有可能在到达卡顿围栏时发生网络卡顿,为了避免发生网络卡顿,电子设备可以提前缓存第一应用的运行数据、降低第一应用的帧率、码率、分辨率等,即可以在用户还未感受到上网卡顿时提前进行网络加速处理,以降低应用出现上网卡顿的概率,更好地提升用户的上网体验。
在一种可能的实现方式中,该方法还包括:当电子设备进入第一小区时,获取第一电子设备的位置信息和运动速度;第一电子设备根据位置信息、运动速度以及卡顿围栏的信息预测电子设备进入卡顿围栏的时刻;在电子设备进入卡顿围栏的时刻,电子设备进行系统加速处理;其中,系统加速处理包括:将电子设备当前连接的第一蜂窝网络切换为第二蜂窝网络,第二蜂窝网络在卡顿围栏的通信质量高于第一蜂窝网络。即检测到用户进入卡顿围栏时,电子设备可以将第一应用的数据流从第一蜂窝网络切换到网络信号质量更好的第二蜂窝网络,从而保证了用户在卡顿围栏依然能有流畅的上网体验,大大降低了应用的上网卡顿概率,能更好地提升用户的上网体验。
在一种可能的实现方式中,该方法还包括:在电子设备进入卡顿围栏的时刻,电子设备的第一应用进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。即检测到用户进入卡顿围栏时,电子设备可以降低第一应用的帧率、码率、分辨率等,以降低应用出现上网卡顿的概率,更好地提升用户的上网体验。在一种可能的实现方式中,若第一应用为缓存类应用,电子设备进入第一小区时,该应用可以提前缓存应用数据,该电子设备进入卡顿围栏时,该应用可以降低第一应用的帧率、码率、分辨率等,大大降低了应用的上网卡顿概率,能更好地提升用户的上网体验。其中,缓存类应用可以将要用到的资源提前从数据库或其他地方下载到内存,提高系统反应速度,增强用户体验满意度。若第一应用即时通信类应用,电子设备进入第一小区时,该应用可以降低第一应用的帧率、码率、分辨率中的至少一种,该电子设备进入卡顿围栏时,该应用可以进一步降低第一应用的帧率、码率、分辨率中的至少一种,以降低应用的上网卡顿概率,能更好地提升用户的上网体验。或者,若第一应用即时通信类应用,电子设备进入卡顿围栏时,该应用可以降低第一应用的帧率、码率、分辨率中的至少一种,以降低应用的上网卡顿概率,能更好地提升用户的上网体验。
在一种可能的实现方式中,在将电子设备当前连接的第一蜂窝网络切换为第二蜂窝网络后,该方法还包括:第一电子设备显示切换蜂窝网络的提示信息。这样,用户可以感知到电子设备切换了网络。
在一种可能的实现方式中,在获取第一电子设备的位置信息和运动速度后,该方法还包括:预测第一电子设备是否将在移动过程中进入卡顿围栏。预测第一电子设备将在移动过程中进入卡顿围栏的情况下,电子设备可以在用户进入卡顿围栏时切换网络通道,以及降低第一应用的帧率、码率、分辨率等,以降低应用出现上网卡顿的概率,可以更好地提升用户的上网体验。
在一种可能的实现方式中,通过以下方式预测第一电子设备是否将在移动过程中进入卡顿围栏:获取第一电子设备在移动过程中的历史位置数据,并根据历史位置数据确定第一电子设备的移动轨迹所在的直线;在直线与卡顿围栏的边界有交点的情况下,预测第一电子设备在移动过程中将进入卡顿围栏。预测第一电子设备将在移动过程中进入卡顿围栏的情况下,电子设备可以在用户进入卡顿围栏时切换网络通道,以及降低第一应用的帧率、码率、分辨率等,以降低应用出现上网卡顿的概率,可以更好地提升用户的上网体验。
在一种可能的实现方式中,通过以下方式预测第一电子设备是否将在移动过程中进入卡顿围栏:在第一电子设备沿实际道路移动,并且实际道路穿过卡顿围栏的情况下,预测出第一电子设备在移动过程中将进入卡顿围栏。预测第一电子设备将在移动过程中进入卡顿围栏的情况下,电子设备可以在用户进入卡顿围栏时切换网络通道,以及降低第一应用的帧率、码率、分辨率等,以降低应用出现上网卡顿的概率,可以更好地提升用户的上网体验。
在一种可能的实现方式中,通过以下方式预测第一电子设备是否将在移动过程中进入卡顿围栏:获取第一电子设备在第一小区的历史移动轨迹,确定历史移动轨迹穿过卡顿围栏的情况下,预测第一电子设备在移动过程中将进入卡顿围栏。预测第一电子设备将在移动过程中进入卡顿围栏的情况下,电子设备可以在用户进入卡顿围栏时切换网络通道,以及降低第一应用的帧率、码率、分辨率等,以降低应用出现上网卡顿的概率,可以更好地提升用户的上网体验。
在一种可能的实现方式中,第一电子设备将第一蜂窝网络切换为第二蜂窝网络的位置满足以下条件中的至少一项:所述位置与卡顿围栏边界上的点之间的最小直线距离小于第一预设距离;所述位置与卡顿围栏边界上的点之间的最小实际路程小于预设路程;第一电子设备从所述位置移动至卡顿围栏的时间小于预设时间;所述位置与卡顿围栏中离所述位置最近的卡顿点的距离小于第二预设距离。即预测第一电子设备即将进入卡顿围栏时,将第一蜂窝网络切换为第二蜂窝网络,由于第二蜂窝网络的网络质量优于第一蜂窝网络,因此可以降低应用出现上网卡顿的概率,可以更好地提升用户的上网体验。
在一种可能的实现方式中,还包括:电子设备在第一位置处检测到电子设备的上网参数满足预设条件的情况下,向云服务器发送第一卡顿点信息;其中,第一卡顿点信息包括电子设备到达第一位置的时间戳、第一位置对应的地区区域码LAC、信号塔标识CellID、第一蜂窝网络的运营商标识、电子设备的设备型号以及第一位置的位置信息中的至少一种。即电子设备可以将卡顿点信息发送至云服务器,以便云服务器根据卡顿点信息生成卡顿围栏数据。
在一种可能的实现方式中,该方法还包括:第一电子设备从云服务器获取卡顿围栏数据库,卡顿围栏数据库包括至少一个卡顿围栏对应的小区的小区标识和运营商标识;第一电子设备根据第一蜂窝网络的运营商标识和第一小区的小区标识,从卡顿围栏数据库中确定第一小区是否存在卡顿围栏。即电子设备可以从云服务器获取卡顿围栏数据库,根据卡顿围栏数据库中确定第一小区是否存在卡顿围栏,若第一小区存在卡顿围栏,电子设备进入第一小区后可以提前缓存第一应用的运行数据、降低第一应用的帧率、码率、分辨率等,以降低应用出现上网卡顿的概率,更好地提升用户的上网体验。
在一种可能的实现方式中,预设条件包括以下条件中的至少一项:第一蜂窝网络的接收信号强度指示小于信号强度预设值;第一蜂窝网络的参考信号接收功率小于功率预设值;第一蜂窝网络的参考信号接收质量小于质量预设值;第一蜂窝网络的信号与干扰加噪比小于加噪比预设值;第一蜂窝网络的传输时延大于时延预设时延值;第一蜂窝网络的传输速率小于速率预设值。可以理解的是,电子设备当前连接的第一蜂窝网络的上网参数满足预设条件时,第一蜂窝网络质量较差,电子设备会发生网络卡顿,电子设备发生网络卡顿的位置即卡顿点,由卡顿点组成的区域即卡顿围栏。当电子设备进入包括卡顿围栏的第一小区时,电子设备极有可能在到达卡顿围栏时发生网络卡顿,为了避免发生网络卡顿,电子设备可以提前缓存第一应用的运行数据、降低第一应用的帧率、码率、分辨率等,即可以在用户还未感受到上网卡顿时提前进行网络加速处理,以降低应用出现上网卡顿的概率,更好地提升用户的上网体验。
在一种可能的实现方式中,该方法还包括:第一电子设备在离开第一小区的卡顿围栏后,切换至使用第一蜂窝网络进行数据业务传输。即第一电子设备离开卡顿围栏后,可以恢复之前的网络,以符合用户使用习惯。
在一种可能的实现方式中,该方法还包括:第一电子设备在切换至使用第一蜂窝网络进行数据业务传输后,提示第一电子设备的用户已穿过卡顿围栏,第一电子设备已恢复至采用第一蜂窝网络进行数据业务传输。
在一种可能的实现方式中,电子设备包括感知模块,该方法还包括:感知模块感知到第一应用启动,查询第一应用是否支持网络加速;其中,感知模块中包括应用配置库,应用配置库中存储了多个应用程序是否支持网络加速的信息,多个应用程序包括第一应用。
在一种可能的实现方式中,应用配置库中的多个应用程序是基于用户流量消耗情况和用户对应用的使用偏好确定出的需要网络加速的应用程序;或者应用配置库中的多个应用程序是基于用户的手动设置确定出的需要网络加速的应用。
在一种可能的实现方式中,电子设备还包括决策模块,该方法还包括:若确定第一应用支持网络加速,感知模块向决策模块发送网络质量评估请求,网络质量评估请求中包括第一应用的应用标识、应用的配置信息以及网络质量评估的标准,应用的配置信息包括第一应用传输数据流时的数据包的头部特征。
在一种可能的实现方式中,电子设备的内核层还包括流量上报模块,该方法还包括:决策模块向流量上报模块注册报文监测钩子,报文监测钩子用于周期性监测第一应用使用的网络通道传输的数据流的通信参数和统计信息;其中,通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
在一种可能的实现方式中,电子设备还包括流量管理模块,该方法还包括:流量上报模块向流量管理模块周期性上报第一应用的数据流的通信参数和统计信息;流量管理模块根据通信参数和统计信息周期性进行网络质量评估得出当前体验质量QoE测量结果;流量管理模块周期性向决策模块上报当前QoE测量结果。
在一种可能的实现方式中,电子设备还包括围栏管理模块,若QoE测量结果为卡顿,该方法还包括:决策模块向围栏管理模块上报卡顿信息;围栏管理模块接收到卡顿信息后,向云服务器发送第一卡顿点信息。
在一种可能的实现方式中,电子设备还包括网络加速服务模块,该方法还包括:第一应用向网络加速服务模块发送注册请求,注册请求用于请求卡顿围栏预测服务,卡顿围栏预测服务用于指示第一应用用户是否进入存在卡顿围栏的蜂窝小区,以及用户是否进入卡顿围栏;网络加速服务模块向感知模块发送注册请求;感知模块向围栏管理模块发送注册请求。
在一种可能的实现方式中,该方法还包括:围栏管理模块接收注册请求后,若确定第一应用支持网络加速,第一应用在前台运行,且第一应用具备卡顿围栏预测权限,记录第一应用的应用信息,向感知模块发送注册结果,注册结果为成功;感知模块向网络加速服务模块发送注册结果;网络加速服务模块向第一应用发送注册结果。
在一种可能的实现方式中,围栏管理模块检测用户进入第一小区;围栏管理模块向感知模块通知第一卡顿围栏事件;感知模块向网络加速服务模块通知第一卡顿围栏事件;网络加速服务模块向第一应用通知第一卡顿围栏事件;电子设备的第一应用进行网络加速处理包括:第一应用接收到第一卡顿围栏事件,进行网络加速处理。
在一种可能的实现方式中,电子设备还包括策略执行模块和路径管理模块,围栏管理模块确定用户进入卡顿围栏,向感知模块通知第二卡顿围栏事件;感知模块通知决策模块第二卡顿围栏事件;决策模块接收到第二卡顿围栏事件后,向路径管理模块发送更优路径请求,更优路径请求用于请求一条相比当前网络通道质量更优的网络通道;路径管理模块激活并探测各个网络通道的网络质量,确定存在相比当前网络通道质量更优的网络通道,向决策模块通知更优的网络通道;决策模块指示策略执行模块将第一应用的数据流切换到更优的网络通道上,更优的网络通道是第二蜂窝网络对应的网络通道;策略执行模块将第一应用的数据流切换到第二蜂窝网络对应的网络通道。
在一种可能的实现方式中,该方法还包括:围栏管理模块检测到用户出卡顿围栏,向感知模块通知用户出卡顿围栏事件;感知模块通知决策模块用户出卡顿围栏事件;决策模块接收到用户出卡顿围栏事件后,将第一应用的数据流从第二蜂窝网络切换回第一蜂窝网络。
在一种可能的实现方式中,第一应用切换到后台或关闭时,该方法还包括:第一应用向网络加速服务模块发送去注册请求,去注册请求用于请求停止卡顿围栏预测服务;网络加速服务模块向感知模块发送去注册请求;感知模块向围栏管理模块发送去注册请求;围栏管理模块停止第一应用的卡顿围栏预测服务,不再向第一应用通知用户是否进入存在卡顿围栏的小区,以及是否进入卡顿围栏。
在一种可能的实现方式中,该方法还包括:感知模块向决策模块通知停止第一应用的QoE测量;决策模块向策略执行模块通知停止第一应用的QoE测量;策略执行模块停止第一应用的QoE测量。
第二方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在电子设备(如手机)上运行时,使得该电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
第三方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
第四方面,本申请实施例提供了一种网络加速装置,包括处理器,处理器和存储器耦合,存储器存储有程序指令,当存储器存储的程序指令被处理器执行时使得所述装置实现上述第一方面及其任一种可能的设计方式所述的方法。所述装置可以为电子设备;或可以为电子设备中的一个组成部分,如芯片。
第五方面,本申请实施例提供了一种网络加速装置,所述装置可以按照功能划分为不同的逻辑单元或模块,各单元或模块执行不同的功能,以使得所述装置执行上述第一方面及其任一种可能的设计方式所述的方法。
第六方面,本申请提供一种芯片系统,该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。
上述芯片系统可以应用于包括通信模块和存储器的电子设备。该接口电路用于从电子设备的存储器接收信号,并向处理器发送接收到的信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备可以执行如第一方面及其任一种可能的设计方式所述的方法。
可以理解地,上述提供的第二方面所述的计算机可读存储介质,第三方面所述的计算机程序产品及第四方面、第五方面所述的装置以及第六方面所述的芯片系统,所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1A为本申请实施例提供的一种网络通道的示意图;
图1B为本申请实施例提供的一种电子设备的硬件结构示意图;
图2为本申请实施例提供的一种电子设备的软件架构示意图;
图3为本申请实施例提供的一种显示示意图;
图4为本申请实施例提供的又一种显示示意图;
图5为本申请实施例提供的一种模块交互示意图;
图6为本申请实施例提供的又一种显示示意图;
图7为本申请实施例提供的一种报文监测的示意图;
图8为本申请实施例提供的一种短视频类应用的数据流的速率特点示意图;
图9为本申请实施例提供的又一种短视频类应用的数据流的速率特点示意图;
图10为本申请实施例提供的一种方法流程示意图;
图11为本申请实施例提供的又一种方法流程示意图;
图12为本申请实施例提供的一种卡顿围栏的示意图;
图13为本申请实施例提供的又一种显示示意图;
图14为本申请实施例提供的一种卡顿点信息上报的示意图;
图15为本申请实施例提供的又一种卡顿围栏的示意图;
图16为本申请实施例提供的又一种卡顿围栏的示意图;
图17为本申请实施例提供的又一种卡顿围栏的示意图;
图18为本申请实施例提供的又一种卡顿围栏的示意图;
图19为本申请实施例提供的一种预测用户是否进入卡顿围栏的示意图;
图20为本申请实施例提供的又一种预测用户是否进入卡顿围栏的示意图;
图21为本申请实施例提供的又一种预测用户是否进入卡顿围栏的示意图;
图22为本申请实施例提供的又一种预测用户是否进入卡顿围栏的示意图;
图23为本申请实施例提供的又一种预测用户是否进入卡顿围栏的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
为了下述各实施例的描述清楚简洁,首先给出相关概念或技术的简要介绍:
体验质量(quality of experience,QoE):终端用户对移动网络提供的业务性能的主观感受。QoE可以通过接近量化的方法来表示终端用户对业务与网络的体验和感受,并反映当前业务和网络的质量与用户期望间的差距。
从移动通信网络的角度来说,要想获得更好的QoE的最佳方案就是提供一个优良的端到端的服务质量(quality of service,QoS)。广义的QoS为“决定用户满意程度的服务性能的综合效果”,包含多个层面较为广泛的内容。狭义QoS为底层分组数据传输的性能指标,如时延、抖动、带宽、误码等。QoS机制主要负责从网络的角度进行业务管理和提供业务的差异性,网络实体根据不同的质量需求来处理不同业务。但从终端用户的角度来体验QoS是一个更广、更主观的问题,即QoE所定义的范畴。
钩子(HOOK)函数:钩子函数实际上是一个处理消息的程序段。每当特定的消息发出,在没有到达目的窗口前,钩子函数可以先捕获该消息,亦即钩子函数先得到控制权。钩子函数可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
数据流:本申请实施例中,将两个电子设备(例如,手机和应用程序的服务器)之间传输的数据序列记为数据流。数据流也可以称为业务流。在实际应用中,基于数据流的业务场景分类,数据流可以包括视频流、音频流、下载流、会话流等。
地理围栏:是使用定位系统网络(例如,全球卫星定位系统(global positioningsystem,GPS)网络、北斗卫星导航系统(beidou navigation satellite system,BDS)网络)和/或本地射频标识符(例如,Wi-Fi接入点(Wi-Fi节点)、蓝牙信标)在特定位置周围创建虚拟边界,该虚拟边界可以称为地理围栏。可以将地理围栏与硬件/软件应用程序配对,使得应用程序可以根据程序参数的指示以某种方式对地理边界进行响应。
本申请实施例中,特定位置可以是指发生网络卡顿的地理位置。例如,用户通过某蜂窝小区的边缘位置时发生了网络卡顿,该边缘位置即发生网络卡顿的地理位置。可以在发生网络卡顿的地理位置周围创建虚拟边界,该虚拟边界即卡顿围栏。可以将卡顿围栏与视频类应用、游戏类应用等应用程序关联起来。视频类应用、游戏类应用等应用程序可以基于电子设备是否处于卡顿围栏进行相应处理。例如,当电子设备即将进入卡顿围栏时,视频类应用可以对当前正在播放的视频或即将要播放的视频进行缓存、降低分辨率等操作;当电子设备出卡顿围栏中时,视频类应用可以停止对当前正在播放的视频或即将要播放的视频进行缓存、恢复视频的分辨率等操作。
网络通道:两个电子设备之间交互数据的通道。为了便于描述,可以将一个电子设备通过无线网卡与其他电子设备之间建立的网络通道记为Wi-Fi网络;将一个电子设备通过数据业务网卡与其他电子设备之间建立的网络通道记为蜂窝网络。
其中,无线网卡为支持无线局域网(wireless local area network,WLAN)上网的装置;数据业务网卡为支持长期演进(long term evolution,LTE)、第五代移动通信技术(5th generation mobile communication technology,5G)、全球移动通讯系统(globalsystem for mobile communications,GSM),通用分组无线服务(general packet radioservice,GPRS)等移动通信技术上网的装置。
在实际应用中,网络通道的质量随用户所处的环境而变化。例如,当用户采用蜂窝网络上网时,若用户处于蜂窝小区的边缘,蜂窝网络信号会变差,从而造成用户上网卡顿,导致用户体验较差。
以电子设备为手机为例说明用户所处的环境对网络通道质量的影响。参见图1A中的(a),用户使用手机中的游戏应用A玩游戏。其中,手机中的应用A通过手机中的数据业务网卡1与应用A的服务器A建立网络连接,应用A和服务器A之间产生的数据流A(例如,游戏对战时产生的数据流)通过手机上的数据业务网卡1和基站1之间的蜂窝网络传输。当用户进入基站1对应的蜂窝小区的边缘时,蜂窝网络信号变差导致数据流A减小,用户使用应用A时出现卡顿的现象,导致用户体验较差。
为了解决上述问题,参见图1A中的(b),手机可以将数据流A切换到手机的数据业务网卡2和基站2之间的蜂窝网络上,以通过该蜂窝网络与服务器A传输数据流A,进而减小上网卡顿。可以理解的,网络信号覆盖较差的区域是相对而言的。例如,对于数据业务网卡1而言,某地(例如,区域A)是网络信号覆盖较差的区域,而对于数据业务网卡2而言,该地(例如,区域A)的网络信号覆盖并不差,此时将电子设备从数据业务网卡1切换到数据业务网卡2,可以解决卡顿问题。
然而,上述手机将Wi-Fi网络切换为蜂窝网络的时机是检测到用户上网发生卡顿后,切换网络,以减少用户上网卡顿的时间。然而,对于用户而言,已经造成用户上网卡顿(用户已经感受到了上网卡顿),用户体验不高。
鉴于此,本申请实施例提供一种网络加速方法,可以在用户还未感受到上网卡顿时提前进行网络加速处理,以降低应用出现上网卡顿的概率,更好地提升用户的上网体验。本申请实施例可以针对卡顿围栏进行多级预测,针对不同级别的预测结果执行不同的网络加速处理。具体的,电子设备可以检测当前是否连接到(切换到)存在卡顿围栏的蜂窝小区(第一级预测)。当检测到用户的电子设备连接到(切换到)存在卡顿围栏的蜂窝小区,电子设备的操作系统可以向当前正在运行的应用(例如,第一应用)通知第一卡顿围栏事件,第一卡顿围栏事件可以用于指示用户(电子设备)进入存在卡顿围栏的小区,使得当前正在运行的应用可以进行提前缓存应用数据和/或降低分辨率等处理,以便后续用户进入卡顿围栏时可以继续顺畅地查看应用的相关内容(例如,继续刷短视频,继续看电影等)。进一步的,检测到用户的电子设备连接到(切换到)存在卡顿围栏的蜂窝小区,可以继续定时检测用户是否进入卡顿围栏(第二级预测)。当检测到用户进入卡顿围栏时,电子设备可以将应用的数据流从蜂窝网络1(第一蜂窝网络)切换到网络信号质量更好的蜂窝网络2(第二蜂窝网络),从而保证了用户在卡顿围栏依然能有流畅的上网体验,大大降低了应用的上网卡顿概率,能更好地提升用户的上网体验。
本申请实施例提供的网络加速方法可以应用于电子设备。图1B为本申请实施例提供的一种电子设备100的结构示意图。
如图1B所示,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。
其中,传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对电子设备100的具体限定。在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal 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转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括GSM,GPRS,码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),LTE,BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括GPS,全球导航卫星系统(global navigationsatellite system,GLONASS),北斗卫星导航系统(beidou navigation satellitesystem,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。该显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),发光二极管(light-emitting diode,LED),有机发光二极管(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可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
摄像头193可以包括1~N个。例如电子设备可以包括2个前置摄像头和4个后置摄像头。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。例如,在本申请实施例中,处理器110可以通过执行存储在内部存储器121中的指令,内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口170D用于连接有线耳机。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
以下实施例中的方法均可以在具有上述硬件结构的电子设备100中实现。
上述电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过接口通信。
在一些实施例中,如图2所示,电子设备100的技术架构包括:应用层、服务层、策略层和内核层。应该理解的是,图2中仅示出了与本申请实施例相关的部分层和部分组件(模块),实际应用中,还可以包括图2中未示出的层级和组件。当然,也可以仅包含图2所示的组件中的部分组件。
其中,应用层中存在各种应用,例如视频类应用,游戏类应用等。
服务层中存在网络加速服务模块、感知模块、路径管理模块和围栏管理模块。
其中,网络加速服务模块是应用程序与感知模块交互的通道。网络加速服务模块可以基于Binder机制为应用程序与感知模块转发消息(例如,注册请求)。其中,Binder是一种进程间通信机制,可以实现不同进程之间的通信。
围栏管理模块可以包括卡顿点感知、用户状态识别、围栏数据采集、围栏数据库、围栏数据生成、围栏数据预测等子模块(图2中未示出)。其中,卡顿点感知子模块用于感知用户是否到达卡顿点,即到达发生网络卡顿的位置。卡顿点感知子模块可以将用户到达卡顿点事件通知围栏数据采集子模块。围栏数据采集子模块用于采集卡顿指纹信息。卡顿指纹信息可以包括时间戳、地区区域码(location area code,LAC)、信号塔标识(cell towerID,Cell ID)、GPS、运营商、Wi-Fi连接列表、手机型号等信息。围栏数据库用于存储围栏数据采集子模块采集的数据。围栏数据生成子模块用于根据围栏数据采集的数据生成至少一个卡顿围栏的围栏数据。用户状态识别子模块用于识别用户运动状态。
围栏数据预测子模块用于根据当前电子设备连接的Cell ID、用户当前的运动状态和围栏数据预测用户是否进入/即将进入卡顿围栏,当预测用户进入/即将进入卡顿围栏,可以向前台运行的应用上报用户进入/即将进入卡顿围栏的事件。
在一些实施例中,若当前电子设备连接的Cell ID对应的蜂窝小区存在卡顿围栏,且根据用户当前的运动状态和围栏数据预测用户将会进入卡顿围栏,围栏数据预测子模块可以向当前正在运行的应用通知第一卡顿围栏事件,第一卡顿围栏事件用于指示用户不久后将进入卡顿围栏,使得前台运行的应用可以进行提前缓存应用数据和/或降低分辨率、帧率、码率等处理,以便后续用户进入卡顿围栏时可以继续顺畅地查看应用的相关内容(例如,继续刷短视频,继续看电影等)。可选的,围栏数据预测子模块还用于根据用户当前的运动状态和围栏数据预测用户进入卡顿围栏的时间(比如当前用户是乘车状态,预测用户10s后将进入卡顿围栏),在用户马上进入卡顿围栏时,围栏数据预测子模块可以通过感知模块向决策模块上报第二卡顿围栏事件,第二卡顿围栏事件用于指示用户进入卡顿围栏。决策模块接收到第二卡顿围栏事件后,可以执行系统加速策略,请求一条新的网络通道进行调优(例如,可以将应用的业务从Wi-Fi网络切换到蜂窝网络)。
在一些实施例中,若当前电子设备连接的Cell ID对应的蜂窝小区存在卡顿围栏,且根据用户当前的运动状态和围栏数据预测用户将会进入卡顿围栏,围栏数据预测子模块可以向当前正在运行的应用通知第一卡顿围栏事件,第一卡顿围栏事件用于指示用户不久后将进入卡顿围栏,使得前台运行的应用可以进行相应处理以减少上网卡顿。若前台运行的应用是缓存类应用,该应用可以进行提前缓存应用数据,以便后续用户进入卡顿围栏时可以继续顺畅地查看应用的相关内容(例如,继续刷短视频,继续看电影等)。其中,缓存类应用可以将要用到的资源提前从数据库或其他地方下载到内存,提高系统反应速度,增强用户体验满意度。可选的,围栏数据预测子模块还用于根据用户当前的运动状态和围栏数据预测用户进入卡顿围栏的时间(比如当前用户是乘车状态,预测用户10s后将进入卡顿围栏),在用户马上进入卡顿围栏时,围栏数据预测子模块可以向前台运行的应用通知第二卡顿围栏事件,若前台运行的应用是即时通信类应用(例如,网络游戏应用、即时通讯应用等),该应用可以通过降低视频分辨率、帧率、音频码率等处理使得用户进入卡顿围栏时可以继续顺畅地查看应用的相关内容。同时,围栏数据预测子模块还可以通过感知模块向决策模块上报第二卡顿围栏事件,第二卡顿围栏事件用于指示用户进入卡顿围栏。决策模块接收到第二卡顿围栏事件后,可以执行系统加速策略,请求一条新的网络通道进行调优(例如,可以将应用的业务从Wi-Fi网络切换到蜂窝网络)。
感知模块可以探测上层应用的各种事件。作为示例,感知模块可以探测应用的打开、退出,还可以探测当前切换到前台/后台的应用,还可以探测应用的安装、卸载等。当感知模块探测到应用打开或应用切换到前台时,可以通知下层模块(决策模块)开启数据流的监控功能。
路径管理模块可以用于探测电子设备支持的Wi-Fi网络和蜂窝网络的状态(开启或关闭等)。作为示例,若电子设备中设置有2.4GHz频段的无线网卡1和5.0GHz频段的无线网卡2。路径管理模块可以探测2.4GHz频段的无线网络为开启还是关闭状态;还可以探测5.0GHz频段的无线网络为开启或关闭状态。若电子设备中设有运营商A的数据业务网卡1和运营商B的数据业务网卡2。路径管理模块可以探测运营商A的数据业务为开启还是关闭状态;还可以探测运营商B的数据业务为开启还是关闭状态。
路径管理模块还用于评估网络通道的质量。作为示例,路径管理模块可以评估2.4GHz频段的Wi-Fi网络的质量,还可以评估5.0GHz频段的Wi-Fi网络的质量。也可以评估运营商A的蜂窝网络的质量,还可以评估运营商B的蜂窝网络的质量。
路径管理模块还可以存储多条网络通道的路径,示例性的,可以存储应用当前使用的网络通道(例如,主网络通道)及备用网络通道的路径。路径管理模块还可以用于根据决策模块的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道。路径管理模块可以启动选取的最优通道,即将网络通道从休眠状态转换为唤醒状态,唤醒状态的网络通道可以直接被使用。路径管理模块可以关闭非最优通道,即将网络通道从唤醒状态转换为休眠状态,休眠状态的网络通道暂时无法被使用。
策略层中设有流量管理模块和决策模块。
其中,流量管理模块用于对内核层上报的数据流进行统计,评估各个数据流的网络质量。
决策模块可以根据用户是否进入卡顿围栏执行相应的处理。例如,当确定用户进入卡顿围栏后,执行系统加速策略,请求一条新的网络通道进行调优(例如,可以将应用的业务从Wi-Fi网络切换到蜂窝网络)。当确定用户出卡顿围栏后,恢复应用的业务到Wi-Fi网络(即将应用的业务从蜂窝网络切换回Wi-Fi网络)。
内核层存在策略执行模块和流量上报模块。其中,流量上报模块用于收集数据流信息,并上报收集的数据流信息。策略执行模块用于执行网络通道的切换。
在本申请另一实施例中,上述实施例中一个模块(组件)可以拆分为两个或多个模块,或者位于同一层级的两个或多个模块可以合并为同一模块。
作为示例,服务层的路径管理模块可以拆分为路径探测模块和路径控制模块,路径探测模块可以用于探测电子设备支持的Wi-Fi网络和蜂窝网络的状态和质量。路径控制模块可以用于根据决策模块的策略变化更新网络通道的选取,触发网络通道质量探测,动态选取最优通道。
为了便于理解,以下结合附图对本申请实施例提供的网络加速方法进行具体介绍。
电子设备的操作系统执行网络加速方法前,需要用户提前开启网络加速功能。下面对用户提前开启网络加速功能的UI界面和用户操作进行说明。
示例性的,如图3中的(a)所示,手机显示桌面201。响应于用户在桌面201点击设置应用的图标202的操作,如图3中的(b)所示,手机可以显示设置界面203。设置界面203中可以包括WLAN选项204,还可以包括搜索框以及个人账号、蓝牙、移动网络、桌面和壁纸等功能选项。响应于用户点击WLAN选项204对应的控件的操作,如图3中的(c)所示,手机可以显示WLAN界面205。WLAN界面205中可以包括WLAN开关206。WLAN开关206为开启状态,表示手机可以连接WLAN进行上网。WLAN界面205中还可以包括网络加速选项207,以及更多WLAN设置选项和可用WLAN列表,可用WLAN列表可以包括手机当前扫描到的多个WLAN网络的名称(例如HONOR1、HONOR2、HONOR3等)和信号强度标识等。响应于用户点击网络加速选项207对应的控件的操作,如图3中的(d)所示,手机可以显示网络加速界面208。网络加速界面208中可以包括网络加速功能的文字说明209,文字说明209表示网络加速功能的作用是“评估当前网络质量,智能使用WLAN和移动数据提升上网体验,此过程会联网并消耗部分移动数据流量”。可选的,若用户开启荣耀智慧能力,网络加速将提供更智能的服务。用户可以点击链接“荣耀智慧能力与隐私的声明”来查看荣耀智慧能力的说明。其中,荣耀智慧能力开启后,操作系统可以收集用户使用手机的习惯,根据用户的习惯为用户提供个性化服务。网络加速界面208中还可以包括网络加速(LINK Trubo)对应的开关210。开关210为开启状态,表示用户同意开启网络加速功能,从而手机可以评估当前网络质量,智能使用WLAN和移动数据提升上网体验。当然,用户可以选择关闭开关210,即关闭网络加速功能。在开关210下方,可以显示文本框211,文本框211中的文字用于向用户说明网络加速功能的效果和流量使用情况。例如,网络加速功能开启后,提升下载速度35%,使用流量100M;减少网络卡顿40次,使用流量40M。需要说明的是,网络加速功能可以包括并发加速功能212和协同加速功能214。并发加速功能212包括多通道下载模式213,用户可以通过控件217进入多通道下载模式的设置界面,开启或关闭多通道下载模式。多通道下载模式213开启时,电子设备连接WLAN和移动网络时,下载类的应用(比如应用市场、百度网盘)可以同时使用多个网络通道并发下载,获得更极速的下载体验。图3中的(d)中多通道下载模式213是已关闭状态。协同加速功能214包括智能模式215和自定义模式216。智能模式215下,可以基于用户流量消耗情况和应用使用偏好,智能开启需要网络加速的应用。用户可以通过控件218开启或关闭智能模式。图3中的(d)中控件218为选中状态,智能模式开启。自定义模式216下,用户可以手动开启需要加速(网络加速)的应用。用户可以通过控件219开启或关闭自定义模式。图3中的(d)中控件219为未选中状态时,自定义模式关闭。用户选择协同加速功能214的智能模式215或自定义模式216时,相应应用程序(智能模式215下智能开启的需要网络加速的应用,或自定义模式216下用户手动选择的需要网络加速的应用)在前台运行时,若发生网络卡顿,电子设备可以将卡顿的网络通道切换到通信质量更好的网络通道,获得更好的上网体验。
如图4中的(a)所示,响应于用户选中控件219以开启自定义模式216的操作,如图4中的(b)所示,手机可以显示手机安装的各种应用程序的信息(图标、名称等)及其对应的开关。例如,手机可以显示微信对应的开关221、QQ/>对应的开关222、视频应用对应的开关223、抖音/>对应的开关224和音乐应用对应的开关225等。用户可以根据自己的需求手动选择需要加速的应用程序。例如,用户可以开启微信/>对应的开关221、QQ/>对应的开关222、视频应用对应的开关223、抖音/>对应的开关224,表示用户在使用微信/>QQ/>视频应用和抖音/>时,手机需要开启网络加速以保证用户的使用体验。/>
参见图5,为本申请实施例提供的基于图2所示的各个模块实现的一种网络加速方法的时序图,包括两部分,第一部分是卡顿围栏的生成过程,包括步骤301-306d;第二部分是对卡顿围栏事件(第一卡顿围栏事件和第二卡顿围栏事件)的预测和相应的网络加速过程,包括步骤307-337。
301、响应于用户打开应用A的操作,应用A启动。
应用A是应用层的一个应用程序,例如可以是视频应用。响应于用户打开应用A的操作,应用A启动,电子设备可以显示应用A的相关界面。此时应用A是前台应用,即应用A的程序代码正在CPU中运行。
以应用A为视频应用为例,如图6中的(a)所示,响应于用户在桌面401点击视频应用的图标402的操作,视频应用启动(即电子设备运行视频应用),手机可以显示视频应用的主界面。响应于用户在视频应用的主界面选择一个视频进行播放,如图6中的(b)所示,手机可以显示视频播放界面403。视频播放界面403可以包括当前正在播放的视频的显示窗口、媒体标题和选集按钮等控件。
或者,步骤301可以是应用A从后台切换至前台,此时应用A仍是前台应用。
302、感知模块感知到应用A启动,查询应用A是否支持网络加速。
示例性的,感知模块可以通过RunningProcess、ActivityLifecycleCallbacks、UsageStatsManager等函数监测当前的前台应用(例如,应用A),并获取前台应用的标识。或者,若终端设备为Android系统,可以通过Android自带的无障碍功能监测当前的前台应用,并获取前台应用的标识。或者,若终端设备为Linux系统,可以读取Linux系统内核保存在/proc目录下的process进程信息监测当前的前台应用,并获取前台应用的标识。具体判断过程可以参考现有技术,在此不做赘述。其中,应用的标识用于唯一识别一个应用,可以和应用的包名具有一一对应的关系,也可以采用应用的包名。
感知模块中可以包括应用配置库,应用配置库中存储了多个应用程序是否支持网络加速的信息,多个应用程序包括应用A。如表1所示,示例性示出部分应用程序是否支持网络加速的信息。
表1
或者,应用配置库中可以仅存储支持网络加速的应用程序的信息。如表2所示,示例性示出部分支持网络加速的应用程序的信息。
表2
实际应用中,该应用配置库还可以存储多个应用标识,每个应用标识采用不同的字符表示该应用标识表示的应用是否支持网络加速。作为示例,可以采用“1”表示支持网络加速,采用“0”表示不支持网络加速。其他确定应用是否支持网络加速的方式不再一一举例。
在一种可能的实施方式中,如图3中的(d)所示,若用户选择协同加速功能214的智能模式215,应用配置库中的多个应用程序可以是基于用户流量消耗情况和应用使用偏好,智能确定出的需要网络加速的应用程序。
在另一种可能的实施方式中,如图4中的(a)所示,若用户选择协同加速功能的自定义模式216,应用配置库中的多个应用可以是基于用户的手动设置确定出的需要网络加速的应用。例如,如图4中的(b)所示,若用户开启微信对应的开关221、QQ/>对应的开关222、视频应用对应的开关223、抖音/>对应的开关224,应用配置库中的多个应用程序可以包括微信/>QQ/>视频应用和抖音/>
303、若确定应用A支持网络加速,感知模块向决策模块发送网络质量评估请求。
若感知模块通过查询应用配置库确定应用A支持网络加速,可以向决策模块发送网络质量评估请求。决策模块接收到网络质量评估请求后,可以执行步骤304。
其中,网络质量评估请求用于请求决策模块进行网络质量评估。网络质量评估请求中可以包括应用标识、应用的配置信息以及网络质量评估的标准。其中,应用的配置信息是指应用进行业务时的报文特征,报文特征为应用传输数据流时的数据包的头部特征。
或者,感知模块感知到应用A切换到前台,可以通知决策模块,决策模块可以查询应用配置库确定应用A是否支持网络加速,若确定应用A支持网络加速,可以执行步骤304。
304、决策模块向内核层的流量上报模块注册报文监测钩子。
报文监测钩子可以周期性探测应用A当前使用的网络通道的路径,以及监测应用A使用的网络通道传输的数据流的通信参数和统计信息。
应用A在实现某个功能时,可能产生一个或多个数据流。若检测到产生多个数据流,可以周期性检测应用A的每条数据流的通信参数和统计信息。
下面具体描述报文监测钩子如何监测应用A的数据流的通信参数和统计信息,并将监测到的数据流的通信参数和统计信息发送给流量管理模块。
电子设备的系统中存在Netfilter组件(钩子函数管理组件),通过该组件可以获取到特定应用标识对应的应用(例如,应用A)的数据流。流量上报模块可以通过调用Netfilter组件获取应用A的数据流的报文。具体实现时,流量上报模块上报给流量管理模块的信息不仅包括应用A的数据流的报文,还包括应用A的数据流的报文的一些通信参数和统计信息。
参见图7,流量上报模块可以预先注册报文监测钩子(例如,nf_hook钩子函数)。在流量上报模块调用Netfilter组件后,Netfilter组件上报应用A的数据流的报文,流量上报模块接收到Netfilter组件上报的数据流的报文之后,调用预先注册的nf_hook钩子函数。
该nf_hook钩子函数对接收到的数据流的报文进行以下操作:报文解析、查流表和报文分析等操作。
在进行报文解析时,可以查看该报文是否存在应用标识以及该报文的四元组(或五元组),以得到解析结果。若存在应用标识,则可以确定该报文对应的应用程序。四元组中包括源IP、目的IP、源端口、目的端口;五元组中包括:源IP、目的IP、源端口、目的端口以及协议号。另外,报文(数据包)本身也携带了头部特征。数据流的报文的四元组(或五元组)以及报文的头部特征等参数可以统称为数据流的通信参数。
在进行报文解析之后,根据解析结果查询流表,并更新流表的统计信息。流表中存储了各个应用中数据流的标识信息、以及各个数据流的报文总数、收发字节数(包括接收字节数和发送字节数)、错误包数量等。进一步的,可以根据报文总数确定是否下行无响应,例如,连续两个周期内接收到的报文总数相同,则确定下行无响应。可以根据收发字节数确定传输速率,例如,上一周期和本周期接收到的字节数的差值与周期的比值为本周期下行速率。可以根据报文中携带的序列号确定丢包情况,例如,丢包率(loss tolerance或packetloss rate)可以是缺失的序列号的数目与现有的序列号的数目的比值。当然,上述参数的确定方式仅用于举例,在实际应用中,还可以通过其他方式确定上述参数。数据流的报文总数、错误包数量、丢包率、收发字节数、速率(上行速率、下行速率)等信息可以统称为数据流的统计信息。实际应用中,各个流的统计信息还可以包括其他信息,例如,数据流随时间变化的流量分布信息、数据流的报文的时延信息等。
当然,若流表中不存在某个数据流的标识信息或相关统计信息时,则可以在流表中增加该数据流的标识以及相关的统计信息。
在查流表并更新流表信息之后,则可以对报文进行分析。例如,过滤报文,从而得到全部或部分报文。
作为一种示例,该过滤过程可以是过滤某个数据流的心跳包报文。则经过过滤处理后,得到该数据流的心跳包报文。该过滤处理过程可以是:通过预先设置某些特征,将满足该特征的报文保留。即满足预先设置的某些特征的报文就为过滤后的报文。
其中,心跳包报文为按照一定的时间间隔存在于数据流中的报文。心跳包报文在固定位置(例如第6个字节)存在固定特征(例如0x64或0x65)。由于该心跳包报文为按照一定时间存在的报文,因此可以基于该心跳包报文计算获得时延(例如,手机向服务器发送心跳请求报文开始,到手机接收到服务器反馈的心跳响应报文为止,总共经历的时间)。
上述示例以过滤心跳包为例进行说明,实际应用中,还可以过滤处理以获得满足其它特征的数据包报文。
作为另一示例,过滤条件还可以包括:选择保留特定长度的数据包报文。在具体实现时,确定数据包报文的长度是否为预先设置的特定长度,若是,则保留该报文,若否,则将该报文过滤掉。
经过上述处理后,得到的过滤后的部分报文被存储在套接字缓存(Socket-Buffer,SKB)队列(queues)中。
SKB队列中存储的数据流的报文上报时的策略包括:立即上报和定期上报。
若为立即上报,流量上报模块中的特定线程及时查看队列,将队列中的报文及时上报给流量管理模块。
若为定期上报,流量上报模块中设置了定时器,基于该定时器设置的时间以一定的周期查看SKB队列中的报文,将队列中的部分或全部报文上报给流量管理模块。
当然,实际应用中,SKB队列中存储的数据流的报文有些是需要立即上报的,有些是需要定期上报的。同样的原理,流量上报模块中的特定线程及时查看队列,将队列中的需要立即上报的报文及时上报给流量管理模块。流量上报模块中还设置了定时器,基于该定时器设置的时间以一定的周期查看SKB队列中的报文,将队列中的需要定期上报的报文上报给流量管理模块。
需要说明,上报报文时,还可以一并上报该报文相关的统计信息。
基于上述理解,流量上报模块并不是将Netfilter组件发送的所有报文均上报给流量管理模块。而是,将满足特定特征的报文(可以携带该满足特定特征的报文的通信参数和统计信息)上报给流量管理模块。同时上报该满足特征的报文相关的通信参数和统计信息。
作为示例,若报文1和报文2均属于同一数据流的报文。接收到报文1后查流表时,根据报文1更新流表中关于该数据流的统计信息,然而,报文1不满足特定特征,所以报文1被过滤掉,不会上报给流量管理模块。接收到报文2后查流表时,根据报文2更新流表中关于该数据流的统计信息,报文2满足特定特征,所以报文2不会被过滤掉,报文2会被上报给流量管理模块。即虽然上报了部分报文,然而,统计信息是基于该数据流下的所有报文得到的。
305、流量上报模块向流量管理模块周期性上报数据流的通信参数和统计信息。
其中,数据流的通信参数可以包括协议类型、源IP地址和端口/目的IP地址和端口、报文特征、报文信息(payload)等。其中,协议类型为应用传输数据流时的协议类型,源IP地址和端口为发送数据流时使用的IP地址和端口,目的IP地址和端口为接收数据流时使用的IP地址和端口,报文特征为应用传输数据流时的数据包的头部特征。数据流的通信参数可以是从数据流的报文的四元组或五元组获取到的。
例如,某社交通信类应用在进行音视频通话时,数据流对应的数据包的头部特征为97开头,即data[0]=97,传输数据包时采用UDP协议,源IP地址和端口分别为221.11.6.XX和8080,目的IP地址和端口分别为221.14.4.XX和5050。
数据流的统计信息可以包括往返时延(round trip time,RTT)、丢包率、收发字节数、速率(上行速率、下行速率)等。其中,收发字节数包括发送字节数(即上传流量)和接收字节数(即下载流量)。丢包率为丢失数据包数量占所发送数据包的比率。上行速率为发送数据流的速率,下行速率为接收数据流的速率。RTT表示从电子设备(发送端)发送数据开始,到接收收到来自对端(接收端)的确认(对端接收到数据后便立即发送确认),总共经历的时长。
例如,某社交通信类应用在进行音视频通话时,收发字节数分别为10MB/8MB,上行速率和下行速率分别为200kbit/180kbit,RTT为50ms。
当然,实际应用中,流量上报模块还可以向流量管理模块上报应用网络报文的其他参数,例如流间隔时间、包间隔时间、包大小和流量分布等信息,本申请不做限定。
可选的,流量上报模块可以通过一条消息上报上述应用网络报文的通信参数和统计信息,或者,可以通过多条消息分别上报应用网络报文的通信参数和统计信息,本申请不做限定。
306a、流量管理模块根据数据流的通信参数和统计信息周期性进行网络质量评估得出当前QoE测量结果。
流量管理模块接收到应用A的数据流的通信参数和统计信息后,可以查询应用A的流特征库,比如可以根据报文的协议类型、端口、报文协议头等特征识别出前台运行的应用的业务场景(例如,识别出是抖音的短视频播放场景)并记录到流表中。其中,应用A的流特征库中存储该应用A的数据流的各种信息,例如,应用A使用当前网络时采用的协议的协议特征,应用A使用当前网络时传输的数据包的头部特征等。当然,还可以包括应用A使用当前网络时的流量特征等,在此不做限定。
流量管理模块可以定期对前台运行的应用的数据流进行QoE评估。实际应用中,不同的应用对应的QoE评估条件可以相同或不同。其中,QoE评估条件可以是指连续几个周期内数据流的统计信息满足的条件。同一个应用的不同业务场景对应的QoE评估条件可以相同或不同。例如,游戏应用的对战场景和跑图场景的QoE评估条件可以不同,又例如,视频应用中的视频选择场景、视频播放场景,小窗播放场景的QoE评估条件可以不同,基于不同的业务场景设计不同的QoE评估条件可以使得QoE评估更加准确。不同业务场景可以通过通信参数进行区分,通信参数满足的条件不同时,通信参数对应的业务场景也不同。同一个应用的同一个业务场景可以对应一种或多种QoE评估条件。每种QoE评估条件对应一个QoE测量结果(也可以称为QoE评估结果)。多种QoE评估条件可以对应同一个QoE测量结果,满足该多种QoE评估条件中的任一种时,可以得到相同的QoE测量结果。
以王者荣耀的对战场景为例,王者荣耀的对战场景对应的QoE评估条件可以是根据丢包率和/或时延满足的条件评估对战的卡顿情况。例如,若对战场景中丢包率满足3s内连续出现2次丢包20%的条件,和/或,对战场景的时延满足4s内连续出现2次时延超过200ms的条件,可以认为王者荣耀的对战场景的QoE测量结果为差,即对战过程中发生卡顿。
示例性的,QoE测量结果可以包括:优(流畅不卡顿)、中(可能卡顿)和差(卡顿)。例如,QoE测量结果为优的标识可以为00,QoE测量结果为中的标识可以为10,QoE测量结果为差的标识可以为11。
如表3所示,可以根据数据流的通信参数满足的条件对前台运行的应用的当前业务场景进行区分。进一步的,可以根据不同业务场景对应的不同QoE评估条件确定相应业务场景的QoE测量结果。应用程序的数据流的通信参数和统计信息分别满足不同条件时,QoE测量结果是不同的。
表3
其中,表3中的com.tencent.mm为微信包名,com.tencent.tmgp.sgame为王者荣耀包名。表3中一个条目表示应用程序的数据流的通信参数和统计信息分别满足相应条件时,可以得到相应的QoE测量结果。例如,王者荣耀的数据流采用udp协议+任意端口+0x10报文头部时,且该数据流在5个周期(每个周期例如可以为500ms或1000ms)内连续3个周期时延超过150ms,或在4个周期内连续3个周期丢包超过20%,则QoE测量结果为差。
表3仅列举了部分应用程序的数据流的QoE评估条件(包括数据流的通信参数和统计信息分别需要满足的条件)和QoE测量结果,且仅用于示例。在实际应用中还可以采用其他不同的QoE评估条件得到QoE测量结果。
在一些情况下,基于表3得到的QoE测量结果可能出现误判的情况。例如,用户使用短视频类应用时,若用户刷到某短视频,短视频类应用开始通过网络通道下载该短视频并缓存已经下载的该短视频的部分数据帧,再从缓存中获取该短视频的数据帧并开始播放。若该短视频的播放时长为15秒,以用户刷到该短视频为时间起点,从时间起点开始至第2秒,单位时间的下载速率会快速增大;从第2秒至第5秒,单位时间的下载速率会快速降低至0;从第5秒至第15秒播放结束,单位时间的下载速率维持0。
若采用上述表3中的条件,若确定端视频应用的数据流连续多个周期的时延超过350ms或连续多个周期的下行速率(均值)小于51kb/s,则表示数据流的QoE测量结果为差。上述示例中,在第5秒至第15秒期间,连续多个周期内的速率(均值)均为0,可能会判定当前数据流发生卡顿,即在当前网络通道上的传输质量较差。
然而,在具体应用中,在第5秒至第15秒期间,该应用的数据流所在的网络通道的网络质量并不差,只是当前没有从其他电子设备下载数据流的需求,所以连续多个周期内的速率均为0。鉴于此,本申请实施例提供另一种评估短视频类应用的QoE测量结果的方法。短视频类应用的数据流的特征如下:采用http协议、通过get向服务器请求视频内容、且get数据包中携带mp4字段。
参见图8,为本申请实施例提供的网络通道质量较好时,短视频类应用的数据流的速率特点。视频流的速率呈周期分布,每个周期包括速率不为0的时间段和速率为0的时间段。
例如,图8中,视频流的速率分布包括:连续的第一时间段、第二时间段和第三时间段,其中,第一时间段、第三时间段的速率不为0,第二时间段的速率为0。在第一时间段中的第一部分的平均速率大于第一值,表示视频流的传输质量满足要求,不需要提升网络质量,电子设备在第三时间段通过第一网卡传输视频流。
参见图9,视频流的速率分布还可以包括:连续的第四时间段、第五时间段和第六时间段,第四时间段和第六时间段的速率不为0,第五时间段的速率为0。在第四时间段中的第二部分的平均速率小于或等于第一值,表示视频流的传输质量不满足要求,需要提升网络质量,电子设备在第六时间段通过电子设备的第二网卡传输视频流,为了评判标准统一,可以设置第二部分的时长和第一部分的时长相等。
为了使得速率为0的情况下,评判标准更精确,还可以设置第一时间段中的第一部分的结束时间和第一时间段的结束时间相同,第四时间段中的第二部分的结束之间和第四时间段的结束时间相同。
根据图8所示的速率特点和图9所示的速率特点可以理解:速率为0的情况比较特殊,在评估短视频类应用的视频流的传输质量时需要将速率为0的情况单独考虑。
速率不为0的一段时间段内,该段时间内可以选取一部分时间(例如,和第一部分的时长相同),可以记为第七时间段,确定第七时间段的平均速率小于或等于第一值,电子设备在第八时间段通过第二网卡传输视频流,其中,第八时间段的开始时间为第七时间段的结束时间。当然,确定第七时间段的平均速率大于第一值,电子设备在第八时间段通过第一网卡传输视频流。
在具体实现时,可以将速率为0的情况和速率不为0的情况分开考虑。其中,本申请实施例中的速率表示均值周期(例如,300ms、400ms、500ms、600ms、700ms等)内视频流的平均下行速率。
平均速率不存在0的情况:多个(例如,2个,3个,4个,5个等)均值周期内的平均速率均较小,则该数据流的传输质量较差。当然,也可以是1个均值周期内的平均速率值较小,则该数据流的传输质量较差。
平均速率存在0的情况:由于网络原因导致平均速率出现0的情况,通常平均速率出现0之前,平均速率已经开始变小(在具体实现时,可以取一段时间内的平均速率,该段时间的结束时间可以为速率变为0的时间),这种情况才需要提升传输质量;由于当前播放的短视频缓存结束导致平均速率出现0的情况,通常平均速率出现0之前平均速率仍然较大,这种情况不需要提升传输质量。所以,平均速率出现0时,需要追溯到平均速率首次变为0的均值周期之前一个均值周期(最后一个非0速率的均值周期)的平均速率;在具体实现时,可以将平均速率出现0的周期的平均速率延用平均速率首次变为0时上一个均值周期(最后一个非0速率的均值周期)的平均速率。当然,也可以理解每出现平均速率为0的情况,均延用上一均值周期的平均速率。然后在多个均值周期内的平均速率均较小时,则该数据流的传输质量较差。
鉴于上述描述,可以设置以多个均值周期的平均速率作为参考。首先根据单个均值周期(可以记为第一周期)的平均速率确定当前均值周期的周期传输质量,然后根据多个均值周期的周期传输质量确定当前数据流的数据流传输质量。
在确定单个均值周期的周期传输质量时,若平均速率不为0,则可以在平均速率小于或等于阈值A(可以等于第一值,也可以不等于第一值)的情况下,判定当前均值周期的周期传输质量为差;在平均速率大于阈值A的情况下,判定当前均值周期的周期传输质量为优。若平均速率为0,在延用上一均值周期的平均速率的情况下,相当于延用了上一均值周期的周期传输质量(差或优)。因此在上一均值周期的周期传输质量为差的情况下,认为当前均值周期的周期传输质量也为差,在上一均值周期为优的情况下,认为当前均值周期的周期传输质量也为优。本申请实施例对平均速率为0的情况采用延用上一均值周期的周期传输质量还是延用上一均值周期的速率不做限定。当然,实际应用中,平均速率为0时,也可以根据过去多个均值周期(例如,3,5,7个等)的周期传输质量确定,例如,根据多个均值周期传输质量的标识中的众数确定。
综上所述,单个均值周期的周期传输质量的结果包括以下:
优:本均值周期的平均速度大于或等于阈值A(例如,50kb/s);或者,平均速率等于0、且上一个均值周期的周期传输质量为优。
差:平均速度小于阈值A、且不等于0;或者,平均速率等于0、且上一个均值周期的周期传输质量为差。
在确定各个均值周期的周期传输质量之后,在当前均值周期可以查看本均值周期以及本均值周期之前连续的M-1个均值周期的周期传输质量,在连续的M个均值周期的周期传输质量中,若存在至少N个均值周期的周期传输质量为差,则判定数据流的数据流传输质量为差。其中,N小于或等于M。若少于N个均值周期的周期传输质量为差,则判定数据流的数据流传输质量为优。
306b、流量管理模块周期性向决策模块上报当前QoE测量结果。
需要说明的是,应用A启动之后,流量上报模块可以周期性检测应用A使用的网络的网络质量,并周期性上报应用网络报文的通信参数和统计信息。流量管理模块根据应用网络报文的通信参数和统计信息周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果,直至应用A关闭。
也就是说,在应用A启动期间(或前台运行期间),流量上报模块一直在周期性检测应用A使用的网络的网络质量,流量管理模块一直在周期性进行网络质量评估得出QoE测量结果,并周期性向决策模块通知当前QoE测量结果。
即,步骤305-步骤306b在应用A启动期间(或前台运行期间)可以周期性执行。
306c、决策模块确定QoE测量结果为差(卡顿)时,向围栏管理模块上报QoE测量结果。
306d、围栏管理模块收到QoE测量结果为差的信息后,进行相应处理以获取卡顿围栏。
在一种可能的设计中,围栏管理模块接收到QoE测量结果为差的信息后,如图10所示,采集卡顿指纹信息,并可以通过蜂窝网络或Wi-Fi网络将卡顿指纹信息上报到云端(云服务器)。云端根据卡顿指纹信息计算生成卡顿围栏(构建卡顿围栏),并将卡顿围栏发送至围栏管理模块。其中,卡顿指纹信息可以包括时间戳、LAC、Cell ID、GPS信息、运营商标识、Wi-Fi连接列表、电子设备型号(例如,手机型号)等。
可选的,云端可以自学习提升卡顿围栏的精度。具体的,云端自学习是指云端动态更新卡顿围栏的数据,用户反馈的卡顿数据的数据量越大,云端生成卡顿围栏越精确,卡顿数据量较少时,云端生成的卡顿围栏精确度较低,或者无法生成卡顿围栏(比如生成卡顿围栏的条件可以包括同一个小区内的相邻2个卡顿点之间的距离要小于10米),卡顿围栏的边界阈值(卡顿围栏的大小)会随着卡顿点数量的增加进行更新。另外,对于预设时间(例如,14天)内不再上报卡顿点的区域,可以更新卡顿围栏边界或者删除对应的卡顿围栏数据。另外,如果2个小区的卡顿围栏距离比较近,可以聚类成一个卡顿围栏。云服务器可以将更新后的卡顿围栏数据库发送给电子设备。
在又一种可能的设计中,电子设备的围栏管理模块接收到QoE测量结果为差的信息后,如图11所示,电子设备的围栏管理模块可以采集卡顿指纹信息,然后可以根据卡顿指纹信息构建卡顿围栏。
可以理解的是,一个小区中可以有1个或多个网络卡顿点,当一个小区中存在不同数量的网络卡顿点时,电子设备或云端构建卡顿围栏的方法可以有所不同。其中,网络卡顿点(也可以称为卡顿点)是指发生网络卡顿的位置,例如蜂窝小区的边缘覆盖位置的信号质量较差,容易发生网络卡顿。
下面介绍在单个小区中有1个网络卡顿点的情形下构建卡顿围栏的方法。
示例性的,如图12所示,当单个小区(例如,小区00)内只有1个网络卡顿点(例如,卡顿点A)时,卡顿围栏可以为以卡顿点A为圆心,半径为R1的圆形区域S1。
可选的,卡顿围栏也可以是其他任何形状,如矩形、椭圆形、梯形等等,可以根据卡顿点的具体情况进行设置,而卡顿点也不一定要设置为卡顿围栏的中心,在此不做限制。
可选的,卡顿围栏可以小于小区00所覆盖的范围。
在一种可能的实现方式中,用户移动至小区00中的A点时,参考图13中的(a),电子设备检测到用户卡1网络卡顿时,可以通过GUI向用户发送“用户体验提升提醒”消息框801,提示用户当前位置“卡1网络卡顿,是否上报服务器以在下次到达此处前自动进行网络加速”。在电子设备检测到用户对消息框801的操作,例如检测到用户点击消息框中的“上报”控件8011时,电子设备可以将卡顿指纹信息上报至云服务器。
在另一种可能的实现方式中,电子设备在检测到用户网络卡顿时,也可以自动将当前位置的卡顿信息上报给服务器。参考图13中的(b),在用户开启网络加速功能时,电子设备可以显示图所示的“用户隐私提醒”消息框802,提示用户“是否允许本服务在您网络卡顿时获取您的位置信息、运营商标识以及小区标识等信息并上传至服务器,请确认?”,在电子设备检测到用户在消息框802的操作,例如检测到用户点击“允许”控件8021时,电子设备即在检测到电子设备网络卡顿时将卡顿信息上报至云服务器。此外,可以理解,当电子设备检测到用户点击“不允许”控件8022且勾选“不再提醒”复选框8023的操作后,电子设备在检测到网络卡顿时将不再自动上报云服务器。
可以理解,服务器可以接收多个电子设备上报的不同网络卡顿点的信息,生成不同运营商在不同小区的卡顿围栏,形成卡顿围栏数据库。卡顿围栏数据库中可以包括多个卡顿围栏,每个卡顿围栏可以对应一个Cell ID,即该卡顿围栏存在于该Cell ID指示的蜂窝小区中。
例如,参考图14,服务器30(即云服务器)可以从不同的电子设备,如电子设备10、电子设备11、……、电子设备n中接收不同运营商在不同小区的卡顿点的信息,例如电子设备10上报中国移动TM在小区00的卡顿点A,电子设备11上报中国移动TM在小区01的卡顿点P1和P2,电子设备n上报中国移动TM在小区n中的卡顿位置P3、P4、P5,并且服务器30可以根据卡顿点生成对应的卡顿围栏,加入卡顿围栏数据库。
可以理解,在一些实施例中,当用户经过卡顿围栏数据库中记录的卡顿点时,若该卡顿点网络不再卡顿,电子设备还可以将该信息上报给服务器30,服务器30将该卡顿点从卡顿围栏数据库中删除。
前述实施例介绍了单个小区中只有1个卡顿点的情形下,构建卡顿围栏的方法。但在实际情况中,单个小区可能会有多个卡顿点,下面分别介绍单个小区内有2个、2个以上卡顿点的情形下,构建卡顿围栏的方法。
可以理解,对于单个小区内有多个卡顿点情况,在卡顿点进行卡顿指纹信息上报与图13所示的方式相似,故在此不做限制。
下面介绍在单个小区中有2个网络卡顿点的情形下构建卡顿围栏的方法。
可以理解的,由于通信信号是由信号发射位置向四周传播或向某个扇形区域传播,在小区中有2个卡顿点时,可以认为2个卡顿点的周围区域会存在网络卡顿问题,并且两个卡顿点的连线间的区域也会卡顿,故可以将卡顿围栏设置为同时包括两个卡顿点的一个区域。例如,参考图15,以小区01中存在P1、P2两个卡顿点为例,卡顿围栏S2可以为包括分别以P1和P2为圆心且半径为R2圆形区域、以及以P1和P2的连线为对称轴,且长度为P1P2、宽度为L的矩形区域的区域。可选的,卡顿围栏S2也可以是其他形状,例如以P1和P2为焦点的椭圆区域、以P1P2为对角线的矩形区域等,本申请实施例不做限定。
下面以小区内有3个卡顿点为例介绍单个小区内有2个以上卡顿点的情形。
在一些实施例中,通信信号是由信号发射位置向四周传播或向某个扇形区域传播,因而在小区中有2个以上(例如,3个)卡顿点时,可以设置包含该2个以上卡顿点的区域为卡顿围栏。例如,可以设置以卡顿点中的至少3个为顶点的多边形区域为卡顿围栏。参考图16,小区n中有3个卡顿点P3、P4和P5,则卡顿围栏可以为以P3、P4、P5为顶点的三角形区域S3。
可以理解,在一些实施例中,以多个卡顿点中的至少3个为顶点的多边形区域可以为凸多边形区域,即在构建该凸多边形区域时若在引入一个顶点会导致多边形区域由凸多边形变为凹多边形时(即该顶点在其他顶点构成的多边形内部),则忽略该顶点。例如,图17示出的小区02中有卡顿点P6、P7、P8和P9,若以P6、P7、P8和P9为顶点的多边形区域为卡顿围栏,则该多边形区域为凹多边形。由于P9在三角形P6P7P8内部,导致卡顿围栏为凹多边形,此时忽略P9以三角形P6P7P8为卡顿围栏。
可选的,当小区中有2个以上卡顿点时,卡顿围栏也可以是其他形状,例如圆形、椭圆形等,本申请实施例不做限定。
在一种可能的设计中,当一个小区中存在多个卡顿点时,可以对卡顿点聚类成簇,根据每一簇卡顿点生成对应的卡顿围栏。若一个小区中的多个卡顿点可以被聚类为多簇,可以分别根据每簇卡顿点生成卡顿围栏。即一个小区中可以存着多个卡顿围栏。其中,聚类算法可以是基于层次密度的带噪声应用程序空间聚类(hierarchical density-basedspatial clustering of applications with noise,HDBSCAN)。当然,也可以采用其他聚类算法,本申请不做限定。
例如,如图18所示,若小区00中存在4个卡顿点,分别为A、P3、P4、P5。对该4个卡顿点进行聚类可以得到两簇卡顿点,一簇卡顿点包括P3、P4、P5,另一簇卡顿点包括A。可以根据P3、P4、P5构建卡顿围栏,例如卡顿围栏S3。可以根据A构建卡顿围栏,例如,卡顿围栏S1。
另外,应用A启动之后,还可以包括以下步骤:
307、应用A向网络加速服务模块发送注册请求,该注册请求用于请求卡顿围栏预测服务。
其中,注册请求可以携带应用A的标识以及需要注册的服务(卡顿围栏预测服务)的标识。卡顿围栏预测服务可以感知用户是否进入存在卡顿围栏的蜂窝小区,以及用户是否进入/即将进入卡顿围栏。应用A注册卡顿围栏预测服务后,可以获知用户是否进入存在卡顿围栏的蜂窝小区,以及用户是否进入/即将进入卡顿围栏。
308、网络加速服务模块向感知模块发送注册请求。
309、感知模块向围栏管理模块发送注册请求。
310、围栏管理模块记录注册卡顿围栏预测服务的应用信息,向感知模块发送注册结果。
围栏管理模块接收到应用A的注册请求后,对注册的应用进行鉴权和校验,例如可以进行以下判断:(1)查询应用配置库确定应用A是否支持网络加速;(2)确定应用A是否在前台运行;(3)确定应用A是否具备卡顿围栏预测权限。需要说明的是,应用A若需要注册卡顿围栏预测服务,首先可以在开发者网站(例如,荣耀开发者网站)上注册开发者,注册开发者成功后可以申请appid和卡顿围栏预测服务kit的权限。kit是一种用于向应用层(的应用程序)提供基础服务的软件开发工具包(software development kit,SDK)。后续感知模块检查应用A是否是荣耀开发者网站上注册过的合法用户,并且查看应用A是否具有卡顿围栏预测服务kit的权限(即卡顿围栏预测权限)。其中,具有卡顿围栏预测权限的应用可以从电子设备的操作系统获取卡顿围栏事件,根据卡顿围栏事件确定是否进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。
围栏管理模块对注册的应用鉴权和校验成功后,例如确定应用A支持网络加速,应用A在前台运行,且应用A具备卡顿围栏预测权限,可以记录应用A的应用信息。并且,围栏管理模块可以向感知模块课发送注册结果,注册结果为注册成功。这样,后续围栏管理模块检测到卡顿围栏事件后会通知给对应的注册者(例如,应用A)。
311、感知模块向网络加速服务模块发送注册结果。
312、网络加速服务模块向应用A发送注册结果。
313、围栏管理模块检测用户进入存在卡顿围栏的蜂窝小区。
举例来说,若用户在户外移动过程中,电子设备驻留的蜂窝小区发生切换,电子设备检测切换后的蜂窝小区是否存在卡顿围栏。
可以理解,在一些实施例中,当云服务器生成卡顿围栏数据库后,电子设备的围栏管理模块可以从云服务器获取卡顿围栏数据库,存储于电子设备的围栏管理模块中。当电子设备发生小区切换后,围栏管理模块可以在卡顿区域数据库中查询当前小区(切换后的小区)是否有卡顿围栏。在另一些实施例中,可以由云服务器检测用户是否进入存在卡顿围栏的蜂窝小区。例如,云服务器可以实时获取电子设备驻留的小区的Cell ID,根据卡顿围栏数据库判断当前小区是否存在卡顿围栏。
其中,卡顿围栏数据库中可以包括多个卡顿围栏,每个卡顿围栏可以对应一个Cell ID,即该卡顿围栏存在于该Cell ID指示的蜂窝小区中。若卡顿围栏数据库包括当前小区对应的Cell ID,可以认为当前小区存在卡顿围栏。
可选的,围栏管理模块确定当前小区存在卡顿围栏时,还可以预测用户是否会进入卡顿围栏,并可以计算用户当前与卡顿围栏的距离,从当前位置到达卡顿围栏的时间和预计通过卡顿围栏的用时等,并可以将这些信息发送给应用A,以便应用A根据这些信息进行相应处理。
其中,用户当前与卡顿围栏的距离,从当前位置到达卡顿围栏的时间和预计通过卡顿围栏的用时和用户的运动状态(也可以称为出行方式)和相应运动状态的速度是密切相关的。用户的运动状态可以是乘车/驾车、骑自行车、骑电动车、步行、跑步等,本申请不做限定。
在一种可能的设计中,围栏管理模块预测后续随用户移动围栏管理模块是否会进入卡顿围栏的方式可以是:围栏管理模块在确定当前小区存在卡顿围栏后,可以在电子设备的定位模块开启的情况下从定位模块获取电子设备的位置数据,并根据电子设备的位置数据预测用户的移动方向,并通过确定用户的移动方向所在的直线是否与卡顿围栏有交点预测用户是否会进入卡顿围栏。在预测到用户会进入卡顿围栏的情况下,围栏管理模块根据用户的位置数据确定用户的移动速度,再根据用户的移动速度预测用户到达卡顿围栏的时刻。
下面以电子设备为手机10为例,介绍单个小区内具有1个卡顿点的情况中,预测手机10是否会进入卡顿围栏的方式:
在本申请的一些实施例中,可以通过分析手机10进入小区前后的移动轨迹预测用户是否会进入该小区的卡顿围栏。其中,手机10的移动轨迹可以通过分析手机10自身定位所得的位置数据获得,例如手机10通过GPS定位获得的经纬度数据。示例性的,对于图19所示的场景,当用户携带手机10从C点进入小区00时,手机10可以获取用户从C点到D点的移动轨迹,并根据该移动轨迹确定直线CD,其中,直线CD可以通过以下的线性公式表示:
y=kx+b (1)
其中x、y为用户的位置信息,例如经纬度数据,k、b分别为根据x、y确定的直线CD的斜率和截距。
卡顿围栏S1的边界可以表示为圆Z:
(x-c)2+(y-d)2= R12 (2)
式中x,y为卡顿围栏边界的经纬度数据,c、d为卡顿点(A点)的经纬度数据,R1为卡顿围栏S1的以经纬度表征的半径。
此时,可以根据直线CD是否与圆Z有交点预测用户是否会进入卡顿围栏S1,例如,在一些实施例中,可联立公式(1)和公式(2),得到一元二次方程:
(x-c)2+(kx+b-d)2= R12 (3)
通过判断该一元二次方程(3)是否有解即可确定直线CD与圆Y是否有交点。
此外,可以理解,在其他实施例中,也可以采用其他位置数据预测用户是否会进入卡顿围栏。例如,可以建立一坐标系,在该坐标系下构建反应卡顿围栏边界的曲线,并确定在该坐标系下表示手机10的移动轨迹的坐标点的坐标值,然后采用上述相同的方式判断表示手机10移动方向的直线是否与反应卡顿围栏边界的曲线有交点,从而预测出用户是否会穿过卡顿围栏。
在确定直线CD和圆Z存在交点F和G时,可以推测手机10大概率会进入到卡顿围栏。
具体地,例如,在一些实施例中,可以根据距离D点最近的交点(例如点F)与D点之间的距离及用户在D点的速度预测用户到达F点的时间。
再例如,在一些实施例中,手机10可以获取手机10移动过程中的位置与手机10预测的用户移动轨迹与卡顿围栏S1的边界圆的交点的距离。
在上述确定手机10是否会移动至卡顿围栏的方案中,是通过求解表示手机10的移动方向的直线是否与卡顿围栏的边界有交点来确定的。本申请一些实施例还公开了另外一种确定手机10是否会移动至卡顿围栏的方案,即根据用户的移动轨迹所在的道路是否穿过卡顿围栏预测用户是否会进入卡顿围栏。
在一种可能的设计中,手机10在检测到小区00中有卡顿点时,还可以通过地图数据获取小区00中的道路信息,并在检测到用户是沿道路移动时,根据道路是否穿过卡顿围栏S1预测用户是否会进入卡顿围栏S1。参考图20,当手机10获取到用户从C’点到D’点的移动轨迹与道路的轨迹的相似度超过预设值时,可以认为用户沿道路行驶。此时,手机10可以确定道路是否穿过卡顿围栏S1。例如,在图20中,道路穿过卡顿围栏S1并与S1边界有交点F’和G’。手机10通过道路上D’和F’之间的路程及用户的移动速度即可确定用户到达F’点的时间。可以理解,手机10也可以获取用户的位置信息,并确定用户的位置信息与F点的路程。
在一些实施例中,手机10还可以在用户同意的情况下记录用户在小区内的历史移动轨迹,在手机10查询到当前小区有卡顿围栏时,根据该历史移动轨迹是否穿过卡顿围栏预测用户是否会进入卡顿围栏。例如,手机10可以记录用户上下班过程中在不同小区中的移动轨迹,参考图21,用户上下班过程中通过小区00时的移动轨迹为100,当用户从C”进入小区00时,在手机10检测到小区00中有卡顿围栏S1时,获取轨迹100,在轨迹100穿过卡顿围栏S1时,例如当轨迹100与卡顿围栏S1有交点F”和G”时,预测用户会进入卡顿围栏S1。此时,手机10可以根据用户在D”的移动速度以及轨迹100上D”点与F”点的路程确定用户到达F”点的时刻。
可以理解,在另一些实施例中,还可以采用其他方法预测用户是否会进入卡顿围栏S1,并在用户进入卡顿围栏S1前切换至中国联通TM的网络设备21上网,本申请实施例不做限定。
可以理解,单个小区内具有2个卡顿点的情况中,预测手机10是否会进入卡顿围栏以及确定何时切换手机10的上网卡的方式,与前面实施例中,单个小区内具有1个卡顿点的情况相同。例如,参考图22,当用户使用手机10上网并从H点进入小区01时,手机10从中国移动TM的网络设备20获取运营商标识(例如PLMN46000)和小区标识01,在卡顿围栏数据库中查询小区01中是否有卡顿围栏,在查询结果表示小区01中存在卡顿围栏S2后,手机10可以根据用户移动轨迹确定一条直线,并通过判断该直线是否与卡顿围栏S2的边界有交点预测用户是否会进入卡顿围栏S2。例如,在卡顿围栏为图22所示的卡顿围栏S2时,可以通过判断直线HI是否与以P1为圆心且半径为R2的圆弧、以P2为圆心且半径为R2的圆弧、线段L1L2、以及线段L3L4有交点,来预测用户是否会进入卡顿围栏S2。计算是否相交的方法与前文图19相关的实施例相同,故在此不再赘述。
可以理解,在另一些实施例中,手机10也可以获取小区01中的地图数据,根据用户移动轨迹判断用户是否沿地图数据中的道路移动,并在用户是沿道路移动时通过判断该道路是否穿过卡顿围栏S2预测用户是否进入卡顿围栏S2,具体方式可以参考前文中小区内只有单个卡顿点的情形的实施例,在此不再赘述。
此外,可以理解,在另一些实施例中,查询小区01中是否有卡顿围栏、预测用户是否会进入卡顿围栏中的部分或全部也可以由服务器30来执行,例如由手机10向云服务器发送小区10的小区标识和运营商标识,云服务器根据前述方法预测小区01中是否有卡顿围栏、预测用户是否会进入卡顿围栏并向手机10发送预测结果,本申请实施例不做限定。
可以理解,单个小区内具有2个以上卡顿点的情况中,预测手机10是否会进入卡顿围栏的方式,与前面实施例中,单个小区内具有2个卡顿点的情况相同。例如,参考图23,当用户使用手机10上网并从O点进入小区n时,手机10从中国移动TM的网络设备20获取运营商标识(例如PLMN:46000)和小区标识n,并在卡顿围栏数据库中查询小区01中是否有卡顿围栏,在查询结果表示小区n中存在卡顿围栏S3后,可以根据前述方法根据用户移动轨迹确定一条直线,并通过判断该直线是否与卡顿围栏S3的边界有交点预测用户是否会进入卡顿围栏S3。例如,在卡顿围栏为三角形卡顿围栏S3时,可以通过判断直线OQ是否与线段P3P4、线段P4P5、线段P5P3有交点,来预测用户是否会进入卡顿围栏S3,计算方法与前文相同,故在此不再赘述。
可以理解,在一些实施例中,手机10也可以获取小区n中的地图数据,根据用户移动轨迹判断用户是否沿地图数据中的道路移动,并在用户是沿道路移动时通过判断该道路是否穿过卡顿围栏S3预测用户是否进入卡顿围栏S3,具体可以参考前述小区内只有单个卡顿点的情形的实施例,在此不再赘述。
此外,可以理解,在另一些实施例中,查询小区n中是否有卡顿围栏、预测用户是否会进入卡顿围栏中的部分或全部也可以由云服务器来执行,例如由手机10向云服务器发送小区n的小区标识和运营商标识,云服务器根据前述方法预测用户是否会进入卡顿围栏,并将预测结果发送给手机10,本申请实施例不做限定。
在一些实施例中,围栏管理模块检测用户进入存在卡顿围栏的蜂窝小区的情况下,可以执行步骤314;在另一些实施例中,围栏管理模块检测用户进入存在卡顿围栏的蜂窝小区,且根据电子设备的位置数据预测用户会进入卡顿围栏的情况下,可以执行步骤314。
314、围栏管理模块向感知模块通知用户第一卡顿围栏事件。
第一卡顿围栏事件用于指示用户(电子设备)进入存在卡顿围栏的小区或进入存在卡顿围栏的Wi-Fi网络。
示例性的,第一卡顿围栏事件的格式可以如表4所示。
表4
如表4所示,第一卡顿围栏事件是以key-value键值对的格式存储的。第一卡顿围栏事件的关键字可以包括action、estimatedInterval、estimatedLagsDuration、probability等。其中,action用于指示用户是否进/出卡顿围栏,estimatedInterval用于指示用户预计还有多久进入卡顿区域,estimatedLagsDuration用于指示用户预计在卡顿区域内的持续时间,probability用于指示用户会进入卡顿围栏的可能性。
315、感知模块向网络加速服务模块通知第一卡顿围栏事件。
可选的,感知模块还可以向网络加速服务模块发送用户当前与卡顿围栏的距离,从当前位置到达卡顿围栏的时间和预计通过卡顿围栏的用时等信息。
316、网络加速服务模块向应用A通知第一卡顿围栏事件。
在一些实施例中,若应用A是缓存类应用,网络加速服务模块可以向应用A通知第一卡顿围栏事件,应用A可以进行提前缓存应用数据,以便后续用户进入卡顿围栏时可以继续顺畅地查看应用的相关内容(例如,继续刷短视频,继续看电影等)。其中,缓存类应用可以将要用到的资源提前从数据库或其他地方下载到内存,提高系统反应速度,增强用户体验满意度。
可选的,网络加速服务模块还可以向应用A发送用户当前与卡顿围栏的距离以及从当前位置到达卡顿围栏的时间等信息。
317、应用A接收到第一卡顿围栏事件,提前进行网络加速。
应用A接收到第一卡顿围栏事件,确定电子设备进入第一小区,应用A(第一应用)进行网络加速处理,网络加速处理包括提前缓存第一应用的运行数据、降低第一应用的帧率、降低第一应用的码率、降低第一应用的分辨率中的至少一种。
以应用A为视频类应用为例,应用A接收到第一卡顿围栏事件后,应用A可以提前缓存当前播放的视频或即将播放的视频,以减少后续视频卡顿现象,提升用户体验。可选的,应用A还可以降低当前视频的分辨率、码率、帧率等,以进一步减少后续视频卡顿现象。
可选的,应用A还可以根据用户当前与卡顿围栏的距离,从当前位置到达卡顿围栏的时间和预计通过卡顿围栏的用时等信息确定网络加速方式。仍以应用A为视频应用为例,若用户从当前位置到达卡顿围栏的时间大于第一预设阈值,当预计通过卡顿围栏的用时小于第二预设阈值时,应用A可以提前缓存当前播放的视频或即将播放的视频,并且将当前视频的分辨率降低到第一分辨率。若用户从当前位置到达卡顿围栏的时间小于第一预设阈值,当预计通过卡顿围栏的用时大于第二预设阈值时,应用A可以提前缓存当前播放的视频或即将播放的视频,并将当前视频的分辨率降低到第二分辨率,第二分辨率小于第一分辨率,以分配更多网络资源更快缓存视频。
318、围栏管理模块检测用户进入卡顿围栏。
围栏管理模块检测用户是否进入卡顿围栏的触发条件包括以下至少一项:(1)电子设备当前驻留的小区存在卡顿围栏;(2)电子设备是亮屏解锁状态;(3)电子设备前台运行业务(即有应用程序(例如,应用A)在前台运行);(4)电子设备的网络加速开关(例如,图3中的(d)所示的开关210)是开启状态;(5)荣耀智慧能力是开启状态。
在一些实施例中,电子设备检测到用户进入存在卡顿围栏的蜂窝小区的情况下,或者,电子设备检测到用户进入存在卡顿围栏的蜂窝小区且预测用户将进入卡顿围栏的情况下,可以继续定时检测(按照预设时间间隔周期性检测)用户的位置信息和运动速度,在检测到用户从卡顿围栏外部移动至卡顿围栏的边界处时,认为用户进入卡顿围栏。或者,电子设备可以获取电子设备在卡顿围栏外部移动过程中的位置与卡顿围栏的交点的距离,当该距离小于预设距离(例如,5米、3米、1米)时,认为用户进入卡顿围栏。
在一些实施例中,由于不同的运动状态下用户到达卡顿围栏的时间点是不同的(例如,若当前是乘车模式,用户10s后可以进入卡顿区域,则定位频率可以是2s/次;若当前为步行模式,用户60s后可以进入卡顿区域,则定位频率可以是10s/次),因此可以根据不同运动状态确定检测用户的位置信息的时间间隔长短/定位频率,用最少的定位次数准确的预测出用户的位置,避免用户已经进入卡顿围栏后才上报卡顿围栏事件,也避免多次定位浪费功耗。
在一些实施例中,若电子设备检测到用户进入存在卡顿围栏的蜂窝小区,且预测用户将进入卡顿围栏,但预测用户以当前出行方式(例如,乘车)通过卡顿围栏的时长小于预设时长(例如,5s),可以不再定时检测用户是否进入卡顿围栏。这是由于用户通过卡顿围栏的时长较短,卡顿围栏对用户的上网速率影响较小,此时无需定时检测用户是否进入卡顿围栏,避免功耗浪费。
319、围栏管理模块通知感知模块第二卡顿围栏事件。
第二卡顿围栏事件用于指示用户(电子设备)进入卡顿围栏。
在一些实施例中,若应用A是即时通信类应用(例如,网络游戏应用、即时通讯应用等),围栏管理模块还可以向应用A通知第二卡顿围栏事件。
以应用A为游戏类应用为例,应用A接收到第二卡顿围栏事件后,应用A可以切换游戏服务器、降低游戏帧率,以减少后续的卡顿现象,提升用户体验。
以应用A为即时通讯类应用为例,应用A接收到第二卡顿围栏事件后,应用A可以降低音频码率、视频的帧率、视频的分辨率中的至少一种,以减少后续的卡顿现象,提升用户体验。
可选的,围栏管理模块还可以向应用A发送用户预计通过卡顿围栏的用时等信息。应用A根据用户预计通过卡顿围栏的用时等信息确定降低游戏帧率的时长,预计用户通过卡顿围栏后可以及时提高游戏帧率,提升用户玩游戏的沉浸体验。
320、感知模块通知决策模块第二卡顿围栏事件。
321、决策模块接收到第二卡顿围栏事件后,执行系统加速策略,请求一条新的网络通道进行调优。
322、决策模块向路径管理模块发送更优路径请求。
其中,更优路径请求用于请求一条相比当前网络通道质量更优的网络通道。
323、路径管理模块激活并探测网络质量,确定存在相比当前网络通道质量更优的网络通道。
路径管理模块接收到决策模块发送的更优路径请求时,可以激活并探测各个网络通道的网络质量,确定是否存在相比当前网络通道质量更优的网络通道。
在实际应用中,若电子设备中设有2.4GHz频段的无线网卡1、5.0GHz频段的无线网卡2、运营商A的数据业务网卡1和运营商B的数据业务网卡2。可以默认无线网卡1或无线网卡2中的一个为主Wi-Fi,另一无线网卡为副Wi-Fi;默认运营商A的数据业务网卡1和运营商B的数据业务网卡2中的一个为主卡,另一个数据业务网卡为副卡。
作为示例,2.4GHz频段的网络通道为主Wi-Fi网络,5.0GHz频段的网络通道为辅Wi-Fi网络,数据业务网卡1对应的网络通道为主蜂窝网络,数据业务网卡2对应的网络通道为辅蜂窝网络。
在一种可能的设计中,在主Wi-Fi网络可用的情况下,系统默认电子设备或前台应用当前的主用网络为主Wi-Fi网络,在主Wi-Fi网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为主卡蜂窝网络。在主卡蜂窝网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为副Wi-Fi网络,在副Wi-Fi网络不可用的情况下,系统默认电子设备或前台应用当前的主用网络为副卡蜂窝网络。
在应用A开启后在前台运行时,应用A按照上述规则使用主用网络;即使应用A在前台时,系统将应用A中的部分数据流切换到其他网络上,在应用A切换到后台后,应用A中的数据流恢复使用系统默认的主用网络;在应用A从后台切换到前台后,应用A继续使用系统默认的主用网络。
路径管理模块可以按照主Wi-Fi、主卡网络、副Wi-Fi和副卡网络的顺序依次请求,直到找到一条可用且质量满足要求(网络质量优于当前正在使用的网络通道)的网络通道。
324、路径管理模块向决策模块通知质量更优的网络通道。
路径管理模块可以将上述可用且质量满足要求的网络的网络路径通知给决策模块。
325、决策模块向内核层的策略执行模块通知将应用A的数据流切换到更优的网络通道上。
即决策模块触发切换,以便将应用A的数据流切换到更优的网络通道上。
326、策略执行模块将应用A的数据流切换到更优的网络通道上。
在一种可能的设计中,若存在网络质量优于当前网络通道的网络通道,可以将应用A的部分数据流或全部数据流切换到该更优的网络通道上。这样,应用A可以通过更优的网络通道进行上网,可以提高用户体验。
在一些实施例中,决策模块可以向内核层的策略执行模块通知将应用A的数据流切换到多条质量较优(网络质量优于当前正在使用的网络通道)的网络通道上。策略执行模块将应用A的数据流切换到多条质量较优的网络通道上,以便应用A可以通过多条质量较优的网络通道进行上网,可以提高用户体验。
在一些实施例中,若应用A当前正在运行下载业务,可以拉起电子设备所有可用的网络通道并发进行下载。同时,可以根据对应网络速率情况进行负载均衡对应用A进行加速。
另外,若路径管理模块确定当前为单卡模式,即只存在一个网络通道,无法切换网络通道,可以不执行步骤324-326。路径管理模块可以通知决策模块不存在质量更优的网络通道,决策模块不执行系统加速策略。此种情况下,主要由前台应用(例如,应用A)执行网络加速处理,避免用户上文卡顿。
327、围栏管理模块检测到用户出卡顿围栏。
在一些实施例中,电子设备检测到用户进入卡顿围栏后,可以继续定时检测(按照预设时间间隔周期性检测)用户的位置信息和运动速度,在检测到用户从卡顿围栏内部移动至卡顿围栏的边界处时,认为用户出卡顿围栏。或者,电子设备可以获取电子设备在卡顿围栏内部移动过程中的位置与卡顿围栏的交点的距离,当该距离小于预设距离(例如,5米、3米、1米)时,认为用户出卡顿围栏。
328、围栏管理模块通知感知模块用户出卡顿围栏事件。
用户出卡顿围栏事件用于指示用户退出了卡顿围栏。
329、感知模块通知决策模块用户出卡顿围栏事件。
330、决策模块接收到用户出卡顿围栏事件后,恢复应用A的业务到原网络。
例如,若应用A进入卡顿围栏前使用第一蜂窝网络,进入卡顿围栏后切换到第二蜂窝网络,则用户出卡顿围栏后,可以继续使用第一蜂窝网络(即从第二蜂窝网络切换回第一蜂窝网络)。又例如,若应用A进入卡顿围栏前使用第一Wi-Fi网络,进入卡顿围栏后切换到第二Wi-Fi网络,则用户出卡顿围栏后,可以继续使用第一Wi-Fi网络(即从第二Wi-Fi网络切换回第一Wi-Fi网络)。
当应用A停止运行或切换到后台时,可以执行以下步骤:
331、应用A向网络加速服务模块发送去注册请求,请求停止卡顿围栏预测服务。
332、网络加速服务模块向感知模块发送去注册请求。
333、感知模块向围栏管理模块发送去注册请求,通知围栏管理模块停止应用A的卡顿围栏预测服务。
334、围栏管理模块停止应用A的卡顿围栏预测服务,不再向应用A通知用户是否进入卡顿围栏。
335、感知模块向决策模块通知停止应用A的网络加速和QoE测量。
感知模块感知到应用A停止运行或切换到后台或接收到应用A发送的去注册请求后,通知决策模块停止对该应用进行网络加速,恢复数据流,释放已请求的网络。
336、决策模块向策略执行模块通知停止应用A的网络加速和QoE测量。
337、策略执行模块停止应用A的网络加速和QoE测量。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于本申请实施例提供的网络加速方法,可以在用户还未感受到上网卡顿时提前进行网络加速处理,以降低应用出现上网卡顿的概率,更好地提升用户的上网体验。本申请实施例可以针对卡顿围栏进行多级预测,针对不同级别的预测结果执行不同的网络加速处理。具体的,电子设备可以检测当前是否连接到(切换到)存在卡顿围栏的蜂窝小区(第一级预测)。当检测到用户的电子设备连接到(切换到)存在卡顿围栏的蜂窝小区,电子设备的操作系统可以向当前正在运行的应用(例如,第一应用)通知第一卡顿围栏事件,第一卡顿围栏事件可以用于指示用户(电子设备)进入存在卡顿围栏的小区,使得当前正在运行的应用可以进行提前缓存应用数据和/或降低分辨率等处理,以便后续用户进入卡顿围栏时可以继续顺畅地查看应用的相关内容(例如,继续刷短视频,继续看电影等)。进一步的,检测到用户的电子设备连接到(切换到)存在卡顿围栏的蜂窝小区,可以继续定时检测用户是否进入卡顿围栏(第二级预测)。当检测到用户进入卡顿围栏时,电子设备可以将应用的数据流从蜂窝网络1切换到网络信号质量更好的蜂窝网络2,从而保证了用户在卡顿围栏依然能有流畅的上网体验,大大降低了应用的上网卡顿概率,能更好地提升用户的上网体验。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时可实现上述各个方法实施例中的步骤。
本申请实施例还提供了一种计算机程序产品,当计算机程序产品在第一设备上运行时,使得第一设备可实现上述各个方法实施例中的步骤。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够将计算机程序代码携带到第一设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实施例还提供了一种芯片系统,芯片系统包括处理器,处理器与存储器耦合,处理器执行存储器中存储的计算机程序,以实现本申请任一方法实施例的步骤。芯片系统可以为单个芯片,或者多个芯片组成的芯片模组。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (29)
1.一种网络加速方法,其特征在于,应用于电子设备,包括:
所述电子设备运行第一应用;
当所述电子设备进入第一小区时,所述电子设备的所述第一应用进行网络加速处理,所述网络加速处理包括提前缓存所述第一应用的运行数据、降低所述第一应用的帧率、降低所述第一应用的码率、降低所述第一应用的分辨率中的至少一种;
其中,所述第一小区中包括卡顿围栏,所述卡顿围栏包括至少一个卡顿点,当所述电子设备处于所述卡顿点时,所述电子设备当前连接的第一蜂窝网络的上网参数满足预设条件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述电子设备进入所述第一小区时,获取所述第一电子设备的位置信息和运动速度;
所述第一电子设备根据所述位置信息、所述运动速度以及所述卡顿围栏的信息预测所述电子设备进入所述卡顿围栏的时刻;
在所述电子设备进入所述卡顿围栏的时刻,所述电子设备进行系统加速处理;
其中,所述系统加速处理包括:将所述电子设备当前连接的所述第一蜂窝网络切换为第二蜂窝网络,所述第二蜂窝网络在所述卡顿围栏的通信质量高于所述第一蜂窝网络。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述电子设备进入所述卡顿围栏的时刻,所述电子设备的所述第一应用进行网络加速处理,所述网络加速处理包括提前缓存所述第一应用的运行数据、降低所述第一应用的帧率、降低所述第一应用的码率、降低所述第一应用的分辨率中的至少一种。
4.根据权利要求2所述的方法,其特征在于,在将所述电子设备当前连接的所述第一蜂窝网络切换为第二蜂窝网络后,所述方法还包括:
所述第一电子设备显示切换蜂窝网络的提示信息。
5.根据权利要求2所述的方法,其特征在于,在获取所述第一电子设备的位置信息和运动速度后,所述方法还包括:
预测所述第一电子设备是否将在移动过程中进入所述卡顿围栏。
6.根据权利要求5所述的方法,其特征在于,通过以下方式预测所述第一电子设备是否将在移动过程中进入所述卡顿围栏:
获取所述第一电子设备在移动过程中的历史位置数据,并根据所述历史位置数据确定所述第一电子设备的移动轨迹所在的直线;
在所述直线与所述卡顿围栏的边界有交点的情况下,预测所述第一电子设备在移动过程中将进入所述卡顿围栏。
7.根据权利要求5所述的方法,其特征在于,通过以下方式预测所述第一电子设备是否将在移动过程中进入所述卡顿围栏:
在所述第一电子设备沿实际道路移动,并且所述实际道路穿过所述卡顿围栏的情况下,预测出所述第一电子设备在移动过程中将进入所述卡顿围栏。
8.根据权利要求5所述的方法,其特征在于,通过以下方式预测所述第一电子设备是否将在移动过程中进入所述卡顿围栏:
获取所述第一电子设备在所述第一小区的历史移动轨迹,确定所述历史移动轨迹穿过所述卡顿围栏的情况下,预测所述第一电子设备在移动过程中将进入所述卡顿围栏。
9.根据权利要求2-8任一项所述的方法,其特征在于,所述第一电子设备将第一蜂窝网络切换为第二蜂窝网络的位置满足以下条件中的至少一项:
所述位置与所述卡顿围栏边界上的点之间的最小直线距离小于第一预设距离;
所述位置与所述卡顿围栏边界上的点之间的最小实际路程小于预设路程;
所述第一电子设备从所述位置移动至所述卡顿围栏的时间小于预设时间;
所述位置与所述卡顿围栏中离所述位置最近的卡顿点的距离小于第二预设距离。
10.根据权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备在第一位置处检测到所述电子设备的上网参数满足所述预设条件的情况下,向云服务器发送第一卡顿点信息;
其中,所述第一卡顿点信息包括所述电子设备到达所述第一位置的时间戳、所述第一位置对应的地区区域码LAC、信号塔标识CellID、所述第一蜂窝网络的运营商标识、所述电子设备的设备型号以及所述第一位置的位置信息中的至少一种。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
所述第一电子设备从所述云服务器获取卡顿围栏数据库,所述卡顿围栏数据库包括至少一个卡顿围栏对应的小区的小区标识和运营商标识;
所述第一电子设备根据所述第一蜂窝网络的运营商标识和所述第一小区的小区标识,从所述卡顿围栏数据库中确定所述第一小区是否存在卡顿围栏。
12.根据权利要求1-11任一项所述的方法,其特征在于,所述预设条件包括以下条件中的至少一项:
所述第一蜂窝网络的接收信号强度指示小于信号强度预设值;
所述第一蜂窝网络的参考信号接收功率小于功率预设值;
所述第一蜂窝网络的参考信号接收质量小于质量预设值;
所述第一蜂窝网络的信号与干扰加噪比小于加噪比预设值;
所述第一蜂窝网络的传输时延大于时延预设时延值;
所述第一蜂窝网络的传输速率小于速率预设值。
13.根据权利要求2-12任一项所述的方法,其特征在于,所述方法还包括:
所述第一电子设备在离开所述第一小区的卡顿围栏后,切换至使用所述第一蜂窝网络进行数据业务传输。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
所述第一电子设备在切换至使用所述第一蜂窝网络进行数据业务传输后,提示所述第一电子设备的用户已穿过所述卡顿围栏,第一电子设备已恢复至采用所述第一蜂窝网络进行数据业务传输。
15.根据权利要求1-14任一项所述的方法,其特征在于,所述电子设备包括感知模块,所述方法还包括:
所述感知模块感知到所述第一应用启动,查询所述第一应用是否支持网络加速;
其中,所述感知模块中包括应用配置库,所述应用配置库中存储了多个应用程序是否支持网络加速的信息,所述多个应用程序包括所述第一应用。
16.根据权利要求15所述的方法,其特征在于,
所述应用配置库中的所述多个应用程序是基于用户流量消耗情况和用户对应用的使用偏好确定出的需要网络加速的应用程序;或者
所述应用配置库中的所述多个应用程序是基于用户的手动设置确定出的需要网络加速的应用。
17.根据权利要求15或16所述的方法,其特征在于,所述电子设备还包括决策模块,所述方法还包括:
若确定所述第一应用支持网络加速,所述感知模块向所述决策模块发送网络质量评估请求,所述网络质量评估请求中包括所述第一应用的应用标识、应用的配置信息以及网络质量评估的标准,所述应用的配置信息包括所述第一应用传输数据流时的数据包的头部特征。
18.根据权利要求17所述的方法,其特征在于,所述电子设备的内核层还包括流量上报模块,所述方法还包括:
所述决策模块向所述流量上报模块注册报文监测钩子,所述报文监测钩子用于周期性监测所述第一应用使用的网络通道传输的数据流的通信参数和统计信息;
其中,所述通信参数包括协议类型、源网际协议IP地址和端口/目的IP地址和端口、报文特征中的至少一项,所述统计信息包括往返时延RTT、丢包率、收发字节数、速率中的至少一项。
19.根据权利要求18所述的方法,其特征在于,所述电子设备还包括流量管理模块,所述方法还包括:
所述流量上报模块向所述流量管理模块周期性上报所述第一应用的数据流的所述通信参数和所述统计信息;
所述流量管理模块根据所述通信参数和所述统计信息周期性进行网络质量评估得出当前体验质量QoE测量结果;
所述流量管理模块周期性向所述决策模块上报所述当前QoE测量结果。
20.根据权利要求19所述的方法,其特征在于,所述电子设备还包括围栏管理模块,若所述QoE测量结果为卡顿,所述方法还包括:
所述决策模块向所述围栏管理模块上报卡顿信息;
所述围栏管理模块接收到所述卡顿信息后,向云服务器发送所述第一卡顿点信息。
21.根据权利要求20所述的方法,其特征在于,所述电子设备还包括网络加速服务模块,所述方法还包括:
所述第一应用向所述网络加速服务模块发送注册请求,所述注册请求用于请求卡顿围栏预测服务,所述卡顿围栏预测服务用于指示所述第一应用用户是否进入存在卡顿围栏的蜂窝小区,以及用户是否进入卡顿围栏;
所述网络加速服务模块向所述感知模块发送所述注册请求;
所述感知模块向所述围栏管理模块发送所述注册请求。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
所述围栏管理模块接收所述注册请求后,若确定所述第一应用支持网络加速,所述第一应用在前台运行,且所述第一应用具备卡顿围栏预测权限,记录所述第一应用的应用信息,向所述感知模块发送注册结果,所述注册结果为成功;
所述感知模块向所述网络加速服务模块发送所述注册结果;
所述网络加速服务模块向所述第一应用发送所述注册结果。
23.根据权利要求21或22所述的方法,其特征在于,
所述围栏管理模块检测用户进入所述第一小区;
所述围栏管理模块向所述感知模块通知第一卡顿围栏事件;
所述感知模块向所述网络加速服务模块通知所述第一卡顿围栏事件;
所述网络加速服务模块向所述第一应用通知所述第一卡顿围栏事件;
所述电子设备的所述第一应用进行网络加速处理包括:
所述第一应用接收到所述第一卡顿围栏事件,进行所述网络加速处理。
24.根据权利要求23所述的方法,其特征在于,所述电子设备还包括策略执行模块和路径管理模块,
所述围栏管理模块确定用户进入所述卡顿围栏,向所述感知模块通知第二卡顿围栏事件;
所述感知模块通知所述决策模块所述第二卡顿围栏事件;
所述决策模块接收到所述第二卡顿围栏事件后,向所述路径管理模块发送更优路径请求,所述更优路径请求用于请求一条相比当前网络通道质量更优的网络通道;
所述路径管理模块激活并探测各个网络通道的网络质量,确定存在相比当前网络通道质量更优的网络通道,向所述决策模块通知所述更优的网络通道;
所述决策模块指示所述策略执行模块将所述第一应用的数据流切换到所述更优的网络通道上,所述更优的网络通道是所述第二蜂窝网络对应的网络通道;
所述策略执行模块将所述第一应用的数据流切换到所述第二蜂窝网络对应的网络通道。
25.根据权利要求24所述的方法,其特征在于,所述方法还包括:
所述围栏管理模块检测到用户出卡顿围栏,向所述感知模块通知用户出卡顿围栏事件;
所述感知模块通知所述决策模块所述用户出卡顿围栏事件;
所述决策模块接收到所述用户出卡顿围栏事件后,将所述第一应用的数据流从所述第二蜂窝网络切换回所述第一蜂窝网络。
26.根据权利要求21-25任一项所述的方法,其特征在于,所述第一应用切换到后台或关闭时,所述方法还包括:
所述第一应用向网络加速服务模块发送去注册请求,所述去注册请求用于请求停止卡顿围栏预测服务;
所述网络加速服务模块向感知模块发送去所述注册请求;
所述感知模块向围栏管理模块发送所述去注册请求;
所述围栏管理模块停止所述第一应用的卡顿围栏预测服务,不再向所述第一应用通知用户是否进入存在卡顿围栏的小区,以及是否进入卡顿围栏。
27.根据权利要求25或26所述的方法,其特征在于,所述方法还包括:
所述感知模块向所述决策模块通知停止所述第一应用的QoE测量;
所述决策模块向所述策略执行模块通知停止所述第一应用的QoE测量;
所述策略执行模块停止所述第一应用的QoE测量。
28.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于运行存储器中存储的计算机程序,以使得所述电子设备实现如权利要求1至27任一项所述的方法。
29.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储计算机程序,所述计算机程序在处理器上运行时实现如权利要求1至27任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211267458.4A CN116709367B (zh) | 2022-10-17 | 2022-10-17 | 一种网络加速方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211267458.4A CN116709367B (zh) | 2022-10-17 | 2022-10-17 | 一种网络加速方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116709367A true CN116709367A (zh) | 2023-09-05 |
CN116709367B CN116709367B (zh) | 2024-07-12 |
Family
ID=87828102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211267458.4A Active CN116709367B (zh) | 2022-10-17 | 2022-10-17 | 一种网络加速方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116709367B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130157628A1 (en) * | 2009-01-15 | 2013-06-20 | Dt Systems, Inc. | Smart phone based electronic fence system |
CN109819040A (zh) * | 2019-02-02 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 应用数据缓存方法、装置、智能终端及存储介质 |
CN113747347A (zh) * | 2021-07-26 | 2021-12-03 | 荣耀终端有限公司 | 电子设备及其上网卡切换方法、可读介质 |
CN113810938A (zh) * | 2021-06-29 | 2021-12-17 | 荣耀终端有限公司 | 通道切换方法、电子设备及存储介质 |
CN114173372A (zh) * | 2020-09-10 | 2022-03-11 | 华为技术有限公司 | 数据缓存方法及电子设备 |
CN114268998A (zh) * | 2020-09-16 | 2022-04-01 | 华为技术有限公司 | 数据缓存方法及相关装置 |
-
2022
- 2022-10-17 CN CN202211267458.4A patent/CN116709367B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130157628A1 (en) * | 2009-01-15 | 2013-06-20 | Dt Systems, Inc. | Smart phone based electronic fence system |
CN109819040A (zh) * | 2019-02-02 | 2019-05-28 | 腾讯科技(深圳)有限公司 | 应用数据缓存方法、装置、智能终端及存储介质 |
CN114173372A (zh) * | 2020-09-10 | 2022-03-11 | 华为技术有限公司 | 数据缓存方法及电子设备 |
CN114268998A (zh) * | 2020-09-16 | 2022-04-01 | 华为技术有限公司 | 数据缓存方法及相关装置 |
CN113810938A (zh) * | 2021-06-29 | 2021-12-17 | 荣耀终端有限公司 | 通道切换方法、电子设备及存储介质 |
CN113747347A (zh) * | 2021-07-26 | 2021-12-03 | 荣耀终端有限公司 | 电子设备及其上网卡切换方法、可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116709367B (zh) | 2024-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020143380A1 (zh) | 一种数据传输方法及电子设备 | |
WO2021115007A1 (zh) | 一种网络切换方法及电子设备 | |
CN113795040B (zh) | 通道切换方法、电子设备及存储介质 | |
CN113810938B (zh) | 通道切换方法、电子设备及存储介质 | |
CN114172791B (zh) | 通道切换方法、电子设备及存储介质 | |
CN115484648B (zh) | 通道切换方法、电子设备及存储介质 | |
CN110913424A (zh) | 网络连接控制方法和装置、终端、计算机存储介质 | |
CN113890905B (zh) | 通道切换方法、电子设备及存储介质 | |
CN116235535A (zh) | 数据缓存方法及电子设备 | |
US20230284059A1 (en) | Measurement feedback method and apparatus, network device, terminal, and storage medium | |
US20230344740A1 (en) | Sla performance prediction method and related apparatus, and device | |
CN116709367B (zh) | 一种网络加速方法和装置 | |
CN113810965B (zh) | 通道切换方法、电子设备及存储介质 | |
CN116709442A (zh) | 一种无线网络切换方法和电子设备 | |
CN116744328B (zh) | 一种网络加速方法和装置 | |
CN116709368B (zh) | 一种网络加速方法和装置 | |
CN117915356A (zh) | 一种网络加速方法和装置 | |
CN116709369B (zh) | 一种网络加速方法及电子设备 | |
CN116405960B (zh) | 一种网络质量的检测方法及相关电子设备 | |
RU2811567C1 (ru) | Способ переключения каналов, электронное устройство и носитель данных | |
CN116709369A (zh) | 一种网络加速方法及电子设备 | |
CN116744329A (zh) | 一种网络加速方法和电子设备 | |
CN116155729A (zh) | 基于用户流量画像的网络加速方法及相关电子设备 | |
CN116347665A (zh) | 网络加速的处理方法及电子设备 | |
CN116962794A (zh) | 应用优化方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |