一种智能限速方法和装置、一种下载系统与流程

文档序号:11733364阅读:218来源:国知局
一种智能限速方法和装置、一种下载系统与流程
本发明涉及计算机通信技术领域,特别是涉及一种智能限速方法和装置、一种下载系统。

背景技术:
互联网的主要应用之一就是资源共享,用户可通过互联网获得需要的信息和数据,这就引出了下载的概念,其是通过网络进行传输文件,把互联网保存到本地电脑上的一种网络活动。以P2P(点对点,PeertoPeer,点对点)模式的下载为例,每个节点的地位都是对等的,同时承担服务器和客户端的角色,也即,在节点作为服务器的时候要占用上传带宽,在节点作为客户端的时候要占用下载带宽。但是,在用户的计算机上,不同应用程序的网络带宽是共享的,如果一个程序对带宽资源无节制的使用,必定会造成其他应用程序的网络行为受到不利的影响。这样,在运行下载程序时,其它网络应用程序(如浏览器、网络游戏、网络视频或视频聊天等)也需要占用网络带宽,这就出现下载程序抢占过多网络带宽,从而影响其它网络应用体验的现象;例如,在执行一个下载任务时,浏览网页就会变得很慢,网络游戏将会变得很卡,等等。针对下载程序抢占过多网络带宽的现象,现有技术提供两种解决方法:现有技术一、对下载程序进行固定限速,具体而言,在下载程序中固定下载和上传的限速值,进行绝对限速。例如,一旦设置下载程序的下载速度是200KB/S,上传速度是50KB/S,则这个程序下载和上传的速度都不会超过各自的阈值,通常会尽量接近这个阈值。上述固定限速主要有两方面的问题:一是如果将下载速度或者上传速度设置得过低,将导致带宽利用不充分,以及带宽资源浪费;二是,如果带宽限制过小,也即将下载速度或者上传速度设置得过高,将会导致其它网络应用程序无法正常访问网络。现有技术二、对下载程序进行智能限速,传统的智能限速主要依据本下载程序网络行为(比如收发包,延迟,超时等)的探测结果,来调节下载速度或者上传速度。例如,在探测到丢包率上升时,就会主动降低下载速度,等等。虽然智能限速能够动态调节限速值,但是,由于仅在下载过程中孤立地分析本下载程序的网络行为,这样得到的限速结果仍然不可避免地造成对其它网络应用程序的影响;例如,一旦下载任务占用尽可能多的带宽,则用户在玩网络游戏时,将会出现大量网络延迟,导致网络游戏受到严重影响,甚至无法正常进行。总之,需要本领域技术人员迫切解决的一个技术问题就是:如何能够在避免带宽资源浪费的前提下,使得除下载程序外的其它网络应用程序能够正常访问网络。

