发明内容
有鉴于此,本发明实施例提供一种带宽限制的方法、装置及系统,主要目的在于解决设置带宽上限需要进行硬件改造的问题。
依据本发明一个方面,提供了一种带宽限制的方法,该方法包括:
接收服务器下发的设置指令,设置指令携带有用于设置终端带宽上限的脚本文件以及绑定关系表,绑定关系表用于记录终端标识与带宽上限信息之间的对应关系;
解析并执行脚本文件,获取自身的终端标识;
在绑定关系表中查找对应终端标识的带宽上限信息;
按照带宽上限信息设置自身的带宽上限。
根据本发明的另一个方面,提供了带宽限制的装置,该装置包括:
接收单元,用于接收服务器下发的设置指令,设置指令携带有用于设置终端带宽上限的脚本文件以及绑定关系表,绑定关系表用于记录终端标识与带宽上限信息之间的对应关系;
处理单元,用于解析并执行接收单元接收的脚本文件,获取自身的终端标识;
查找单元,用于在所述接收单元接收的绑定关系表中查找对应终端标识的带宽上限信息;
第一设置单元,用于按照查找单元查找的带宽上限信息设置自身的带宽上限。
根据本发明的另一个方面,提供了一种带宽限制的系统,该系统包括:终端及服务器,终端包括如上的装置;
服务器,用于:
生成脚本文件以及绑定关系表,脚本文件用于指示终端设置自身的带宽上限,绑定关系表用于记录终端标识与带宽上限信息之间的对应关系;
向终端下发设置指令,设置指令中携带有脚本文件以及绑定关系表,以便终端解析并执行脚本文件,按照绑定关系表设置自身的带宽上限。
借由上述技术方案,本发明提供的带宽限制的方法、装置及系统,在带宽资源有限的情况下,由终端执行服务器下发的设置指令对自身的带宽上限进行设置。具体的,服务器向终端下发设置指令,该设置指令中携带有用于设置终端带宽上限的脚本文件以及绑定关系表,终端解析并执行脚本文件,同时获取其自身的终端标识,在绑定关系表中查找对应终端标识的带宽上限信息,按照带宽上限信息设置其自身的带宽上限;与现有技术相比,本发明中服务器仅需要将设置带宽上限的设置指令下发给终端,由终端根据该设置指令自行设置带宽上限,带宽设置过程不涉及对路由器硬件的设置。同时,由于是在终端侧完成的带宽设置,服务器除下发设置指令外无需执行任何处理操作,因此本发明还可以减轻服务器的负荷压力,提高局域网的运行效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种带宽限制的方法,如图1所示,该方法包括:
101、接收服务器下发的设置指令。
在局域网环境中,带宽资源是有限的,为了确保服务器能够及时响应终端的请求,因此需要对每台终端占用的带宽上限进行限制,本发明实施例采用在终端设备侧对带宽上限进行设置。在对带宽上限进行设置时,由服务器向终端下发设置指令,终端接收到该设置指令之后,根据设置指令中携带的信息设置带宽上限。其中,该设置指令中携带有用于设置终端带宽上限的脚本文件以及绑定关系表,服务器绑定关系表用于记录终端标识与带宽上限信息之间的对应关系。
本发明实施例在运行过程中,服务器与终端首先需要预定并遵循一套语法规则,在服务器内编写脚本文件,构建设置带宽上限的流程;由于终端的业务内容不同,因此终端设置其自身的带宽上限时可能与其他终端的带宽上限相同,也可能与其他终端的带宽上限不同,具体的设置带宽上限要根据绑定关系表中记录的终端标识与带宽上限信息进行设置。
102、解析并执行服务器脚本文件,获取自身的终端标识。
对步骤101中接收到的服务器脚本文件进行解析,首先终端构建一个脚本解释器,该脚本解释器用于完成对脚本文件的解析与转换,生成二进制数据文件;其次终端构造一个脚本执行器,该脚本执行器用于执行上述解析出的二进制数据文件。基于构造完成脚本解释器和脚本执行器,执行下述步骤103、步骤104。终端获取其自身的终端标识,每个终端标识都是唯一确定的,示例性的,终端1的终端标识为a1b2,终端2的终端标识为ZD2,终端3的终端标识为jyw3等等,本发明实施例对终端其自身的终端标识不进行限制。
103、在绑定关系表中查找对应终端标识的带宽上限信息。
正如前面所述的,不同的终端对应设置不同的带宽上限,因此,终端需要根据其自身的终端标识设置带宽上限,首先终端获取绑定关系表,如图2所示,在该绑定关系表中查找对应终端标识的带宽上限信息。
终端在绑定关系表中查找对应终端标识的带宽上限信息,在本发明实施例的一种实现方式中,终端可以逐次查找其自身所处的绑定关系表中的位置,并获取其对应终端标识的带宽上限信息。而在本发明实施例的另一种实现方式中,终端通过二分法的方式在所述绑定关系表中查找其自身对应的终端标识的带宽上限信息。示例性的,假设终端2对其自身的带宽上限进行设置,请继续参考图2,将该绑定关系表中的终端3作为二分法的分界点,终端2智能判断从小于分界点的位置处查找对应终端标识的带宽上限信息。其中,通过二分法的方式在所述绑定关系表中查找其自身对应的终端标识的带宽上限信息能够有效降低查找其自身对应的终端标识的带宽上限信息的消耗时间,本发明实施例对在绑定关系表中查找对应终端标识的带宽上限信息的具体方式不进行限制。
104、按照服务器带宽上限信息设置自身的带宽上限。
终端根据步骤103中查找到的对应终端标识的带宽上限信息设置其自身的带宽上限,如此便能有效控制局域网中每台终端的带宽占用。
本发明实施例提供的带宽限制的方法,在带宽资源有限的情况下,由终端执行服务器下发的设置指令对自身的带宽上限进行设置。具体的,服务器向终端下发设置指令,该设置指令中携带有用于设置终端带宽上限的脚本文件以及绑定关系表,终端解析并执行脚本文件,同时获取其自身的终端标识,在绑定关系表中查找对应终端标识的带宽上限信息,按照带宽上限信息设置其自身的带宽上限;与现有技术相比,本发明实施例中服务器仅需要将设置带宽上限的设置指令下发给终端,由终端根据该设置指令自行设置带宽上限,带宽设置过程不涉及对路由器硬件的设置。同时,由于是在终端侧完成的带宽设置,服务器除下发设置指令外无需执行任何处理操作,因此本发明实施例还可以减轻服务器的负荷压力,提高局域网的运行效率。
进一步的,本发明实施例中设置带宽上限的目的在于防止某个终端过度占用服务器的带宽资源,当终端向服务器发送的数据包流量超过终端所设置的带宽上限时,终端对部分数据包进行丢包处理,直到该数据包流量在设置的带宽上限以内,将该数据包发送给服务器,服务器会根据协议将进行丢包处理的数据进行补包。服务器不会限制终端中超过带宽上限数据包的发送请求,而是对超过带宽上限的数据包进行丢包处理,该种方式既不会造成过度占用服务器的带宽资源,又不会限制终端使用服务器的资源。
进一步的,作为丢包处理的细化和扩展,在对部分数据包进行丢包处理时,可以采用但不局限于以下的方式:
方式一:
优先丢弃冗余数据包或数据量小于预设值的数据包。
当数据包流量超过所述带宽上限时,优先丢弃冗余数据包。当终端向局域网内的服务器发送数据包时,终端对该数据包中的内容进行遍历,将遍历到的冗余数据包丢弃,直到该数据包流量在设置的带宽上限以内。在实际应用中,当终端向互联网发送数据包时,局域网内的服务器会对终端发送的数据包进行监测,若监测到终端发送的数据包超过了带宽上限,可能会通知终端该数据包超过了带宽上限,由终端进行丢包处理,直到该数据包流量在设置的带宽上限以内;或者,也可能存在当局域网内的服务器监测到终端发送的数据包超过了带宽上限之后,由局域网内的服务器进行丢包处理,直到该数据包流量在设置的带宽上限以内。具体的本发明实施例对丢包处理的内容及由哪端进行的丢包处理本发明实施例对此不进行限制。
当数据包流量超过所述带宽上限时,丢弃数据量小于预设值的数据包。当终端向局域网内的服务器发送数据包时,终端对该数据包中的内容进行遍历,将遍历到的数据量小于预设值的数据包丢弃,所述预设值的数据包的大小是人为设置的,本发明实施例在对预设值的数据包进行设置时,可以采用但不局限于以下的方式实现,例如,设置预设值的数据包的大小为10KB,或者设置预设值的数据包的大小为8KB,具体的本发明实施例不进行限制。
方式二:
按照预设的丢包间隔丢弃所述部分数据包。
当数据包流量超过所述带宽上限时,终端按照预设的丢包间隔丢弃所述部分数据包,所述预定的丢包间隔时人为设置的。本发明实施例将终端发送的数据包进行划分,可以将一个数据包划分为数据包1、数据包2、数据包3、数据包4…在对预定的丢包间隔进行设置时,可以采用但不局限于以下的方式实现,如图3所示,按照如下方式进行发送:发送数据包1,丢弃数据包2,发送数据包3,丢弃数据包4…或者,如图4所示,将终端发送的数据包进行分组,例如,数据包1、数据包2、数据包3为一组,数据包4、数据包5、数据包6为二组,数据包7、数据包8、数据包9为三组…按照丢弃一组中的其中一个数据包的预设间隔丢弃数据包,例如,丢弃一组中的数据包2,丢弃二组中的数据包4,丢弃三组中的数据包7等等,具体的本发明实施例对设置预设的丢包间隔的方式不进行限制。
上述是对终端设置其自身带宽上限的说明,为了能更准确的限制终端占用带宽的资源,本发明实施例还可以根据不同的MAC(Media Access Control)地址对终端中的不同网卡分别设置二级带宽上限。其中,MAC地址用来定义网络设备的位置,一个MAC地址对应一个网卡,所有网卡的二级带宽上限之和不超过所述带宽上限。终端中的网卡可以包括无线网卡、有线网卡、虚拟网卡、便携式网卡等等,当终端中的网卡为多个时,需要对该些网卡分别设置二级带宽上限。示例性的,设置终端的带宽上限为500*103bit/s,假设,该终端中共有三个网卡,分别为网卡1、网卡2及网卡3,其中,设置网卡1的二级带宽上限为100*103bit/s,设置网卡2的二级带宽上限为200*103bit/s,设置网卡3的带宽上限为100*103bit/s,具体的本发明实施例对此不进行限制。
进一步的,在终端联网时接收设置指令,若在没有联网的情况下,终端与服务器无法进行通信连接,继而无法接收服务器下发的设置指令。
此外,除了上述步骤102中的终端标识外,本发明实施例还提供一种所述终端标识为MID,其中,所述MID可以唯一的标识一台终端。
进一步的,在服务器向终端下发设置指令之前,需要根据预定的语法规则编写脚本文件,在编写脚本文件时可以采用但不局限于以下是方式实现,例如,通过lua脚本语言编写脚本文件,得到lua脚本文件;也可以通过Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,python,Ruby,JavaFX脚本语言编写脚本文件。具体的本发明实施例对此不进行限制。
进一步的,作为对上述方法的实现,本发明实施例还提供一种带宽限制的装置,如图5所示,该装置包括:
接收单元51,用于接收服务器下发的设置指令,设置指令携带有用于设置终端带宽上限的脚本文件以及绑定关系表,绑定关系表用于记录终端标识与带宽上限信息之间的对应关系,在局域网环境中,带宽资源是有限的,为了确保服务器能够及时响应终端的请求,因此需要对每台终端占用的带宽上限进行限制,本发明实施例采用在终端设备侧对带宽上限进行设置。在对带宽上限进行设置时,由服务器向终端下发设置指令,终端接收到该设置指令之后,根据设置指令中携带的信息设置带宽上限;
处理单元52,用于解析并执行接收单元51接收的脚本文件,获取自身的终端标识,对接收单元51接收到的服务器脚本文件进行解析,首先终端构建一个脚本解释器,该脚本解释器用于完成对脚本文件的解析与转换,生成二进制数据文件;其次终端构造一个脚本执行器,该脚本执行器用于执行上述解析出的二进制数据文件;
查找单元53,用于在接收单元51接收的绑定关系表中查找对应终端标识的带宽上限信息,终端需要根据其自身的终端标识设置带宽上限,首先终端获取绑定关系表,在该绑定关系表中查找对应终端标识的带宽上限信息;
设置单元54,用于按照查找单元53查找的带宽上限信息设置自身的带宽上限,终端根据查找单元53查找到的对应终端标识的带宽上限信息设置其自身的带宽上限,如此便能有效控制局域网中每台终端的带宽占用。
进一步的,如图6所示,该装置进一步包括:
丢弃单元55,用于在设置单元54设置自身的带宽上限之后,当数据包流量超过带宽上限时,对部分数据包进行丢包处理,直到该数据包流量在设置的带宽上限以内,将该数据包发送给服务器,服务器会根据协议将进行丢包处理的数据进行补包。服务器不会限制终端中超过带宽上限数据包的发送请求,而是对超过带宽上限的数据包进行丢包处理,该种方式既不会造成过度占用服务器的带宽资源,又不会限制终端使用服务器的资源。
进一步的,丢弃单元55,用于优先丢弃冗余数据包或数据量小于预设值的数据包,当终端向局域网内的服务器发送数据包时,终端对该数据包中的内容进行遍历,将遍历到的冗余数据包丢弃,直到该数据包流量在设置的带宽上限以内;当终端向局域网内的服务器发送数据包时,终端对该数据包中的内容进行遍历,将遍历到的数据量小于预设值的数据包丢弃,所述预设值的数据包的大小是人为设置的。
进一步的,丢弃单元55还用于按照预设的丢包间隔丢弃部分数据包,所述预定的丢包间隔时人为设置的。
进一步的,该装置进一步包括:
设置单元54还用于根据不同的MAC地址对终端中的不同网卡分别设置二级带宽上限,当终端中的网卡为多个时,需要对该些网卡分别设置二级带宽上限,其中,终端中的网卡可以包括无线网卡、有线网卡、虚拟网卡、便携式网卡等等;
其中,一个MAC地址对应一个网卡,所有网卡的二级带宽上限之和不超过带宽上限。
进一步的,接收单元51用于在终端联网时接收设置指令,若在没有联网的情况下,终端与服务器无法进行通信连接,继而无法接收服务器下发的设置指令。
进一步的,处理单元52获取的终端标识为MID。
进一步的,接收单元51接收的脚本文件为lua脚本文件。
进一步的,一种带宽限制的系统,如图7所示,该系统包括终端71及服务器72,终端71包括如图5至图6中任一项所述的装置;
服务器72,用于:
生成脚本文件以及绑定关系表,脚本文件用于指示终端71设置自身的带宽上限,绑定关系表用于记录终端71标识与带宽上限信息之间的对应关系;
向终端71下发设置指令,设置指令中携带有脚本文件以及绑定关系表,以便终端71解析并执行脚本文件,按照绑定关系表设置自身的带宽上限。
本发明实施例提供的带宽限制的装置及系统,在带宽资源有限的情况下,由终端执行服务器下发的设置指令对自身的带宽上限进行设置。具体的,服务器向终端下发设置指令,该设置指令中携带有用于设置终端带宽上限的脚本文件以及绑定关系表,终端解析并执行脚本文件,同时获取其自身的终端标识,在绑定关系表中查找对应终端标识的带宽上限信息,按照带宽上限信息设置其自身的带宽上限;与现有技术相比,本发明实施例中服务器仅需要将设置带宽上限的设置指令下发给终端,由终端根据该设置指令自行设置带宽上限,带宽设置过程不涉及对路由器硬件的设置。同时,由于是在终端侧完成的带宽设置,服务器除下发设置指令外无需执行任何处理操作,因此本发明实施例还可以减轻服务器的负荷压力,提高局域网的运行效率。
此外,当终端向服务器发送的数据包流量超过终端所设置的带宽上限时,终端对部分数据包进行丢包处理,直到该数据包流量在设置的带宽上限以内,将该数据包发送给服务器,服务器不会限制终端中超过带宽上限数据包的发送请求,而是对超过带宽上限的数据包进行丢包处理,该种方式既不会造成过度占用服务器的带宽资源,又不会限制终端使用服务器资源的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的发明名称中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。