CN107770092A - 一种数据传输方法、装置、移动终端和存储介质 - Google Patents
一种数据传输方法、装置、移动终端和存储介质 Download PDFInfo
- Publication number
- CN107770092A CN107770092A CN201711080370.0A CN201711080370A CN107770092A CN 107770092 A CN107770092 A CN 107770092A CN 201711080370 A CN201711080370 A CN 201711080370A CN 107770092 A CN107770092 A CN 107770092A
- Authority
- CN
- China
- Prior art keywords
- packet
- application program
- transmission
- data
- data volume
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2475—Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种数据传输方法、装置、移动终端和存储介质,用以解决现有技术中前台运行的应用程序网络延迟的问题。该方法包括:如果存在待传输的第一数据包,根据第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;如果是,则在当前周期中停止传输所述第一数据包。由于在本发明实施例中,移动终端限制了后台运行的应用程序的传输的数据量,减小了后台运行的应用程序占用带宽,保证了前台运行的应用程序的带宽,使前台运行的应用程序更加流畅,避免了网络延迟,提高了用户体验。
Description
技术领域
本发明涉及移动终端技术领域,特别涉及一种数据传输方法、装置、移动终端和存储介质。
背景技术
随着科技的发展,移动终端也越来越满足用户的需求,移动终端上安装的应用程序层出不穷,为用户的生活带来了方便。
移动终端上较多的应用程序需使用网络才能为用户的生活带来方便,如,聊天类应用程序,综艺类应用程序,游戏类应用程序。移动终端中还可以安装网络管理类应用程序,如手机管家,360卫士等。
当移动终端中多个使用网络的应用程序同时运行时,对网络延迟敏感的应用程序,容易出现网络延迟,如果出现网络延迟的应用程序正处于前台运行,则该前台运行的应用程序则会出现画面卡顿,例如,当前用户正在使用游戏类应用程序玩网游,该游戏类应用程序对网络延迟较敏感,如果后台运行的应用程序占用大量的传输(包括上传和下载)带宽,导致网络延迟,则游戏画面会出现卡顿现象。或者用户正在使用聊天类应用程序进行视频聊天,该聊天类应用程序对网络延迟比较敏感,如果后台运行的应用程序占用大量的传输带宽,导致网络延迟,则视频画面就会出现卡顿现象。
在现有技术中,移动终端上安装的网络管理类应用在进行网络管理时,均是对总的带宽进行管理,可以是每天或每月统计一次移动终端所使用的总的带宽,以便对使用的流量进行管理。对单个应用程序,尤其是前台运行的应用程序的网络延迟的问题不能有效的解决。
发明内容
本发明实施例公开了一种数据传输方法、装置、移动终端和存储介质,用以解决现有技术中前台运行的应用程序网络延迟的问题。
为达到上述目的,本发明实施例公开了一种数据传输方法,所述方法包括:
如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
如果是,则在当前周期中停止传输所述第一数据包。
进一步地,如果当前周期中已累计传输的所述第一应用程序的第一数据量大于预设的数据量阈值,所述方法还包括:
保持所述第一应用程序继续在后台运行。
进一步地,所述方法还包括:
缓存所述第一数据包。
进一步地,所述方法还包括:
如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;
根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
进一步地,所述方法还包括:
在缓存周期结束后,删除缓存的数据包。
进一步地,在确定所述第一数据包对应的第一应用程序为后台运行的应用程序之后,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值之前,所述方法还包括:
判断当前前台运行的第三应用程序是否为预设应用程序,如果是,则进行后续步骤。
进一步地,如果第一数据量不大于预设的数据量阈值,所述方法还包括:
传输所述第一数据包;
识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
进一步地,所述方法还包括:
当识别到下一周期来临时,将当前周期中已累计传输的每个应用程序的数据量清空。
进一步地,如果所述待传输的第一数据包为待发送的数据包,则根据NF_INET_LOCAL_OUT位置上的hook函数是否被调用,确定是否存在待传输的第一数据包;
如果所述待传输的第一数据包为待接收的数据包,则根据NF_INET_LOCAL_IN位置上的hook函数是否被调用,确定是否存在待传输的第一数据包。
进一步地,当前周期中已累计传输的所述第一应用程序的第一数据量以结构体对象的方式保存在哈希表中。
进一步地,移动终端基于传输控制协议TCP方式进行数据传输。
本发明实施例公开了一种数据传输装置,所述装置包括:
第一判断模块,用于如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
第二判断模块,用于在所述第一判断模块的判断结果为是时,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
停止模块,用于在所述第二判断模块的判断结果为是时,在当前周期中停止传输所述第一数据包。
进一步地,所述装置还包括:
保持模块,用于在所述第二判断模块的判断结果为是时,保持所述第一应用程序继续在后台运行。
进一步地,所述装置还包括:
缓存模块,用于缓存所述第一数据包。
进一步地,所述装置还包括:
第二传输模块,用于如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
进一步地,所述装置还包括:
删除模块,用于在缓存周期结束后,删除缓存的数据包。
进一步地,所述装置还包括:
第三判断模块,用于在所述第一判断模块的判断结果为是时,判断当前前台运行的第三应用程序是否为预设应用程序,如果所述第三判断模块的判断结果为是,则执行所述第二判断模块。
进一步地,所述装置还包括:
第一传输模块,还用于在所述第二判断模块的判断结果为否时,传输所述第一数据包;
更新模块,用于识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
进一步地,所述装置还包括:
清空模块,用于当识别到下一周期来临时,将当前周期中已累计传输的每个应用程序的数据量清空。
进一步地,所述装置还包括:
确定模块,用于如果所述待传输的第一数据包为待发送的数据包,则根据NF_INET_LOCAL_OUT位置上的hook函数是否被调用,确定是否存在待传输的第一数据包;
如果所述待传输的第一数据包为待接收的数据包,则根据NF_INET_LOCAL_IN位置上的hook函数是否被调用,确定是否存在待传输的第一数据包。
本发明实施例公开了一种移动终端,所述移动终端包括:处理器和存储器;
所述处理器用于执行存储器中存储的计算机程序时,实现如上述的数据传输方法中任一项所述方法的步骤。
本发明实施例公开了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上述的数据传输方法中任一项所述方法的步骤。
本发明实施例公开了一种数据传输方法、装置、移动终端和存储介质,该方法包括:如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;如果是,则在当前周期中停止传输所述第一数据包。由于在本发明实施例中,移动终端在确定待传输的第一数据包对应的第一应用程序为后台运行的应用程序,且在当前周期中已累计传输的第一应用程序的第一数据量大于数据量阈值时,在当前周期中停止传输该第一数据包。移动终端限制了后台运行的应用程序的传输的数据量,减小了后台运行的应用程序占用带宽,保证了前台运行的应用程序的带宽,使前台运行的应用程序更加流畅,避免了网络延迟,提高了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1提供的一种数据传输过程示意图;
图2为本发明实施例提供的一种数据传输示意图;
图3为本发明实施例提供的一种数据传输过程示意图;
图4为本发明实施例8提供的一种数据传输装置结构图;
图5为本发明实施例9提供的一种数据传输装置结构图;
图6为本发明实施例10提供的一种移动终端。
具体实施方式
为了解决前台运行的应用程序出现网络延迟的问题,本发明实施例提供了一种数据传输方法、装置、移动终端和存储介质。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为本发明实施例1提供的一种数据传输过程示意图,该过程包括以下步骤:
S101:确定是否存在待传输的第一数据包,如果是,则进行S102,如果否,则执行S101。
本发明实施例提供的数据传输方法应用于移动终端。
移动终端可以确定是否存在待传输的数据包,该待传输的数据包可以是待接收的数据包,也可以是待发送的数据包。移动终端可以通过现有技术确定是否存在待传输的数据包,在本发明实施例中对具体的确定过程不进行赘述。
可以将识别到的待传输的数据包称为第一数据包。
S102:根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序,如果是,则进行S103。
当移动终端确定存在待传输的第一数据包时,可以确定该待传输的第一数据包对应的应用程序是哪个,具体的,第一数据包中携带有应用程序的标识信息,移动终端可以解析出第一数据包中携带的应用程序的标识信息,根据解析出的标识信息确定该第一数据包对应的第一应用程序。
移动终端保存有当前运行的后台应用程序的信息,当移动终端在确定出第一数据包对应的第一应用程序后,可以确定该第一应用程序是否为后台运行的应用程序,如果是,则根据该第一应用程序累计传输的数据量确定是否传输该第一数据包。如果该第一应用程序不是后台运行的应用程序,则可以认为该第一应用程序为前台运行的应用程序,则可以传输该第一数据包。
S103:判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值,如果是,则进行S104。
S104:在当前周期中停止传输所述第一数据包。
移动终端中保存有周期的时长,在每个周期中,移动终端会针对每个后台运行的应用程序,保存当前周期中该后台运行的应用程序已累计传输的数据量,并且移动终端中还预设有数据量阈值。每个后台运行的应用程序的数据量阈值可以相同,也可以不同,如果不同,则在进行判断时,是判断第一应用程序的第一数据量是否大于该第一应用程序对应的预设的数据量阈值。
如果判断第一应用程序为后台运行的应用程序,则可以识别在当前周期中该第一应用程序累计传输的第一数据量,将第一数据量与预设的数据量阈值进行比较,判断该第一数据量是否大于预设的数据量阈值,如果第一数据量大于预设的数量阈值,说明第一应用程序已经传输了足够的数据量,再传输将会影响前台运行的应用程序的带宽,会造成前台运行的应用程序的传输时延,则在当前周期中停止传输该第一数据包。
周期的时长可以是1分钟,可以是10分钟,较优的,周期的时长可以是1s。数据量可以是字节数,则数据量阈值为字节数阈值。应用程序的标识信息可以是应用程序的用户身份证明(User Identification,UID)。
由于在本发明实施例中,移动终端在确定待传输的第一数据包对应的第一应用程序为后台运行的应用程序,且在当前周期中已累计传输的第一应用程序的第一数据量大于数据量阈值时,在当前周期中停止传输该第一数据包。移动终端限制了后台运行的应用程序的传输的数据量,减小了后台运行的应用程序占用带宽,保证了前台运行的应用程序的带宽,使前台运行的应用程序更加流畅,避免了网络延迟,提高了用户体验。
实施例2:
为了进一步地提高用户体验,在上述实施例的基础上,在本发明实施例中,如果当前周期中已累计传输的所述第一应用程序的第一数据量大于预设的数据量阈值,所述方法还包括:
保持所述第一应用程序继续在后台运行。
在本发明实施例中,移动终端在确定出第一应用程序的第一数据量大于预设的数据量阈值时,为了保证前台运行的应用程序的带宽,可以将该第一应用程序关闭,或者向用户展示是否关闭该第一应用程序的提示信息。
在一些情况下,在当前周期中后台运行的应用程序,用户在下一周期中可能想使用该应用程序,也就是说可能在下一周期中该后台运行的应用程序将会变成前台运行的应用程序,如果在当前周期中将该后台运行的应用程序关闭,在下一周期中,用户只能重新启动该应用程序,影响用户的使用效率,用户体验非常差,所以为了提高用户体验,移动终端可以仍然保持该第一应用程序继续在后台运行。在本发明实施例只是暂时在该当前周期停止传输该应用程序的数据包,因为该后台运行的应用程序还继续在后台运行,当下一周期该后台运行的应用程序存在待传输的数据包时,还可以传输该数据包。
实施例3:
当确定当前周期中已累计传输的第一应用程序的第一数据量大于预设的数据量阈值,当前周期停止传输该第一应用程序的数据包,可以是将该第一应用程序的该数据包丢弃。但为了保证数据传输,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
缓存所述第一数据包。
移动终端中预先设置有缓存空间,则在确定在当前周期中停止发送第一数据包后,可以缓存该第一数据包,具体可以是将该第一数据包缓存至预先设置的缓存空间中。
为了保证数据传输,可以在下一个周期中,按照预设的规则传输缓存的数据包,在本发明实施例中,所述方法还包括:
如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;
根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
在本发明实施例中,移动终端的预设的缓存空间中缓存有当前周期中停止传输的数据包。移动终端中保存有每个应用程序的优先级,还保存有预设类型的信息。
应用程序的优先级可以是根据以下方式确定:
根据用户的设置确定应用程序的优先级;或者
根据应用程序的使用频率确定应用程序的优先级;或者
根据应用程序的类型确定应用程序的优先级。
如果应用程序的优先级是根据应用的类型确定的,则可以将即时通信类的应用程序的优先级设置的比较高,则如果缓存的数据包中有即时通信类的应用程序的数据包,可以保证传输即时通信类的应用程序的数据包。
另外,为了保证用户间的通信,还可以根据需要设置信息的类型,预设类型如为交互类。如果第二目标应用程序为微信,则预设类型可以是微信中的聊天信息。
移动终端可以识别每个数据包所属的信息的类型,识别数据包所属的信息的类型的过程属于现有技术,在本发明实施例中不进行赘述。
移动终端在识别到下一周期来临后,先根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序,该第二目标应用程序可以是一个,也可以是多个。然后识别缓存的数据包中属于第二目标应用程序的数据包,在第二目标应用程序的数据包中选择预设类型的信息对应的第二数据包,传输该第二数据包。第二数据包的数量可以是一个也可以是多个。
在下一周期中传输预设类型的信息对应的第二数据包时,可以是在下一周期来临时刻传输,为了保证数据传输,可以是优先传输下一周期中存在的待传输的数据包,在下一周期的空闲时间内传输缓存的第二数据包。
在本发明实施例中,所述方法还包括:
在缓存周期结束后,删除缓存的数据包。
移动终端在预设的缓存空间中缓存有数据包,在对缓存的数据包进行传输时,可以根据应用程序的优先级优先传输第二目标应用程序的数据包,并优先传输预设类型的信息的数据包,对于不属于预设类型的信息的数据包,可以是在下一周期的空闲时间发送出去。在缓存数据包时,可以设置缓存周期,在缓存周期结束后,对于没有发送出去的数据包,删除缓存的数据包。一般缓存周期的长度可以和移动终端进行数据量判断的周期相同,例如都为1s。
移动终端可以是基于传输控制协议(Transmission Control Protocol,TCP)方式进行数据传输的,发送方在规定时间内没有接收到接收方的ACK回应,可以认为接收方没有接收到数据包,则可以重复发送该数据包。所以在当前周期中停止传输该第一数据包后,可以抛弃该第一数据包。
在kernel netfilter子系统里,在进行数据传输时,可以是利用hook机制进行数据传输的,在抛弃数据包时,可以是利用hook机制,直接返回程序中的NF_DROP处。
如图2所示,每个周期为1s,移动终端在第一个1s中确定存在待传输的数据包为52个,如图2中所示的数据包pkt1、pkt2……pkt52,在传输过程中,移动终端确定前50个数据包的字节数Bytes大于预设的数据量阈值threshold,则可以丢弃(drop)第51个数据包即图中的pkt51,和第52个数据包即图2中的pkt52,第二个1s中的第一个数据包即图中的pkt53正常传输。
实施例4:
移动终端可以通过限制后台运行的应用程序使用的带宽,来尽量满足前台运行的应用程序使用的带宽,但实际有些应用程序只需要很少的带宽,就可以正常为用户提供服务,也不会影响用户的体验,所以,在这些需要很少的带宽的应用程序在前台运行时,无需限制后台运行的应用程序使用的带宽,为了更加符合用户的需求,在上述各实施例的基础上,在本发明实施例中,在确定所述第一数据包对应的第一应用程序为后台运行的应用程序之后,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值之前,所述方法还包括:
判断当前前台运行的第三应用程序是否为预设应用程序,如果是,则进行后续步骤。
在本发明实施例中,移动终端在确定第一数据包对应的第一应用程序为后台运行的应用程序后,可以是判断当前是否存在前台运行的第三应用程序,如果是,可以再判断在当前周期中已累计传输的第一应用程序的第一数据量是否大于预设的数据量阈值,如果不存在前台运行的第三应用程序,则可以传输该第一数据包。
为了更加符合用户的需求,移动终端中可以保存有预设的应用程序,当该预设的应用程序在前台运行时,移动终端限制后台运行的应用程序使用的带宽,则在确定当前存在前台运行的第三应用程序后,还可以再判断前台运行的第三应用程序是否为预设应用程序,如果是,则判断在当前周期中已累计传输的第一应用程序的第一数据量是否大于预设的数据量阈值。如果第三应用程序不是预设的应用程序,则可以传输该第一数据包。
实施例5:
为了更加准确地确定后台运行的应用程序已累计传输的数据量是否大于预设的数据量阈值,在每次传输了后台运行的应用程序的数据包后,可以对该后台运行的应用程序累计传输的数据量进行更新。在上述各实施例的基础上,在本发明实施例中,如果第一数据量不大于预设的数据量阈值,所述方法还包括:
传输所述第一数据包;
识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
在本发明实施例中,如果在当前周期中已累计传输的第一应用程序的第一数据量不大于预设的数据量阈值,则可以将该第一应用程序的第一数据包进行传输。
为了保证后续判断过程的准确性,在传输了第一数据包后,还需要对第一应用程序累计传输的第一数据量进行更新。移动终端可以先识别第一数据包的第二数据量,根据该第二数据量对当前周期中已累计传输的第一应用程序的第一数据量进行更新,具体的可以是,将当前保存的第一数据量与识别出的第二数据量的和作为更新后的第一数据量。
移动终端识别数据包的数据量的过程属于现有技术,在本发明实施例中对该过程不进行赘述。
图3为本发明实施例提供的一种数据传输过程示意图,该过程包括以下步骤:
S301:判断是否存在待传输的第一数据包,如果是,则进行S302,如果否,则进行S301。
S302:根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序,如果是,则进行S303,如果否,则进行S309。
S303:判断当前前台运行的第三应用程序是否为预设应用程序,如果是,则进行S304,如果否,则进行S308。
S304:判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值,如果是,则进行S305,如果否,则进行S308。
S305:在当前周期中停止传输所述第一数据包,并保持所述第一应用程序继续在后台运行。
S306:缓存所述第一数据包,如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
S307:在缓存周期结束后,删除缓存的数据包。
S308:传输所述第一数据包,识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
S309:传输所述第一数据包。
实施例6:
为了更加准确地确定后台运行的应用程序已累计传输的数据量是否大于预设的数据量阈值,在上述各实施例的基础上,在本发明实施例中,所述方法还包括:
当识别到下一周期来临时,将当前周期中已累计传输的每个应用程序的数据量清空。
移动终端在每个周期中统计后台运行的应用程序传输的数据量,在下一周期来临时,移动终端可以将当前周期中已累计传输的每个应用程序的数据量清空,重新统计下一周期中的每个后台运行的应用程序传输的数据量。如果周期为1s,数据量为字节数,则移动终端把后台运行的应用程序传输数据包的速率限定在每秒预设字节数内。
实施例7:
在kernel netfilter子系统里,在进行数据传输时,可以是利用hook机制,在IP层hook点NF_INET_LOCAL_OUT位置插入hook函数,发送包会调用到NF_INET_LOCAL_OUT位置上的hook函数,接收包会调用到NF_INET_LOCAL_IN位置上的hook函数,则在确定是否存在待传输的数据包时,可以是根据hook函数的调用情况,确定是否存在待传输的数据包,具体可以是,如果所述待传输的第一数据包为待发送的数据包,则根据NF_INET_LOCAL_OUT位置上的hook函数是否被调用,确定是否存在待传输的第一数据包;
如果所述待传输的第一数据包为待接收的数据包,则根据NF_INET_LOCAL_IN位置上的hook函数是否被调用,确定是否存在待传输的第一数据包。
如果识别NF_INET_LOCAL_OUT位置上的hook函数被调用,则确定存在待发送的第一数据包;如果识别NF_INET_LOCAL_IN位置上的hook函数被调用,则确定存在待接收的第一数据包。
在发送数据包或接收数据包的hook函数里,可以通过Sock获取当前传输数据包的应用程序的UID。
移动终端在保存每个应用程序在每个周期中累计传输的数据量时,可以是保存应用程序的UID与数据量的对应关系,并且以结构体对象的方式把UID与数据量记录下来,存放到传输数据包的哈希表(hash table)中,具体可以是,当前周期中已累计传输的所述第一应用程序的第一数据量以结构体对象的方式保存在哈希表中。
上述移动终端在接收数据包时,指的是在网络层接收数据包,网络层上面还有传输层、会话层等,网络层在接收数据包时,是不需要带宽的,网络层为数据包的传输目的地寻址,然后再选择一个传输数据包的最佳路线,传输层在进行数据包的传输时,需要带宽,网络层将数据包被丢弃后,数据包没有到传输层就被丢弃了,传输层上也就没有了流量,传输层是有流量控制的,没有了流量,也就不会占用带宽,避免应用程序出现网络延迟。
实施例8:
图4为本发明实施例提供的一种数据传输装置结构图,所述装置包括:
第一判断模块41,用于如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
第二判断模块42,用于在所述第一判断模块41的判断结果为是时,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
停止模块43,用于在所述第二判断模块42的判断结果为是时,在当前周期中停止传输所述第一数据包。
所述装置还包括:
保持模块44,用于在所述第二判断模块42的判断结果为是时,保持所述第一应用程序继续在后台运行。
所述装置还包括:
缓存模块45,用于缓存所述第一数据包。
所述装置还包括:
第二传输模块46,用于如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
所述装置还包括:
删除模块47,用于在缓存周期结束后,删除缓存的数据包。
实施例9:
图5为本发明实施例提供的一种数据传输装置结构图,在图4的基础上,所述装置还包括:
第三判断模块51,用于在所述第一判断模块41的判断结果为是时,判断当前前台运行的第三应用程序是否为预设应用程序,如果所述第三判断模块51的判断结果为是,则执行所述第二判断模块42。
所述装置还包括:
第一传输模块52,还用于在所述第二判断模块42的判断结果为否时,传输所述第一数据包;
更新模块53,用于识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
所述装置还包括:
清空模块54,用于当识别到下一周期来临时,将当前周期中已累计传输的每个应用程序的数据量清空。
所述装置还包括:
确定模块55,用于如果所述待传输的第一数据包为待发送的数据包,则根据NF_INET_LOCAL_OUT位置上的hook函数是否被调用,确定是否存在待传输的第一数据包;
如果所述待传输的第一数据包为待接收的数据包,则根据NF_INET_LOCAL_IN位置上的hook函数是否被调用,确定是否存在待传输的第一数据包。
实施例10:
图6为本发明实施例提供的一种移动终端,所述移动终端包括:处理器61和存储器62;
所述处理器61用于执行存储器62中存储的计算机程序时,实现如下步骤:
如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
如果是,则在当前周期中停止传输所述第一数据包。
所述处理器61,还用于如果当前周期中已累计传输的所述第一应用程序的第一数据量大于预设的数据量阈值,保持所述第一应用程序继续在后台运行。
所述处理器61,还用于缓存所述第一数据包。
所述处理器61,还用于如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;
根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
所述处理器61,还用于在缓存周期结束后,删除缓存的数据包。
所述处理器61,还用于在确定所述第一数据包对应的第一应用程序为后台运行的应用程序之后,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值之前,判断当前前台运行的第三应用程序是否为预设应用程序,如果是,则进行后续步骤。
所述处理器61,还用于如果第一数据量不大于预设的数据量阈值,传输所述第一数据包;
识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
所述处理器61,还用于当识别到下一周期来临时,将当前周期中已累计传输的每个应用程序的数据量清空。
所述处理器61,还用于如果所述待传输的第一数据包为待发送的数据包,则根据NF_INET_LOCAL_OUT位置上的hook函数是否被调用,确定是否存在待传输的第一数据包;
如果所述待传输的第一数据包为待接收的数据包,则根据NF_INET_LOCAL_IN位置上的hook函数是否被调用,确定是否存在待传输的第一数据包。
可选的,处理器61可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
实施例11:
本发明实施例提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如下步骤:
如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
如果是,则在当前周期中停止传输所述第一数据包。
进一步地,如果当前周期中已累计传输的所述第一应用程序的第一数据量大于预设的数据量阈值,保持所述第一应用程序继续在后台运行。
进一步地,缓存所述第一数据包。
进一步地,如果当前周期中已累计传输的所述第一应用程序的第一数据量大于预设的数据量阈值,保持所述第一应用程序继续在后台运行。
进一步地,缓存所述第一数据包。
进一步地,如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;
根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
进一步地,在缓存周期结束后,删除缓存的数据包。
进一步地,在确定所述第一数据包对应的第一应用程序为后台运行的应用程序之后,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值之前,判断当前前台运行的第三应用程序是否为预设应用程序,如果是,则进行后续步骤。
进一步地,如果第一数据量不大于预设的数据量阈值,传输所述第一数据包;
识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
进一步地,当识别到下一周期来临时,将当前周期中已累计传输的每个应用程序的数据量清空。
进一步地,如果所述待传输的第一数据包为待发送的数据包,则根据NF_INET_LOCAL_OUT位置上的hook函数是否被调用,确定是否存在待传输的第一数据包;
如果所述待传输的第一数据包为待接收的数据包,则根据NF_INET_LOCAL_IN位置上的hook函数是否被调用,确定是否存在待传输的第一数据包。
进一步地,当前周期中已累计传输的所述第一应用程序的第一数据量以结构体对象的方式保存在哈希表中。
进一步地,移动终端基于传输控制协议TCP方式进行数据传输。
上述可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NAND FLASH)、固态硬盘(SSD)等。
本发明实施例公开了一种数据传输方法、装置、移动终端和存储介质,该方法包括:如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;如果是,则在当前周期中停止传输所述第一数据包。由于在本发明实施例中,移动终端在确定待传输的第一数据包对应的第一应用程序为后台运行的应用程序,且在当前周期中已累计传输的第一应用程序的第一数据量大于数据量阈值时,在当前周期中停止传输该第一数据包。移动终端限制了后台运行的应用程序的传输的数据量,减小了后台运行的应用程序占用带宽,保证了前台运行的应用程序的带宽,使前台运行的应用程序更加流畅,避免了网络延迟,提高了用户体验。
对于系统/装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者一个操作与另一个实体或者另一个操作区分开来,而不一定要求或者暗示这些实体或者操作之间存在任何这种实际的关系或者顺序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全应用实施例、或结合应用和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据传输方法,其特征在于,所述方法包括:
如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
如果是,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
如果是,则在当前周期中停止传输所述第一数据包。
2.如权利要求1所述的方法,其特征在于,如果当前周期中已累计传输的所述第一应用程序的第一数据量大于预设的数据量阈值,所述方法还包括:
保持所述第一应用程序继续在后台运行。
3.如权利要求1或2所述的方法,其特征在于,所述方法还包括:
缓存所述第一数据包。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
如果下一周期来临,根据每个应用程序的优先级,确定进行数据传输的第二目标应用程序;
根据缓存的第二目标应用程序的数据包,选取预设类型的信息对应的第二数据包,并传输所述第二数据包。
5.如权利要求1所述的方法,其特征在于,如果第一数据量不大于预设的数据量阈值,所述方法还包括:
传输所述第一数据包;
识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
6.一种数据传输装置,其特征在于,所述装置包括:
第一判断模块,用于如果存在待传输的第一数据包,根据所述第一数据包中携带的应用程序的标识信息,判断所述第一数据包对应的第一应用程序是否为后台运行的应用程序;
第二判断模块,用于在所述第一判断模块的判断结果为是时,判断在当前周期中已累计传输的所述第一应用程序的第一数据量是否大于预设的数据量阈值;
停止模块,用于在所述第二判断模块的判断结果为是时,在当前周期中停止传输所述第一数据包。
7.如权利要求6所述的装置,其特征在于,所述装置还包括:
保持模块,用于在所述第二判断模块的判断结果为是时,保持所述第一应用程序继续在后台运行。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
第一传输模块,还用于在所述第二判断模块的判断结果为否时,传输所述第一数据包;
更新模块,用于识别所述第一数据包的第二数据量,根据所述第二数据量对当前周期中已累计传输的所述第一应用程序的第一数据量进行更新。
9.一种移动终端,其特征在于,所述移动终端包括:处理器和存储器;
所述处理器用于执行存储器中存储的计算机程序时,实现如权利要求1-5中任一项所述方法的步骤。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711080370.0A CN107770092A (zh) | 2017-11-06 | 2017-11-06 | 一种数据传输方法、装置、移动终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711080370.0A CN107770092A (zh) | 2017-11-06 | 2017-11-06 | 一种数据传输方法、装置、移动终端和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107770092A true CN107770092A (zh) | 2018-03-06 |
Family
ID=61273020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711080370.0A Pending CN107770092A (zh) | 2017-11-06 | 2017-11-06 | 一种数据传输方法、装置、移动终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107770092A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150741A (zh) * | 2018-08-10 | 2019-01-04 | Oppo广东移动通信有限公司 | 报文发送方法、装置、电子设备及存储介质 |
CN110855575A (zh) * | 2019-09-30 | 2020-02-28 | 华为技术有限公司 | Tcp报文的调度方法、装置及通信设备 |
CN111200753A (zh) * | 2020-02-20 | 2020-05-26 | 四川长虹电器股份有限公司 | 提升Android电视网络视频播放流畅度的方法 |
CN112084494A (zh) * | 2020-09-21 | 2020-12-15 | 百度在线网络技术(北京)有限公司 | 敏感信息检测方法、装置、设备以及存储介质 |
CN112261680A (zh) * | 2020-10-22 | 2021-01-22 | 珠海格力电器股份有限公司 | 调整网络的方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013152349A1 (en) * | 2012-04-06 | 2013-10-10 | Yang Shaofeng | Intelligent power saving method for mobile devices running location based service (lbs) applications |
US20150186955A1 (en) * | 2013-12-26 | 2015-07-02 | Steve Gaither | PhotoTour Referral Marketing Hyperlink |
CN105337783A (zh) * | 2014-07-14 | 2016-02-17 | 北京奇虎科技有限公司 | 监测通信设备非正常消耗流量的方法及装置 |
CN105979065A (zh) * | 2016-04-19 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种移动终端流量监控方法及装置 |
CN106095547A (zh) * | 2016-06-03 | 2016-11-09 | 北京小米移动软件有限公司 | 应用程序联网控制方法及装置 |
-
2017
- 2017-11-06 CN CN201711080370.0A patent/CN107770092A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013152349A1 (en) * | 2012-04-06 | 2013-10-10 | Yang Shaofeng | Intelligent power saving method for mobile devices running location based service (lbs) applications |
US20150186955A1 (en) * | 2013-12-26 | 2015-07-02 | Steve Gaither | PhotoTour Referral Marketing Hyperlink |
CN105337783A (zh) * | 2014-07-14 | 2016-02-17 | 北京奇虎科技有限公司 | 监测通信设备非正常消耗流量的方法及装置 |
CN105979065A (zh) * | 2016-04-19 | 2016-09-28 | 乐视控股(北京)有限公司 | 一种移动终端流量监控方法及装置 |
CN106095547A (zh) * | 2016-06-03 | 2016-11-09 | 北京小米移动软件有限公司 | 应用程序联网控制方法及装置 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150741A (zh) * | 2018-08-10 | 2019-01-04 | Oppo广东移动通信有限公司 | 报文发送方法、装置、电子设备及存储介质 |
CN109150741B (zh) * | 2018-08-10 | 2022-05-20 | Oppo广东移动通信有限公司 | 报文发送方法、装置、电子设备及存储介质 |
CN110855575A (zh) * | 2019-09-30 | 2020-02-28 | 华为技术有限公司 | Tcp报文的调度方法、装置及通信设备 |
CN110855575B (zh) * | 2019-09-30 | 2022-05-06 | 荣耀终端有限公司 | Tcp报文的调度方法、装置及通信设备 |
CN111200753A (zh) * | 2020-02-20 | 2020-05-26 | 四川长虹电器股份有限公司 | 提升Android电视网络视频播放流畅度的方法 |
CN112084494A (zh) * | 2020-09-21 | 2020-12-15 | 百度在线网络技术(北京)有限公司 | 敏感信息检测方法、装置、设备以及存储介质 |
CN112261680A (zh) * | 2020-10-22 | 2021-01-22 | 珠海格力电器股份有限公司 | 调整网络的方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107770092A (zh) | 一种数据传输方法、装置、移动终端和存储介质 | |
CN109412964B (zh) | 报文控制方法及网络装置 | |
CN113934660B (zh) | 加速网络分组处理 | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
EP2643957B1 (en) | Object-based transport protocol | |
CN103297347B (zh) | 一种负载均衡处理方法及装置 | |
CN106537867B (zh) | 一种数据传输方法、装置和系统 | |
CN108199925A (zh) | 一种数据发送方法、接收方法及装置 | |
CN106534345A (zh) | 一种报文转发方法及装置 | |
CN109218200A (zh) | 一种报文处理方法及装置 | |
US11455160B1 (en) | Simultaneous operation of a networked device using multiple disparate networks | |
CN105939297A (zh) | 一种tcp报文重组方法和装置 | |
CN113746782A (zh) | 报文处理方法、装置及相关设备 | |
CN105099915A (zh) | 一种建立业务路径的方法和设备 | |
WO2021143610A1 (zh) | 流表项的控制方法、装置及系统 | |
CN113992654A (zh) | 一种高速的文件传输方法、系统、设备及介质 | |
WO2019033891A1 (zh) | 一种基于rdma的网络流量确定方法及装置 | |
CN109361602B (zh) | 一种基于OpenStack云平台转发报文的方法和系统 | |
CN110602001A (zh) | 远端环回测试装置及方法 | |
CN110798451A (zh) | 一种安全认证的方法及装置 | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN110278156A (zh) | 组播路由处理方法、网络设备以及路由反射器 | |
CN107819697A (zh) | 数据传输方法、交换机及数据中心 | |
CN108337182A (zh) | 一种报负载分担方法及网络设备 | |
CN106453635B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180306 |