技术实现要素:
本发明所要解决的技术问题是提供一种智能限速方法和装置,既能够避免带宽资源浪费,又能够使得除下载程序外的其它网络应用程序正常访问网络。相应的,本发明还提供了一种下载系统,用以保证上述智能限速方法和装置在下载过程中的应用。为了解决上述问题,本发明公开了一种智能限速方法,包括:探测当前系统环境,所述当前系统环境包括非限速应用程序的环境要素,其中,所述非限速应用程序为除下载程序外的应用程序;依据非限速应用程序的环境要素,调节下载程序的下载速度上限和/或上传速度上限。优选的,所述探测当前系统环境的步骤为,周期性地获取当前系统环境的要素。优选的,依据非限速应用程序的环境要素,调节下载程序的下载速度上限和/或上传速度上限的步骤,包括:获取当前网络的下载速度上限和/或上传速度上限;依据所述非限速应用程序的环境要素,获取下载速度预留和/或上传速度预留;依据下载速度上限与下载速度预留之间的差值,得到下载程序的下载速度上限,和/或,依据上传速度上限与上传速度预留之间的差值,得到上传速度上限。优选的,依据非限速应用程序的环境要素,调节下载程序的下载速度上限和/或上传速度上限的步骤,包括:获取非限速应用程序所需占用的系统资源;所述非限速应用程序的环境要素包括系统正常运行所占用的系统资源;依据非限速应用程序所需占用的系统资源与系统正常运行所占用的系统资源之间的差值,得到下载程序占用的系统资源上限;利用下载程序占用的系统资源上限对其进行下载速度上限和/或上传速度上限的调节。另一方面,本发明还公开了一种智能限速装置,包括:探测模块,用于探测当前系统环境,所述当前系统环境包括非限速应用程序的环境要素,其中,所述非限速应用程序为除下载程序外的应用程序;及调节模块,用于依据所述非限速应用程序的环境要素,调节下载程序的下载速度上限和/或上传速度上限。优选的,所述调节模块,包括:上限获取子模块,用于获取当前网络的下载速度上限和/或上传速度上限;预留获取子模块,用于依据所述非限速应用程序的环境要素,获取下载速度预留和/或上传速度预留;调节子模块,用于依据下载速度上限与下载速度预留之间的差值,得到下载程序的下载速度上限,和/或,依据上传速度上限与上传速度预留之间的差值,得到上传速度上限。优选的,所述调节模块,包括:第一获取子模块,用于获取非限速应用程序所需占用的系统资源;所述非限速应用程序的环境要素包括系统正常运行所占用的系统资源;第一上限获取子模块,用于依据非限速应用程序所需占用的系统资源与系统正常运行所占用的系统资源之间的差值,得到下载程序占用的系统资源上限;调节子模块,用于利用下载程序占用的系统资源上限对其进行下载速度上限和/或上传速度上限的调节。另一方面,本发明还公开了一种下载系统,其特征在于,包括前述的智能限速装置。与现有技术相比,本发明具有以下优点:本发明依据探测到的当前系统环境,调节下载程序的下载速度和上传速度;由于系统环境为整台计算机上所有网络应用程序的运行环境,系统环境的探测结果能够反映该运行环境的状况,因此,相对于传统的智能限速,依据系统环境的探测结果得到的限速结果,能够避免下载程序对其它网络应用程序的影响,使得除下载程序外的其它网络应用程序正常访问网络,从而能够满足整台计算机上所有网络应用程序的顺畅运行需求。附图说明图1是本发明一种智能限速方法实施例的流程图;图2是本发明一种智能限速装置实施例的结构图;图3是本发明一种下载系统实施例的结构图。具体实施方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。由于传统的智能限速仅在下载过程中孤立地分析本下载程序的网络行为,故依据分析结果得到的限速结果仍然不可避免地造成对其它网络应用程序的影响,使得除下载程序外的其它网络应用程序不能够正常访问网络,从而不能满足整台计算机上所有网络应用程序的顺畅运行需求。本专利发明人注意到了这一点,因而创造性地提出了本发明实施例的核心构思之一,也即,基于对用户所使用系统环境的探测,智能限制下载程序的下载速度和上传速度;由于系统环境为整台计算机上所有网络应用程序的运行环境,系统环境的探测结果能够反映该运行环境的状况,因此,相对于传统的智能限速,依据系统环境的探测结果得到的限速结果,能够避免下载程序对其它网络应用程序的影响,使得除下载程序外的其它网络应用程序正常访问网络,从而能够满足整台计算机上所有网络应用程序的顺畅运行需求。参照图1,示出了本发明一种智能限速方法实施例的流程图,具体可以包括:步骤101、探测当前系统环境;在本发明实施例中,系统环境主要是指计算机所处的操作系统环境;其中,计算机可以是固定计算机,也可以是移动计算机(MobileComputer),如智能手机、PPC(掌上电脑,PocketPC)、PDA(个人数字助理,PersonalDigitalAssistant)等;这里的操作系统可以是Windows、UNIX、LINUX、Netware、XENIX等操作系统,本发明实施例仅以Windows操作系统为例进行说明,其它操作系统相互参照即可。在具体实现中,所述探测步骤101的一种优选形式可以为,周期性地获取当前系统环境的要素。其中,这里的周期可由本领域技术人员根据实际情况进行设定,例如,其可以是2分钟、5分钟、10分钟等等,总之,所述探测步骤既应以及时探测当前系统环境为宗旨,又要以不打扰用户为前提,而不会对具体的周期及设定方式加以限制。步骤102、依据所述当前系统环境,调节下载程序的下载速度上限和/或上传速度上限。作为限速对象,这里的下载程序主要指需要占用网络带宽的网络应用程序中的下载程序,如金山网盾、瑞星防火墙、天网防火墙、安全之道、360安全卫士的下载、升级,迅雷、电炉等下载程序等,本发明对具体的下载程序不加以限制。为反映整台计算机上所有网络应用程序的运行环境,本发明实施例可以根据不同的当前系统环境,提供不同的速度调节方案,具体可以包括:1、系统负载要素;在本发明的一种优选实施例中,所述当前系统环境可以包括系统负载要素,所述系统负载要素主要可以包括CPU占用率和/或内存占用率。通常来说,系统负载要素越多,表示系统负载越重,此时,应该往下调节下载程序的下载速度和上传速度。因此,在本发明的一种优选实施例中,所述步骤102具体可以包括:在所述系统负载要素超出预置负载上限时,降低下载程序的下载速度上限和/或上传速度上限,直至所述系统负载要素不超出所述预置负载上限。在实际中,可以依据当前系统的实际情况(如配置参数),分别为CPU占用率和/或内存占用率设置一个预置负载上限,表示超过了这个预置负载上限,将会影响系统的正常运行,从而影响整台计算机上所有网络应用程序的顺畅运行。例如,CPU占用率的预置负载上限为30%,在探测得到的CPU占用率超出预置负载上限时,则需要一直降低下载程序的下载速度上限和/或上传速度上限,直至CPU占用率小于等于30%。对于内存占用率的预置负载上限在限速中的应用,相互参照即可,在此不作赘述。当然,除了CPU占用率和内存占用率外,本领域技术人员还可以根据实际需要,探测其它系统负载要素,如I/O请求(输入输出请求)等,本发明对具体的系统负载要素不加以限制。2、非限速应用程序的环境要素;除了下载程序本身,系统中还运行了其它应用程序,如浏览器、网络游戏、网络视频或者视频聊天等,在探测到这些应用程序运行时,则表示有网络应用程序共享计算机上的网络带宽,此时,也应该往下调节下载程序的下载速度和上传速度。因此,在本发明的另一种优选实施例中,所述当前系统环境可以包括非限速应用程序的环境要素,其中,所述非限速应用程序主要为除下载程序外的应用程序。作为一种优选实施例,所述步骤102具体可以包括:子步骤A1、获取当前网络的下载速度上限和/或上传速度上限;假设子步骤A1获取得到当前网络的下载速度上限为300KB/S。子步骤A2、依据所述非限速应用程序的环境要素,获取下载速度预留和/或上传速度预留;假设当前非限速应用程序包括浏览器、网络游戏、网络视频,则可以根据以往探测的经验值,获得这些非限速应用程序能够顺畅运行的最低带宽,也即下载速度预留分别为:浏览器(30KB/S)、网络游戏(20KB/S)、网络视频(50KB/S)。因此,可以得知,在对下载程序进行限速时,下载速度预留为30+20+50=100KB/S。子步骤A3、依据下载速度上限与下载速度预留之间的差值,得到下载程序的下载速度上限,和/或,依据上传速度上限与上传速度预留之间的差值,得到上传速度上限。在某些情况下,可以直接以下载速度上限与下载速度预留之间的差值,作为下载程序的下载速度上限,也即上例中300KB/S-100KB/S=200KB/S;在另外一些情况下,还可以为系统预留一定数量的带宽,以备其它非限速应用程序的启动,这样,下载程序的下载速度上限即为(200-S)KB/S,这里,S可根据实际情况确定,例如,可以为20KB/S、50KB/S,等等。对于上传速度上限,由于其调节过程与下载速度上限相似,故在此不作赘述,相互参照即可。作为另一种优选实施例,所述步骤102具体可以包括:子步骤B1、获取非限速应用程序所需占用的系统资源;所述非限速应用程序的环境要素包括系统正常运行所占用的系统资源;子步骤B2、依据非限速应用程序所需占用的系统资源与系统正常运行所占用的系统资源之间的差值,得到下载程序占用的系统资源上限;子步骤B3、利用下载程序占用的系统资源上限对其进行下载速度上限和/或上传速度上限的调节。当应用程序在Windows中运行时,Windows必须实时″跟踪″该应用程序的运行,并保留与之相关的许多信息,如光标、窗口的状况等,这些信息由Windows保留在一种叫堆的内存块中,堆的英文为Heap。简单地说,堆是采用特殊机制管理的内存块。由Windows的一个系统内核User.exe管理的堆叫作User资源堆(UserResourceHeap),由另一个系统内核Gdi.exe管理的堆叫作GDI资源堆(GraphicalDeviceInterfaceResourceHeap),User资源堆和GDI资源堆合称为系统资源堆(SystemResourceHeap),习惯上就把它们叫作系统资源(SystemResource)。例如,微软将Windows的系统资源(堆)分为五个堆,其中User资源堆为三个,而GDI资源堆为两个。三个User资源堆分别是:16位的用户堆(UserHeap,64KB);32位的窗口堆(WindowsHeap,2MB);32位的用户菜单堆(UserMenuHeap,2MB)。两个GDI资源堆分别是:16位的GDI堆(GDIHeap,64KB);32位的GDI堆(GDI,2MB)。无论CPU是P4还是486,内存是1G还是2G,Windows的所有用户都拥有同样大小的系统资源(堆),而不能单独增加或减少系统资源的大小,它的大小是由操作系统决定的,跟硬件无关。但是,在Windows中每运行一个程序,系统资源就会减少,因此,为避免Windows系统资源不足对整台计算机上所有网络应用程序的顺畅运行的影响,本优选实施例基于下载程序占用的系统资源上限进行相应的速度调节,这里,可依据非限速应用程序所需占用的系统资源与系统正常运行所占用的系统资源之间的差值,得到下载程序占用的系统资源上限。以32位的窗口堆2MB为例,假设系统正常运行所占用的系统资源为1.8MB,而当前非限速应用程序浏览器、网络游戏、网络视频所需占用的系统资源分别为0.1MB、0.4MB和0.55MB,那么,下载程序占用的系统资源上限则可以为1.8-0.1-0.4-0.55=0.75MB。至于如何利用下载程序占用的系统资源上限,对其进行下载速度上限和/或上传速度上限的调节;在具体实现中,可依据下载程序正常运行所占用的系统资源设置一个阈值T(假设为0.75MB),在下载程序占用的系统资源上限>T时,可以升高下载速度上限和/或上传速度上限,在下载程序占用的系统资源上限<T时,可以降低调节下载速度上限和/或上传速度上限,这里,升高和降低的幅度可由各种算法确定,在此不作赘述。当然,还可以采用其它调节方式,例如,可依据下载程序占用的系统资源与下载速度上限之间的关系,设置若干速度档位,然后,在调节时,通过插值或者查询,为下载程序占用的系统资源上限匹配得到对应的速度档位即可,在此不作赘述。3、下载程序的调用者信息。对于一个下载程序来说,通常还会根据功能不同将其划分为多个程序分支。例如,“360安全卫士”下面有木马防火墙、杀毒、网盾、防盗号、软件管家、硬件检测、网购保镖等多个程序分支,这些程序分支具有各自的防卫功能;并且,这些程序分支独立运行,分别连接互联网执行针对漏洞或补丁的下载任务。针对上述情形,本发明实施例可以探测下载程序的调用者信息这一要素,其主要表示谁启动了下载程序进行下载,其可以是某个程序,可以是用户。这样,下载程序就可以根据下载程序的调用者信息的不同对下载程序进行限速,具体可以包括如下情形:情形A、在本发明的一种优选实施例中,所述下载程序的调用者信息具体可以包括调用者和调用者的重要度;此时,所述步骤102可以包括:依据所述调用者的重要度,调节相应调用者的下载速度上限和/或上传速度上限,在调用者的重要度高时,升高相应调用者的下载速度上限和/或上传速度上限。实际上,调用者的重要度高则表示调用者对速度敏感,故可以升高相应调用者的下载速度上限和/或上传速度上限;反之,若调用者的重要度低,则表示调用者对速度不敏感,故可以降低相应调用者的下载速度上限和/或上传速度上限。这里,重要度的高或低可以通过某项或者多项指标量化得到,也可以通过经验值设置,本发明对具体的获取方式不加以限制。情形B、在本发明的一种优选实施例中,所述下载程序的调用者信息具体可以包括调用者和对应的权值;所述方法还可以包括:依据各自权值,将所述下载程序的下载速度上限和上传速度上限分配到相应的调用者。例如,当前“360安全卫士”有木马防火墙、杀毒两个调用者同时调用下载任务,且二者的权值分别为60%、40%,则可以将子步骤A3求得下载速度上限分配到这两个调用者:200*60%=120KB/S,200*40%=80KB/S。需要说明的是,从步骤101探测当前系统环境,到步骤102依据所述当前系统环境,调节下载程序的下载速度和上传速度的整个过程,均在本地完成,本发明实施例也不会将与当前系统环境相关的资料上报给服务器,因而不会泄露用户隐私。以上对三种当前系统环境的要素进行了详细介绍,可以理解,本领域技术人员可以根据需要联合使用所述三种当前系统环境的要素,或者,使用其中任一种,本发明对此不加以限制。例如,在本发明的一种优选实施例中,所述当前系统环境具体可以包括系统负载要素、非限速应用程序的环境要素和下载程序的调用者的一种或多种,其中,所述系统负载要素具体可以包括CPU占用率和/或内存占用率,所述非限速应用程序为除下载程序外的应用程序;所述步骤102,具体可以包括:子步骤C1、获取当前网络的下载速度上限和上传速度上限;子步骤C2、依据所述非限速应用程序的环境要素,获取下载速度预留和上传速度预留;子步骤C3、分别获取所述用户行为要素、系统负载要素和下载程序的调用者中一种或多种的限速因子;子步骤C4、计算得到下载程序的下载速度上限和上传速度上限;其中,所述计算得到下载程序的下载速度上限的步骤,具体可以包括:子步骤C41、求得下载速度上限与下载速度预留之间的第一差值;子步骤C42、以所述第一差值与系统环境总限速因子的乘积,作为下载程序的下载速度上限;所述计算得到下载程序的上传速度上限的步骤,包括:子步骤C43、求得上传速度上限与上传速度预留之间的第二差值;子步骤C44、以所述第二差值与系统环境总限速因子的乘积,作为下载程序的上传速度上限;其中,所述系统环境总限速因子可以为所述用户行为要素、系统负载要素和下载程序的调用者中一种或多种限速因子的乘积,或者,所述用户行为要素、系统负载要素和下载程序的调用者中一种或多种限速因子的加权平均。上述限速因子,主要表示各系统环境在限速中所起的作用,可将其取值范围设置为0~100%。例如,如果当前系统负载要素比较多,意味着限速比较严格,故可以将相应的限速因子设置得小一点,例如为50%;又如,下载程序的调用者(本例中下载程序)的重要度比较低,对速度不敏感,则会限速较严格,故可以将相应的限速因子设置得小一点,例如为20%,如果下载程序的调用者的重要度比较高,对速度敏感,则限速不严格,故可以将相应的限速因子设置得大一点,例如为50%。当然,上述限速因子只是作为示例,在实施本发明时,可以根据实际情况设置其它限速因子,本发明对此不加以限制,对应上述例子,子步骤A1获取得到当前网络的下载速度上限为300KB/S,子步骤A2得到的下载速度预留为100KB/S,子步骤A3得到的所述系统负载要素和下载程序的调用者的限速因子分别为:80%、50%,则本发明实施例可以提供如下限速值计算方案:方案一、计算公式为:(下载速度上限-下载速度预留)*所述系统负载要素和下载程序的调用者的限速因子的乘积;对应上例:(300-100)*80%*50%=80KB/S。方案二、计算公式为:(下载速度上限-下载速度预留)*所述系统负载要素和下载程序的调用者的限速因子的加权平均。在加权平均时,需要首先分配给所述系统负载要素和下载程序的调用者以权值,例如分别为30%和70%,在加权平均结果可以为:80%*30%+50%*70%=59%。对应上例:(300-100)*59%=118KB/S。当然,上述权值只是作为示例,在实施本发明时,可以根据实际情况设置其它权值,本发明对此不加以限制。另外,除了上述两种限速值计算方案外,本领域技术人员还可以实际需要采用其它限速值计算方案,本发明对此也不加以限制。与前述智能限速方法实施例相应,本发明还公开了一种智能限速装置,参照图2,具体可以包括:探测模块201,用于探测当前系统环境;及调节模块202,用于依据所述当前系统环境,调节下载程序的下载速度和上传速度。在本发明实施例中,优选的是,所述探测模块201可具体用于周期性地获取当前系统环境的要素。为反映整台计算机上所有网络应用程序的运行环境,本发明实施例可以根据不同的当前系统环境,提供不同的调节模块的设计方案,具体可以包括:方案一、在本发明的一种优选实施例中,所述当前系统环境具体可以包括系统负载要素,所述系统负载要素具体可以包括CPU占用率和/或内存占用率。在本发明实施例中,优选的是,所述调节模块具体可以包括:降低子模块,用于在所述系统负载要素超出预置负载上限时,降低下载程序的下载速度上限和/或上传速度上限,直至所述系统负载要素不超出所述预置负载上限。方案二、在本发明的另一种优选实施例中,所述当前系统环境具体可以包括非限速应用程序的环境要素,其中,所述非限速应用程序为除下载程序外的应用程序。在本发明实施例中,优选的是,所述调节模块,具体可以包括:上限获取子模块,用于获取当前网络的下载速度上限和/或上传速度上限;预留获取子模块,用于依据所述非限速应用程序的环境要素,获取下载速度预留和/或上传速度预留;调节子模块,用于依据下载速度上限与下载速度预留之间的差值,得到下载程序的下载速度上限,和/或,依据上传速度上限与上传速度预留之间的差值,得到上传速度上限。在本发明实施例中,优选的是,所述调节模块,具体可以包括:第一获取子模块,用于获取非限速应用程序所需占用的系统资源;所述非限速应用程序的环境要素包括系统正常运行所占用的系统资源;第一上限获取子模块,用于依据非限速应用程序所需占用的系统资源与系统正常运行所占用的系统资源之间的差值,得到下载程序占用的系统资源上限;调节子模块,用于利用下载程序占用的系统资源上限对其进行下载速度上限和/或上传速度上限的调节。方案三、在本发明的再一种优选实施例中,所述当前系统环境可以包括下载程序的调用者信息。在本发明的一种优选实施例中,所述下载程序的调用者信息具体可以包括调用者和调用者的重要度;相应地,所述调节模块,具体可以包括:重要度调节子模块,用于依据所述调用者的重要度,调节相应调用者的下载速度上限和/或上传速度上限,重要度高的调用者比重要度低的调用者下载速度上限和/或上传速度上限高。在本发明的另一种优选实施例中,所述下载程序的调用者信息具体可以包括调用者和对应的权值;所述装置还可以包括:分配模块,用于依据各自权值,将所述下载程序的下载速度上限和上传速度上限分配到相应的调用者。对于智能限速装置实施例而言,由于其与智能限速方法实施例基本相似,所以描述的比较简单,相关之处参见智能限速方法实施例的部分说明即可。上述智能限速装置可以应用于下载系统中,所述包括智能限速装置的下载系统可以运行在智能手机、PPC、PDA等多种计算机设备上。参照图3,示出了本发明一种下载系统实施例的结构图,具体可以包括:下载任务调度模块301,用于开始下载任务;智能限速装置302,具体可以包括:探测模块321,用于在开始下载任务时,探测当前系统环境;及调节模块322,用于依据所述当前系统环境,调节下载程序的下载速度和上传速度;及下载模块303,用于执行所述下载任务。对于下载系统实施例而言,由于其与智能限速方法实施例基本相似,所以描述的比较简单,相关之处参见智能限速方法实施例的部分说明即可。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。以上对本发明所提供的一种智能限速方法和装置、一种下载系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1