CN115412505B - 数据流量限制方法、装置、电子设备及非易失性存储介质 - Google Patents

数据流量限制方法、装置、电子设备及非易失性存储介质 Download PDF

Info

Publication number
CN115412505B
CN115412505B CN202211353018.0A CN202211353018A CN115412505B CN 115412505 B CN115412505 B CN 115412505B CN 202211353018 A CN202211353018 A CN 202211353018A CN 115412505 B CN115412505 B CN 115412505B
Authority
CN
China
Prior art keywords
application
target
process set
data
flow
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.)
Active
Application number
CN202211353018.0A
Other languages
English (en)
Other versions
CN115412505A (zh
Inventor
邹元飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yikatong Shanghai Technology Co ltd
Ecarx Hubei Tech Co Ltd
Original Assignee
Yikatong Shanghai Technology Co ltd
Ecarx Hubei Tech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yikatong Shanghai Technology Co ltd, Ecarx Hubei Tech Co Ltd filed Critical Yikatong Shanghai Technology Co ltd
Priority to CN202211353018.0A priority Critical patent/CN115412505B/zh
Publication of CN115412505A publication Critical patent/CN115412505A/zh
Application granted granted Critical
Publication of CN115412505B publication Critical patent/CN115412505B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2458Modification of priorities while in transit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种数据流量限制方法、装置、电子设备及非易失性存储介质。其中,该方法包括:按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;依据进程集合的优先级从至少一个进程集合中确定目标进程集合;监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。本申请解决了由于目前大多系统未对用户使用的数据流量进行限制,造成的网络带宽不足、前台应用无法以最优方式进行流量传输的技术问题。

Description

数据流量限制方法、装置、电子设备及非易失性存储介质
技术领域
本申请涉及数据处理技术领域,具体而言,涉及一种数据流量限制方法、装置、电子设备及非易失性存储介质。
背景技术
随着网络技术的不断发展和普及,产生的数据量也呈指数级增长,数据处理所需消耗的资源也日趋庞大,例如,在对数据流量进行上下行传输时,需要占用网络带宽资源,由于当前网络的可用带宽是有限的,因此资源的高效利用就显得至关重要。
目前,大部分系统中不存在对用户使用的数据流量的限制,随着系统越来越复杂,系统中传输的数据流量不断增长,往往存在由于网络宽带不足,造成前台应用无法以最优方式进行流量传输,导致用户体验效果不佳的问题。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据流量限制方法、装置、电子设备及非易失性存储介质,以至少解决由于目前大多系统未对用户使用的数据流量进行限制,造成的网络带宽不足、前台应用无法以最优方式进行流量传输的技术问题。
根据本申请实施例的一个方面,提供了一种数据流量限制方法,包括:按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;依据进程集合的优先级从至少一个进程集合中确定目标进程集合;监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。
可选地,按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合包括:获取应用进程所属账户的用户标识和所属用户标识对应的应用标识,其中,用户标识用于标识一个唯一确定的用户账号;获取具有相同用户标识的应用进程中应用标识相同的应用进程,得到进程集合。
可选地,依据进程集合的优先级从至少一个进程集合中确定目标进程集合包括:依据应用进程的运行状态,确定进程集合的优先级;依据优先级,确定目标进程集合。
可选地,运行状态包括:前台运行、后台运行,依据应用进程的运行状态,确定进程集合的优先级包括:在进程集合中存在运行状态为前台运行的应用进程的情况下,确定进程集合的优先级为第一等级;在进程集合中存在运行状态为后台运行的应用进程的情况下,确定进程集合的优先级为第二等级;以及,第一等级的进程集合的优先级高于第二等级的进程集合。
可选地,确定进程集合的优先级还包括:获取预设核心进程文件中的预设应用标识;比较应用进程对应的应用标识与预设应用标识,确定应用标识与预设应用标识一致的应用进程为指定应用进程;在进程集合中存在指定应用进程的情况下,确定进程集合的优先级为第三等级;以及,第三等级的进程集合的优先级高于第一等级的进程集合,并且,在进程集合的优先级为第三等级的情况下,禁止对进程集合中的应用进程进行流量限制。
可选地,依据应用进程的运行状态,确定应用进程集合的优先级,包括:在目标区域内存在多个用户账号和多个显示设备的情况下,绑定用户账号与登录用户账号的显示设备,其中,目标区域为目标车辆的车内区域,多个显示设备至少包括:位于目标车辆的司机座位前的显示屏幕、位于目标车辆的乘客座位前的显示屏幕;在多个用户账号使用同一个应用程序的情况下,依据绑定于同一显示设备的用户账户的应用进程的运行状态,确定进程集合的优先级;其中,绑定于不同显示设备的用户账户下与应用程序对应的应用进程相互独立。
可选地,流量数据包括目标数据的字节数,其中,目标数据为应用进程计划发送或接收的数据,依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态包括:确定目标流量限制速率;依据目标流量限制速率、可用带宽及目标数据的字节数,计算得到休眠时间,其中,休眠时间用于表征从调用传输接口对目标数据进行传输的时刻至下一次调用传输接口的时刻之间需要等待的时间;配置传输接口的参数,使传输接口按照休眠时间传输目标数据,从而实现对目标进程集合中应用进程的流量传输速率的限制。
可选地,配置传输接口的参数,使传输接口按照休眠时间传输目标数据,从而实现对目标进程集合中应用进程的流量传输速率的限制还包括:重构传输接口对应的流量控制函数,得到第一流量控制函数;在调用传输接口对目标数据进行传输的情况下,配置第一流量控制函数的目标参数,得到第二流量控制函数;依据第二流量控制函数,限制目标进程集合中应用进程的流量传输速率。
根据本申请实施例的另一个方面,还提供了一种数据流量限制方法,包括:从系统中运行的应用中确定目标应用;确定目标应用的目标进程集合,其中,目标进程集合包括目标应用的应用进程;监测网络传输通道的可用带宽和目标应用的流量数据,其中,网络传输通道用于为目标应用的应用进程提供数据流量的网络传输服务;依据流量数据和可用带宽,限制目标应用的流量传输状态。
根据本申请实施例的另一个方面,还提供了一种数据流量限制装置,包括:进程划分模块,用于按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;级别确定模块,用于依据进程集合的优先级从至少一个进程集合中确定目标进程集合;流量监测模块,用于监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;流量限制模块,用于依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。
根据本申请实施例的又一方面,还提供了一种电子设备,电子设备包括存储器和处理器,处理器用于运行程序,其中,程序运行时执行数据流量限制方法。
根据本申请实施例的再一方面,还提供了一种非易失性存储介质,非易失性存储介质包括存储的计算机程序,其中,非易失性存储介质所在设备通过运行计算机程序执行数据流量限制方法。
在本申请实施例中,采用按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;依据进程集合的优先级从至少一个进程集合中确定目标进程集合;监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态的方式,通过划分同一个用户账号下相同包名的进程,设置各个进程组对应的优先级,并通过重构传输接口对应流量控制函数来对目标进程分组中进程的进行流量限制,达到了精确限制在后台运行的进程的数据流量的目的,进而解决了由于目前大多系统未对用户使用的数据流量进行限制,造成的网络带宽不足、前台应用无法以最优方式进行流量传输技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例提供的一种数据流量限制的方法流程的示意图;
图2是根据本申请实施例提供的一种应用进程及其包名的示意图;
图3是根据本申请实施例提供的一种流量控制的方法流程的示意图;
图4是根据本申请实施例提供的一种流量上下行控制的方法流程的示意图;
图5是根据本申请实施例提供的一种执行数据流量限制方法的框架的结构示意图;
图6是根据本申请实施例提供的一种用户和屏幕绑定后的结果示意图;
图7是根据本申请实施例提供的另一种数据流量限制的方法流程的示意图;
图8是根据本申请实施例提供的一种数据流量限制装置的结构示意图;
图9是根据本申请实施例提供的一种用于实现数据流量限制的方法的计算机终端(或电子设备)的硬件结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
为了方便本领域技术人员更好地理解本申请实施例,现将本申请实施例涉及的部分技术术语或者名词解释如下:
套接字(Socket):是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象,是应用程序通过网络协议进行通信的接口,套接口工作过程如下:服务器首先启动,通过调用socket()建立一个套接口,然后调用bind()将该套接口和本地网络地址联系在一起,再调用listen()使套接口做好侦听的准备,并规定它的请求队列的长度,之后就调用accept()来接收连接.客户在建立套接口后就可调用connect()和服务器建立连接.连接一旦建立,客户机和服务器之间就可以通过调用read()和write()来发送和接收数据.最后,待数据传送结束后,双方调用close()关闭套接口。
init进程,它是内核启动的第一个用户级进程。init有许多重要的任务,例如,启动getty(用于用户登录)、实现运行级别、以及处理孤立进程。
复刻(fork)是UNIX或类UNIX中的分叉函数,fork函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。
zygote进程:在系统启动的时候就会产生,它会完成虚拟机的初始化,库的加载、预制类库和初始化的操作。
app_process :是 Android 上的一个原生程序,是 APP 进程的主入口点。
应用程序框架层(Framework,FWK):是直接应用之下的一层,这一层是核心应用程序所使用的API框架,为应用层提供各种API,提供各种组件和服务来支持我们的Android开发,包括ActivityManager,WindowManager,ViewSystem等。
SystemServer:由zygote fork生成的,进程名为system_server,该进程承载着framework的核心服务。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本申请实施例,提供了一种数据流量限制的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本申请实施例提供的一种数据流量限制的方法流程的示意图,如图1所示,该方法包括如下步骤:
步骤S102,按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;
为保证在进行流量限制时不对应用进程整体运行造成影响,按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合包括:获取应用进程所属账户的用户标识和所属用户标识对应的应用标识,其中,用户标识用于标识一个唯一确定的用户账号;获取具有相同用户标识的应用进程中应用标识相同的应用进程,得到进程集合。
在本实施例中,上述应用标识为包名。
具体地,对同一个用户账号下相同包名进行分组,归为一类,例如,图2是根据本申请实施例提供的一种应用进程及其包名的示意图,如图2所示,用户u10_a127对应的同一个com.tencent.wecarflow包名下有两个进程分别为1896和2077,因此,在对com.tencent.wecarflow 包名限制流量时,需要将两个进程分为一个组一起进行限制,从而确保在进行流量限制时,避免因限制流量不全对应用进程整体方案造成影响,使该应用本身访问流量出现偏差。
步骤S104,依据进程集合的优先级从至少一个进程集合中确定目标进程集合,其中,目标进程集合为计划进行数据流量限制的应用进程集合;
在本申请的一些实施例中,依据进程集合的优先级从至少一个进程集合中确定目标进程集合包括:依据应用进程的运行状态,确定进程集合的优先级;依据优先级,确定目标进程集合。
在本实施例中,所述优先级由importance值来表示,importance值越小,该importance值所对应的应用进程的优先级越高。
作为一种可选的实施例,运行状态包括:前台运行、后台运行,依据应用进程的运行状态,确定进程集合的优先级包括:在进程集合中存在运行状态为前台运行的应用进程的情况下,确定进程集合的优先级为第一等级;在进程集合中存在运行状态为后台运行的应用进程的情况下,确定进程集合的优先级为第二等级;以及,第一等级的进程集合的优先级高于第二等级的进程集合。
为了确保系统中的核心进程不受流量限制影响,获取预设核心进程文件中的预设应用标识;比较应用进程对应的应用标识与预设应用标识,确定应用标识与预设应用标识一致的应用进程为指定应用进程;在进程集合中存在指定应用进程的情况下,确定进程集合的优先级为第三等级;以及,第三等级的进程集合的优先级高于第一等级的进程集合,并且,在进程集合的优先级为第三等级的情况下,禁止对进程集合中的应用进程进行流量限制。
在本实施例中,上述预设应用标识为预设包名,上述指定应用进程为系统核心进程。
具体地,对系统核心进程进行保护,不限制核心进程的流量,定义一个文件,该文件包含上述预设包名,该文件存储于存储介质中一个不可擦除的分区。在系统开始运行后,从分区中读取该文件进行解析,将解析后的预设包名保存到一个集合中,流并在流量限制时进行匹配,对于匹配成功的包名所对应的进程不作流量限制。
在多用户下多屏的场景下,依据应用进程的运行状态,确定应用进程集合的优先级,包括:在目标区域内存在多个用户账号和多个显示设备的情况下,绑定用户账号与登录用户账号的显示设备,其中,目标区域为目标车辆的车内区域,多个显示设备至少包括:位于目标车辆的司机座位前的显示屏幕、位于目标车辆的乘客座位前的显示屏幕;在多个用户账号使用同一个应用程序的情况下,依据绑定于同一显示设备的用户账户的应用进程的运行状态,确定进程集合的优先级;其中,绑定于不同显示设备的用户账户下与应用程序对应的应用进程相互独立。
在本实施例中,上述固定于目标车辆的司机座位前的显示屏幕为主屏,上述固定于目标车辆的乘客座位前的显示屏幕为副屏。
具体地,对每一个用户和每一个屏幕进行绑定,以使绑定于不同显示设备的用户账户下与应用程序对应的应用进程相互独立,即当对进程限制的时候每一个用户下的进程互不影响,举例说明,在对应用进程进行限制时,乘客用户在副屏使用视频播放器应用在前台播放视频时,不受司机用户主屏的视频播放器应用在后台运行的情况的影响,因为系统在限制应用的流量的时候是根据importance值来决定是否限制流量的。importance是一个进程相对重要级别, 值越小级别越高。主屏司机用户将视频播放器退到后台,则该视频播放器进程的importance值就相对较大,因此需要对其进行应用流量的限制,但是乘客用户在副屏观看视频,则副屏的视频播放器进程 importance值就相对较小,因此不会限制乘客用户在副屏观看视频的流量。
步骤S106,监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;
在本实施例中,上述流量数据中包括应用进程计划发送或接收的数据的字节数;
步骤S108,依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。
在本申请的一些实施例中,流量数据包括目标数据的字节数,其中,目标数据为应用进程计划发送或接收的数据,依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态包括:确定目标流量限制速率;依据目标流量限制速率、可用带宽及目标数据的字节数,计算得到休眠时间,其中,休眠时间用于表征从调用传输接口对目标数据进行传输的时刻至下一次调用传输接口的时刻之间需要等待的时间;配置传输接口的参数,使传输接口按照休眠时间传输目标数据,从而实现对目标进程集合中应用进程的流量传输速率的限制。
在本实施例中,上述传输接口为套接字(socket)的相关接口;
在本申请的一些实施例中,配置传输接口的参数,使传输接口按照休眠时间传输目标数据,从而实现对目标进程集合中应用进程的流量传输速率的限制还包括:重构传输接口对应的流量控制函数,得到第一流量控制函数;在调用传输接口对目标数据进行传输的情况下,配置第一流量控制函数的目标参数,得到第二流量控制函数;依据第二流量控制函数,限制目标进程集合中应用进程的流量传输速率。
具体地,对所有进程访问流量的核心库进行重构,对其内部核心方法进行定制。网络流量都是通过socket产生的,图3是根据本申请实施例提供的一种流量控制的方法流程的示意图,如图3所示,该方法包括如下步骤:
步骤S302,将socket的相关接口重新实现,并封装为一个动态库:A;
步骤S304,当init进程启动时,设置LD_PRELOAD=A,其中LD_PRELOAD为用于指定动态库A具有最高优先加载权的的环境变量;
步骤S306,当应用启动时,会通过init进程fork出子进程,在子进程中初始化流量控制程序;
步骤S308,流量控制程序会创建一个unix damain socket(unix域套接字),用以接收控制命令:设置限制开/关、上下行限制,其中,unix damain socket为一个用于进程间通信的接口;
步骤S310,socket read/write(读或写)时,统计流量数据,根据设置的限制进行上下行控制。
面对本申请实施例的步骤S310中流量控制方法数据流量限制方法进一步进行介绍,图4是根据本申请实施例提供的一种流量上下行控制的方法流程的示意图,如图4所示,该方法包括如下步骤:
步骤S402,socket使用read/write读写数据;
步骤S404,socket_preload read/write拦截接口调用,其中,socket_preloadread/write为重写后的核心库中的方法;
步骤S406,Netlimit(网络流量控制方法)进行流量控制,其中,Netlimit为用于对数据流量进行控制的方法,即上述流量控制函数
步骤S408,调用libc的read/write进行实际的数据读写,其中,libc为用于进行数据流量传输的接口,即上述传输接口。
具体地,对libc接口对应的库中的read/write方法进行重构,并通过Netlimit流量控制函数,对read/write方法中的参数进行配置,从而实现数据流量的限制。
下面对本申请实施例的步骤S102至步骤S108中数据流量限制方法进一步进行介绍。
图5是根据本申请实施例提供的一种执行数据流量限制方法的框架的结构示意图,如图5所示,通过该框架执行上述数据流量限制方法时,包括以下步骤:
第一步:系统开机过程中,zygote进程启动app_process启动main函数,检查系统中是否存在libnetlimit库文件,若存在,设置环境变量NETLIMIT_INTED_FLAGS = SUCC,每一个应用进程启动的时,判断环境变量NETLIMIT_INTED_FLAGS 是否为SUCC,若是则对进程流量进行检测。
第二步:流量开始检测过程中,初始化流量计算和流量设置,然后对libc库中的函数进行重写,调用socket接口并判断该socket接口是否为网络socket,若是,则将该socket接口添加到网络列表中;调用close接口并判断该接口是否为网络接口以及是否已经监控,若是网络接口且已监控,则从监控列表中移除该接口;
调用发送数据的接口时,对其进行限制,具体地,调用读取数据的接口时,根据要发送的数据(即上述目标数据)计算需要休眠的时间(即上述休眠时间),调用libc读取数据的接口,将时间读取的数据量更新到流量统计,从而达到对数据的限制,依据已经监控的socket,计算当前socket应该能使用的带宽(即上述可用带宽),并计算出休眠时间,对socket方法中读写的buffer进行限制,从而达到平均带宽的限制。
举例说明,socket方法中read方法是用于读取流量,故对这个read方法进行重写为original_read函数为original_read(int fd, char buffer[], int length)。
其中,第一个参数fd用于指定发送端套接字描述符;第二个参数buffer用于指明一个存放应用程序要发送数据的缓冲区;第三个参数length用于指明实际要发送的数据的字节数;
从fd描述符读取数据之后 存放在buffer数组里面。在计划发送10kb的数据时,若不进行限制的情况下,读取的速度几乎不需要0s时间,若限制以100kb/s 的速度进行读取,则需要的时间为10kb/100kb/s = 0.1s;
因此,休眠时间为0.1-0 = 0.1s ,即等0.1s后读取10kb的数据,从而达到10kb数据的限制速率为100kb/s ,将计划发送的大数据分割为多个buffer数组容量大小的小数据,多个小数据的平均的速率为100kb/s, 则整体的速率也为100kb/s。
第三步:在系统层定义一个接口setNetLimit(int uid, int pid, floatdownload, float upload) ,其中,setNetLimit(int uid, int pid, float download,float upload)为用于实现在不同的场景下对进程进行限制的接口方法。
其中,参数为uid 表示用户标识,pid表示进程标识 ,download表示是否为下载,upload表示是否为上传。定义好接口后,监控系统流量的服务常驻在系统中运行。
具体地,根据业务场景的变化,例如应用前后台变化、不同屏幕上应用的变化等调用setNetLimit方法进行对不同用户下进程流量的限制,在进程流量限制时,通过socket和libc库建立联系,将setNetLimit方法中参数进行传递,从而实现流量限制。
第四步:对于核心服务的进程进行保护,不让系统限制其流量,核心服务大部分为系统级别的应用,例如SystemUI 、CarService等
具体地,定义一个文件,该文件包含上述预设包名,该文件存储于存储介质中一个不可擦除的分区。在系统开始运行后,从分区中读取该文件进行解析,将解析后的预设包名保存到一个集合中,流并在流量限制时进行匹配,对于匹配成功的包名所对应的进程不作流量限制。
第五步:对于同一个用户组同一个应用下面的不同进程进行分组,归为一类,在对于应用进程限制的时候,对于同一类中的进程统一限制,确保一个用户账号下的一个应用的所有进程都有通过同一个速率流量大小的限制,避免限制不一致导致应用功能不正常。
第六步:对于不同用户和不同屏幕进行绑定,限制流量的时候,每一个用户下的进程互不影响举例说明,在对应用进程进行限制时,乘客用户在副屏使用视频播放器应用在前台播放视频时,不受司机用户主屏的视频播放器应用在后台运行的情况的影响,因为系统在限制应用的流量的时候是根据importance值来决定是否限制流量的。importance是一个进程相对重要级别, 值越小级别越高。主屏司机用户将视频播放器退到后台,则该视频播放器进程的importance值就相对较大,因此需要对其进行应用流量的限制,但是乘客用户在副屏观看视频,则副屏的视频播放器进程 importance值就相对较小,因此不会限制乘客用户在副屏观看视频的流量。
具体地,在CarService 启动时,会解析config_occupant_zones.xml和config_occupant_display_mapping.xml两个配置文件,并通过解析后的代码逻辑在用户分配完成之后建立“屏幕—车内区域—用户”的一一映射关系,图6是根据本申请实施例提供的一种用户和屏幕绑定后的结果示意图,如图6所示;
具体地,通过CarService 和 SystemServer建立通信将CarService数据同步到Framework(FWK),然后 FWK计算Activity启动的屏幕,实现不同的用户和屏幕绑定。
图7是根据本申请实施例提供的另一种数据流量限制的方法流程的示意图,如图7所示,该方法包括如下步骤:
步骤S702,从系统中运行的应用中确定目标应用;
具体地,从系统中正在运行的应用程序中直接确定计划进行流量限制的目标应用程序;
步骤S704,确定目标应用的目标进程集合,其中,目标进程集合包括目标应用的应用进程;
具体地,将计划进行流量限制的目标应用程序的至少一个应用进程确定为目标进程集合;
步骤S706,监测网络传输通道的可用带宽和目标应用的流量数据,其中,网络传输通道用于为目标应用的应用进程提供数据流量的网络传输服务;
步骤S708,依据流量数据和可用带宽,限制目标应用的流量传输状态。
采用在应用层面直接确定计划进行流量限制的应用程序,得到目标进程集合,并对目标进程集合中的应用进程进行流量限制的方式,提供了一种可以依据实际需求定向限制数据流量的方法,提高了数据流量限制的灵活性。
通过上述步骤,划分同一个用户账号下相同包名的进程,设置各个进程组对应的优先级,并通过重构传输接口对应流量控制函数来对目标进程分组中进程的进行流量限制,达到了精确限制在后台运行的进程的数据流量的目的,进而解决了由于目前大多系统未对用户使用的数据流量进行限制,造成的网络带宽不足、前台应用无法以最优方式进行流量传输技术问题。
实施例2
根据本申请实施例,还提供了一种数据流量限制装置的实施例。图8是根据本申请实施例提供的一种数据流量限制装置的结构示意图。如图8所示,该装置包括:
进程划分模块80,用于按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;
级别确定模块82,用于依据进程集合的优先级从至少一个进程集合中确定目标进程集合;
流量监测模块84,用于监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;
流量限制模块86,用于依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。
需要说明的是,本实施例中所提供的数据流量限制装置可用于执行图1所示的数据流量限制方法,因此,对上述数据流量限制方法的相关解释说明也适用于本申请实施例中,在此不再赘述。
实施例3
本申请实施例提供了一种用于实现数据流量限制的方法的计算机终端的实施例。图9是根据本申请实施例提供一种用于实现数据流量限制的方法的计算机终端(或电子设备)的硬件结构框图。如图9所示,计算机终端90(或电子设备90)可以包括一个或多个(图中采用902a、902b,……,902n来示出)处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器904、以及用于通信功能的传输模块906。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图9所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端90还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端90(或电子设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
在本实施例中,处理器执行以下数据流量限制方法:按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;依据进程集合的优先级从至少一个进程集合中确定目标进程集合;监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。
存储器904可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据流量限制的方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器904内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据流量限制的方法。存储器904可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器904可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端90。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本实施例中,存储器904中还存储有上述预设核心进程文件。
传输模块906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端90的通信供应商提供的无线网络。在一个实例中,传输装置906包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置906可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端90(或电子设备)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图9所示的计算机设备(或电子设备)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图9仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或电子设备)中的部件的类型。
需要说明的是,图9所示的数据流量限制的电子设备用于执行图1所示的数据流量限制的方法,因此上述数据流量限制的方法中的相关解释说明也适用于该数据流量限制的电子设备,此处不再赘述。
实施例4
本申请实施例还提供了一种非易失性存储介质,非易失性存储介质中存储有计算机程序,其中,非易失性存储介质所在设备通过运行计算机程序执行以下数据流量限制方法:按照用户账号与应用进程的映射关系对系统中运行的应用进程进行划分,得到至少一个进程集合;依据进程集合的优先级从至少一个进程集合中确定目标进程集合;监测网络传输通道的可用带宽和目标进程集合中应用进程的流量数据,其中,网络传输通道用于为用户账号对应的应用进程提供数据流量的网络传输服务;依据流量数据和可用带宽,限制目标进程集合中应用进程的流量传输状态。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (9)

1.一种数据流量限制方法,其特征在于,包括:
按照用户账号与应用进程的映射关系对系统中运行的所述应用进程进行划分,得到至少一个进程集合,其中,按照用户账号与应用进程的映射关系对系统中运行的所述应用进程进行划分,得到至少一个进程集合包括:获取所述应用进程所属账户的用户标识和所属用户标识对应的应用标识,其中,所述用户标识用于标识一个唯一确定的所述用户账号;获取具有相同所述用户标识的所述应用进程中所述应用标识相同的所述应用进程,得到所述进程集合;
依据所述进程集合的优先级从所述至少一个所述进程集合中确定目标进程集合,其中,依据所述进程集合的优先级从所述至少一个所述进程集合中确定目标进程集合包括:依据所述应用进程的运行状态,确定所述进程集合的所述优先级;依据所述优先级,确定所述目标进程集合;
监测网络传输通道的可用带宽和所述目标进程集合中所述应用进程的流量数据,其中,所述网络传输通道用于为所述用户账号对应的所述应用进程提供数据流量的网络传输服务;
依据所述流量数据和所述可用带宽,限制所述目标进程集合中所述应用进程的流量传输状态。
2.根据权利要求1所述的数据流量限制方法,其特征在于,所述运行状态包括:前台运行、后台运行,依据所述应用进程的运行状态,确定所述进程集合的所述优先级包括:
在所述进程集合中存在所述运行状态为所述前台运行的应用进程的情况下,确定所述进程集合的所述优先级为第一等级;
在所述进程集合中存在所述运行状态为所述后台运行的应用进程的情况下,确定所述进程集合的所述优先级为第二等级;以及,
所述第一等级的进程集合的优先级高于所述第二等级的进程集合。
3.根据权利要求1所述的数据流量限制方法,其特征在于,确定所述进程集合的所述优先级还包括:
获取预设核心进程文件中的预设应用标识;
比较所述应用进程对应的应用标识与所述预设应用标识,确定所述应用标识与所述预设应用标识一致的所述应用进程为指定应用进程;
在所述进程集合中存在所述指定应用进程的情况下,确定所述进程集合的所述优先级为第三等级;以及,
所述第三等级的进程集合的优先级高于第一等级的进程集合,并且,在所述进程集合的所述优先级为所述第三等级的情况下,禁止对所述进程集合中的所述应用进程进行流量限制。
4.根据权利要求1所述的数据流量限制方法,其特征在于,依据所述应用进程的运行状态,确定所述应用进程集合的所述优先级,包括:
在目标区域内存在多个所述用户账号和多个显示设备的情况下,绑定所述用户账号与登录所述用户账号的所述显示设备,其中,所述目标区域为目标车辆的车内区域,所述多个显示设备至少包括:位于所述目标车辆的司机座位前的显示屏幕、位于所述目标车辆的乘客座位前的所述显示屏幕;
在多个所述用户账号使用同一个应用程序的情况下,依据绑定于同一所述显示设备的所述用户账户的所述应用进程的运行状态,确定所述进程集合的所述优先级;其中,绑定于不同所述显示设备的所述用户账号下与所述应用程序对应的所述应用进程相互独立。
5.根据权利要求1所述的数据流量限制方法,其特征在于,所述流量数据包括目标数据的字节数,其中,所述目标数据为所述应用进程计划发送或接收的数据,依据所述流量数据和所述可用带宽,限制所述目标进程集合中所述应用进程的流量传输状态包括:
确定目标流量限制速率;
依据所述目标流量限制速率、所述可用带宽及所述目标数据的字节数,计算得到休眠时间,其中,所述休眠时间用于表征从调用传输接口对所述目标数据进行传输的时刻至下一次调用所述传输接口的时刻之间需要等待的时间;
配置所述传输接口的参数,使所述传输接口按照所述休眠时间传输所述目标数据,从而实现对所述目标进程集合中所述应用进程的流量传输速率的限制。
6.根据权利要求5所述的数据流量限制方法,其特征在于,配置所述传输接口的参数,使所述传输接口按照所述休眠时间传输所述目标数据,从而实现对所述目标进程集合中所述应用进程的流量传输速率的限制还包括:
重构所述传输接口对应的流量控制函数,得到第一流量控制函数;
在调用所述传输接口对所述目标数据进行传输的情况下,配置所述第一流量控制函数的目标参数,得到第二流量控制函数;
依据所述第二流量控制函数,限制所述目标进程集合中所述应用进程的所述流量传输速率。
7.一种数据流量限制装置,其特征在于,包括:
进程划分模块,用于按照用户账号与应用进程的映射关系对系统中运行的所述应用进程进行划分,得到至少一个进程集合,其中,按照用户账号与应用进程的映射关系对系统中运行的所述应用进程进行划分,得到至少一个进程集合包括:获取所述应用进程所属账户的用户标识和所属用户标识对应的应用标识,其中,所述用户标识用于标识一个唯一确定的所述用户账号;获取具有相同所述用户标识的所述应用进程中所述应用标识相同的所述应用进程,得到所述进程集合;
级别确定模块,用于依据所述进程集合的优先级从所述至少一个所述进程集合中确定目标进程集合,其中,依据所述进程集合的优先级从所述至少一个所述进程集合中确定目标进程集合包括:依据所述应用进程的运行状态,确定所述进程集合的所述优先级;依据所述优先级,确定所述目标进程集合;
流量监测模块,用于监测网络传输通道的可用带宽和所述目标进程集合中所述应用进程的流量数据,其中,所述网络传输通道用于为所述用户账号对应的所述应用进程提供数据流量的网络传输服务;
流量限制模块,用于依据所述流量数据和所述可用带宽,限制所述目标进程集合中所述应用进程的流量传输状态。
8.一种电子设备,所述电子设备包括存储器和处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的数据流量限制方法。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,所述非易失性存储介质所在设备通过运行所述计算机程序执行权利要求1至6中任意一项所述的数据流量限制方法。
CN202211353018.0A 2022-11-01 2022-11-01 数据流量限制方法、装置、电子设备及非易失性存储介质 Active CN115412505B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211353018.0A CN115412505B (zh) 2022-11-01 2022-11-01 数据流量限制方法、装置、电子设备及非易失性存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211353018.0A CN115412505B (zh) 2022-11-01 2022-11-01 数据流量限制方法、装置、电子设备及非易失性存储介质

Publications (2)

Publication Number Publication Date
CN115412505A CN115412505A (zh) 2022-11-29
CN115412505B true CN115412505B (zh) 2023-04-07

Family

ID=84167135

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211353018.0A Active CN115412505B (zh) 2022-11-01 2022-11-01 数据流量限制方法、装置、电子设备及非易失性存储介质

Country Status (1)

Country Link
CN (1) CN115412505B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103780447B (zh) * 2012-10-23 2016-02-17 腾讯科技(深圳)有限公司 一种流量控制方法及装置
US20160330286A1 (en) * 2015-05-08 2016-11-10 Citrix Systems, Inc. Systems and methods for using filters for groups of applications or users
CN105094967B (zh) * 2015-06-26 2019-04-16 小米科技有限责任公司 进程运行方法及装置
CN112637081A (zh) * 2019-09-24 2021-04-09 中兴通讯股份有限公司 带宽限速的方法及装置
CN112134813A (zh) * 2020-09-22 2020-12-25 上海商米科技集团股份有限公司 一种基于应用进程优先级的带宽分配方法及电子设备

Also Published As

Publication number Publication date
CN115412505A (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN109768871B (zh) 配置多个虚拟网卡的方法、宿主机和存储介质
CN114244717B (zh) 虚拟网卡资源的配置方法、装置、计算机设备及介质
CN103460202A (zh) 至少部分地通过电路来促进对至少一个控制器命令接口的访问
EP3923549A1 (en) Data downloading method and related apparatus
CN114257551A (zh) 一种分布式限流的方法及系统、存储介质
CN115080479A (zh) 传输方法、服务器、设备、裸金属实例及基板管理控制器
CN112748961A (zh) 启动任务的执行方法和装置
CN114489690A (zh) 一种分布式系统部署方法、装置、电子设备及存储介质
CN115412505B (zh) 数据流量限制方法、装置、电子设备及非易失性存储介质
CN106445599B (zh) 应用程序的升级方法、升级装置和终端
CN115718641A (zh) 存储器模拟方法及装置、存储介质及电子装置
CN111638896B (zh) 升级方法、升级装置、存储介质、处理器和移动终端
CN110971696B (zh) 一种实现虚拟电子卡通讯的系统和方法
CN110365839B (zh) 关机方法、装置、介质及电子设备
CN114610331A (zh) 软件安装方法和系统
CN113438749A (zh) 多公网连接驱动方法、装置、计算机设备和存储介质
CN112423068A (zh) 智能电视调试方法、装置、移动终端和可读存储介质
CN112367362A (zh) 一种数据处理方法、装置、设备及计算机存储介质
CN111736864A (zh) 一种应用软件内容分发方法、装置、系统和计算机设备
CN105138392A (zh) 一种带宽控制方法及电子设备
CN110516413A (zh) 一种许可证存储的方法、系统、设备及可读存储介质
CN116028433B (zh) 数据迁移方法和电子设备
CN117032905B (zh) 容器集群与块存储的关联方法、系统及虚拟机
CN115001991B (zh) 基于性能测试的录制方法、装置以及存储介质
CN111371799B (zh) Mctp控制器收发数据的控制方法、装置及设备

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