网络终端设备中实现单用户上行、下行限速的方法及设备与流程

文档序号:15567364发布日期:2018-09-29 03:39阅读:441来源:国知局

本发明涉及网络终端设备的qos(qualityofservice,服务质量)领域,具体来讲是一种网络终端设备中实现单用户上行、下行限速的方法及设备。



背景技术:

网络终端设备(networkterminalequipment)是一种专用于网络计算环境下的终端设备。一般来说,用户会通过连接网络终端设备来获取网络服务。但是,实际应用中,当网络带宽有限,而用户数又增大到一定程度时,可能会存在某个用户占用过大的网络带宽,导致其他用户的网络服务体验变差的问题。

因此,本领域技术人员亟需一种方案能根据实际用户需求,单独配置和限定各个用户能使用的上行、下行最大带宽,以解决上述技术问题。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种网络终端设备中实现单用户上行、下行限速的方法及设备,能根据实际用户需求,单独配置和限定各个用户能使用的上行、下行最大带宽,有效解决了因某个用户占用过大的网络带宽,导致其他用户的网络服务体验变差的问题。

为达到以上目的,本发明提供一种网络终端设备中实现单用户上行、下行限速的方法,包括以下步骤:

a、当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设备将判断该数据包对应的用户是否为新用户,若是新用户,则为其建立限速数据库,该限速数据库记录有指定时间内该用户上行或下行字节数变量、该用户的基准时刻以及根据用户需求配置的限速值;否则,直接进入步骤b;

b、当后续再有上行数据包进入或有下行数据包将离开时,网络终端设配将比较该数据包达到的时刻与该数据包对应用户的基准时刻,若时刻差未超过指定时间,则根据指定时间内该用户上行或下行字节数以及配置的限速值来确定是否转发该数据包;若时刻差超过指定时间,则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是否转发该数据包。

在上述技术方案的基础上,步骤a中建立的限速数据库包括以下数据段:该用户的mac地址、该用户的基准时刻、限速值、指定时间内该用户上行或下行字节数变量;其中,该用户的基准时刻初始化为该数据包到达的时刻,限速值供用户进行配置,指定时间内该用户上行或下行字节数变量初始化为该数据包的长度。

在上述技术方案的基础上,所述网络终端设备通过挂载钩子函数的方式,来实现步骤a和步骤b的操作。

在上述技术方案的基础上,步骤a具体包括以下操作:

a1、当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设备首先检测该数据包对应的用户是否为新用户,若为新用户,转入步骤a2;若不为新用户,则直接转入步骤b;

a2、网络终端设备为该用户建立相关的限速数据库;并利用网络终端设备底层向应用层提供配置接口,使应用层通过该配置接口依据用户需求来配置该用户的限速值,并将配置的限速值保存到该用户的限速数据库的限速值域中。

在上述技术方案的基础上,步骤b具体包括以下操作:

b1、当后续再有上行数据包进入或有下行数据包将离开时,网络终端设配将遍历所有用户,找到该数据包对应用户的限速数据库,转入步骤b2;

b2、将该数据包到达的时刻与该用户的限速数据库中的基准时刻进行比较,如果时刻差未超过指定时间,转入步骤b3;如果时刻差超过指定时间,则转入步骤b4;

b3、将该用户的限速数据库中记录的指定时间内该用户上行或下行字节数变量加上该数据包的长度;判断当前记录的指定时间内该用户上行或下行字节数变量是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包;

b4、计算该用户在该时刻差内的速率;用该数据包到达的时刻更新该用户的限速数据库中记录的基准时刻,同时清零限速数据库中记录的指定时间内该用户上行或下行字节数变量;再判断计算的该用户在该时刻差内的速率是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包。

本发明还提供一种实现上述方法的网络终端设备,包括新用户限速数据库建立模块和单用户上下行限速处理模块;

所述新用户限速数据库建立模块用于:当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,判断该数据包对应的用户是否为新用户,若是新用户,则为其建立相关的限速数据库,该限速数据库记录有指定时间内该用户上行或下行字节数变量、该用户的基准时刻以及根据用户需求配置的限速值;

所述单用户上下行限速处理模块用于:当后续再有上行数据包进入或有下行数据包将离开网络终端时,比较该数据包达到的时刻与该数据包对应用户的基准时刻,若时刻差未超过指定时间,则根据指定时间内该用户上行或下行字节数以及配置的限速值来确定是否转发该数据包;若时刻差超过指定时间,则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是否转发该数据包。

在上述技术方案的基础上,所述限速数据库包括以下数据段:该用户的mac地址、该用户的基准时刻、限速值、指定时间内该用户上行或下行字节数变量;其中,该用户的基准时刻初始化为该数据包到达的时刻,限速值供用户进行配置,指定时间内该用户上行或下行字节数变量初始化为该数据包的长度。

在上述技术方案的基础上,所述新用户限速数据库建立模块、所述单用户上下行限速处理模块均通过挂载钩子函数的方式来实现各自功能。

在上述技术方案的基础上,所述新用户限速数据库建立模块建立新用户限速数据库的具体流程为:当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,首先检测该数据包对应的用户是否为新用户,若为新用户,则为该用户建立相关的限速数据库;并利用网络终端设备底层向应用层提供配置接口,使应用层通过该配置接口依据用户需求来配置该用户的限速值,并将配置的限速值保存到该用户的限速数据库的限速值域中。

在上述技术方案的基础上,所述单用户上下行限速处理模块进行限速处理的具体流程为:

当后续再有上行数据包进入或有下行数据包将离开时,遍历所有用户,找到该数据包对应用户的限速数据库,并将该数据包到达的时刻与该用户的限速数据库中的基准时刻进行比较,

如果时刻差未超过指定时间,将该用户的限速数据库中记录的指定时间内该用户上行或下行字节数变量加上该数据包的长度;判断当前记录的指定时间内该用户上行或下行字节数变量是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包;

如果时刻差超过指定时间,则计算该用户在该时刻差内的速率;用该数据包到达的时刻更新该用户的限速数据库中记录的基准时刻,同时清零限速数据库中记录的指定时间内该用户上行或下行字节数变量;再判断计算的该用户在该时刻差内的速率是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包。

本发明的有益效果在于:

(1)本发明中,会为每个用户建立相应的限速数据库,通过该限速数据库记录指定时间内该用户上行或下行字节数变量、该用户的基准时刻以及根据用户需求配置的限速值;当后续再有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设配将比较该数据包达到的时刻与该数据包对应用户的限速数据库中记录的基准时刻,若时刻差未超过指定时间,则根据指定时间内该用户上行或下行字节数以及配置的限速值来确定是通过或丢弃该数据包;若时刻差超过指定时间,则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是通过或丢弃数据包。

与现有技术相比,本发明就能根据实际用户需求,通过限速值来单独配置和限定各个用户能使用的上、下行最大带宽,从而达到避免因某个用户占用过大的网络带宽而导致其他用户的网络服务体验变差的目的。

(2)本发明中,可以根据用户需求对单个用户上、下行带宽最大值进行修改和配置(即,限速值为可灵活配置的可变值),使用更加灵活、方便,能满足各种使用需求。

(3)本发明的网络终端设备是通过挂载钩子函数的方式,来实现单用户上、下行限速的功能的,即通过软件来实现,无需增设额外硬件设备,使得适用范围广,操作更加简单。

附图说明

图1为本发明实施例中网络终端设备中实现单用户上行、下行限速的方法流程图;

图2为本发明实施例中建立的限速数据库的示意图;

图3为本发明实施例中挂载钩子函数的示意图;

图4上行限速实例的示意图;

图5为本发明实施例中网络终端设备的结构框图。

具体实施方式

本发明针对现有技术中当网络带宽有限,而用户数又增大到一定程度时,可能会存在某个用户占用过大的网络带宽,导致其他用户的网络服务体验变差的问题,提供了一种网络终端设备中实现单用户上行、下行限速的方法及设备,能根据实际用户需求,单独配置和限定各个用户能使用的上行、下行最大带宽,有效解决了因某个用户占用过大的网络带宽,导致其他用户的网络服务体验变差的问题。

其主要的设计思路为:为每个用户建立相应的限速数据库,通过该限速数据库记录指定时间内该用户上行或下行字节数变量、该用户的基准时刻以及根据用户需求配置的限速值;当后续再有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设配将比较该数据包达到的时刻与该数据包对应用户的限速数据库中记录的基准时刻,若时刻差未超过指定时间(即小于等于指定时间),则根据指定时间内该用户上行或下行字节数以及配置的限速值来确定是否转发(即,是通过或丢弃)该数据包;若时刻差超过指定时间(即大于指定时间),则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是否转发该数据包。通过上述方法,就能根据实际用户需求,通过限速值来单独配置和限定各个用户能使用的上、下行最大带宽,从而达到避免因某个用户占用过大的网络带宽而导致其他用户的网络服务体验变差的目的。

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施例对本发明的技术方案进行详细的说明。

实施例一

参见图1所示,本实施例提供了一种网络终端设备中实现单用户上行、下行限速的方法,该方法包括以下步骤:

a、新用户限速数据库的建立:当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设备将判断该数据包(即上行数据包或下行数据包)对应的用户是否为新用户,若是,则为其建立相关的限速数据库,该限速数据库记录有指定时间内该用户上行或下行字节数变量、该用户的基准时刻以及根据用户需求配置的限速值;否则,直接进入步骤b;

b、单用户上下行限速的处理:当后续再有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设配将比较该数据包达到的时刻与该数据包对应用户的基准时刻,若时刻差未超过指定时间(即小于等于指定时间),则根据指定时间内该用户上行或下行字节数以及配置的限速值来确定是否转发(即,是通过或丢弃)该数据包;若时刻差超过指定时间(即大于指定时间),则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是否转发该数据包。

进一步地,在本实施例中,如图2所示,步骤a中建立的限速数据库包括以下数据段:该用户的mac(mediumaccesscontrol,介质访问控制)地址、该用户的基准时刻(初始化为该数据包到达的时刻)、限速值(以byte/s为单位,供用户进行配置),指定时间内该用户上行或下行字节数变量(初始化为该数据包的长度,即初始化为步骤a中进入或将离开的数据包的长度)。

并且,步骤a、b中所述的指定时间设置为1秒钟;即,步骤a中,限速数据库记录有1秒钟内该用户上行或下行字节数变量,步骤b中,若时刻差未超过1秒钟,则根据1秒钟内该用户上行或下行字节数以及配置的限速值来确定是否转发该数据包;若时刻差超过1秒钟,则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是否转发该数据包。可以理解的是,在实际实施过程中,该指定时间可根据实际情况由开发人员自行设置,本实施例不做具体限定。

另外,本实施例中,所述网络终端设备为安装嵌入式操作系统的网络终端设备,当然实际应用中,该方法还可适用于其他操作系统的网络终端设备中,本实施例不做具体限定。

更进一步地,本实施例中,所述网络终端设备是通过挂载钩子函数的方式,来实现步骤a(新用户限速数据库的建立)和步骤b(单用户上下行限速的处理)的操作。具体来说,由于用户通过网络终端设备获取网络服务时,分别存在上行和下行数据链路,因此,本实施例的网络终端设备会在上行数据包从用户侧进入网络终端设备之后或下行数据包发出网络终端设备之前的数据路径中,挂载钩子函数,通过该钩子函数来实现步骤a和步骤b的操作,即针对单个用户进行上行、下行限速的功能。更具体地,如图3所示,本实施例中,所挂载的钩子函数为两个:上行钩子函数a和下行钩子函数b,通过上行钩子函数a来实现针对单个用户进行上行限速的功能,通过下行钩子函数b来实现针对单个用户进行下行限速的功能。当然实际应用中还可采用除挂载钩子函数以外的方式,只要该方式能使得网络终端设备能实现上述步骤a、b的操作,具备对单个用户进行上行、下行限速的功能即可,本实施例不做具体限定。

实施例二

本实施例提供的一种网络终端设备中实现单用户上行、下行限速的方法,其基本步骤与实施例一相同,不同之处在于:该方法的步骤a具体包括以下操作:

步骤a1、当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设备首先检测该数据包对应的用户是否为新用户,若为新用户,转入步骤a2;若不为新用户,则直接转入步骤b。

步骤a2、网络终端设备为该用户建立相关的限速数据库;并利用网络终端设备底层向应用层提供配置接口,使应用层通过该配置接口依据用户需求来配置该用户的限速值,并将配置的限速值保存到该用户的限速数据库的限速值域中。

实施例三

本实施例提供的一种网络终端设备中实现单用户上行、下行限速的方法,其基本步骤与实施例一相同,不同之处在于:该方法的步骤b具体包括以下操作:

步骤b1、当后续再有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,网络终端设配将遍历所有用户,找到该数据包对应用户的限速数据库,转入步骤b2。

步骤b2、将该数据包到达的时刻与该用户的限速数据库中的基准时刻进行比较,如果时刻差未超过指定时间,转入步骤b3;如果时刻差超过指定时间,则转入步骤b4。

步骤b3、将该用户的限速数据库中记录的指定时间内该用户上行或下行字节数变量加上该数据包的长度;判断当前记录的指定时间内该用户上行或下行字节数变量(当前记录的指定时间内该用户上行或下行字节数变量=限速数据库中记录的指定时间内该用户上行或下行字节数变量+该数据包的长度)是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包。

步骤b4、计算该用户在该时刻差内的速率,计算公式为:该用户在该时刻差内的速率=(限速数据库中记录的指定时间内该用户上行或下行字节数变量+该数据包长度)/时刻差);再用该数据包到达的时刻更新该用户的限速数据库中记录的基准时刻,同时清零限速数据库中记录的指定时间内该用户上行或下行字节数变量;并判断计算的该用户在该时刻差内的速率是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包。

为了更清楚的理解上述实施例1~3的方法,下面以进行上行限速操作且指定时间为1秒为例,对本发明的方法进行举例说明。

s1:如图4所示,当从上行链路中进来一个数据包packeta时,网络终端设备首先检测数据包packeta对应的用户是否为新用户,

若为新用户则为其建立相关的数据库,该数据库中包括以下数据段:mac_address(该用户的mac地址)、rate(限速值、以byte/s为单位,供用户进行配置)、reference_time(基准时刻,初始化为数据包packeta的到达时刻t1)、passed_bytes(该用户的1秒内上行字节数变量,初始化为数据包packeta的长度);并利用网络终端设备底层向应用层提供配置接口,使应用层通过该配置接口依据用户需求来配置该用户的限速值,并将配置的限速值保存到该用户的限速数据库的rate中;

若不为新用户,则直接转入s2。

s2:当后续从上行链路中又进入数据包packetb,网络终端设配先遍历所有用户,找到该数据包对应用户的限速数据库(假设此次对应用户也是步骤s1中的用户),再将该数据包到达的时刻t2与该用户的限速数据库中的基准时刻reference_time进行比较,若时刻差(t2-reference_time)未超过1秒,则将该用户的限速数据库中的passed_bytes增加该数据包的长度,不更新该用户reference_time,并判断当前passed_bytes是否大于rate,若是,则丢弃该数据包,否则通过该数据包;

当后续从上行链路中又进入数据包packetc,网络终端设配先遍历所有用户,找到该数据包对应用户的限速数据库(假设此次对应用户也是步骤s1中的用户),再将该数据包到达的时刻t3与该用户的限速数据库中的基准时刻reference_time进行比较,若时刻差(t3-reference_time)超过1秒,则计算用户在该时刻差内的速率,该速率=(该用户的passed_bytes+数据包packetc的长度)/(t3-reference_time);再用t3赋值该用户的reference_time,清零该用户的passed_bytes;然后判断计算的用户在该时刻差内的速率是否大于rate,若是,则将该数据包丢弃,否则通过该数据包。

经过上述操作可以看出,本发明实施例就能根据实际用户需求,通过限速值来单独配置和限定各个用户能使用的上、下行最大带宽,从而达到避免因某个用户占用过大的网络带宽而导致其他用户的网络服务体验变差的目的。

实施例四

基于同一发明构思,参见图5所示,本发明实施例还提供了一种实现上述方法的网络终端设备。该网络终端设备包括新用户限速数据库建立模块和单用户上下行限速处理模块。

其中,新用户限速数据库建立模块用于:当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,判断该数据包对应的用户是否为新用户,若是新用户,则为其建立相关的限速数据库,该限速数据库记录有指定时间内该用户上行或下行字节数变量、该用户的基准时刻以及根据用户需求配置的限速值。单用户上下行限速处理模块用于:当后续再有上行数据包进入或有下行数据包将离开网络终端时,比较该数据包达到的时刻与该数据包对应用户的基准时刻,若时刻差未超过指定时间,则根据指定时间内该用户上行或下行字节数以及配置的限速值来确定是否转发该数据包;若时刻差超过指定时间,则更新该用户的基准时刻,并根据计算的该用户在时刻差内的速率以及配置的限速值来确定是否转发该数据包。

进一步地,在实际应用中,所述新用户限速数据库建立模块、所述单用户上下行限速处理模块均可以通过挂载钩子函数的方式来实现各自功能。

更进一步地,在一种可选的实施方式中,所述新用户限速数据库建立模块建立新用户限速数据库的具体流程为:当有上行数据包进入网络终端设备或有下行数据包将离开网络终端时,首先检测该数据包对应的用户是否为新用户,若为新用户,则为该用户建立相关的限速数据库;并利用网络终端设备底层向应用层提供配置接口,使应用层通过该配置接口依据用户需求来配置该用户的限速值,并将配置的限速值保存到该用户的限速数据库的限速值域中。

再进一步地,在一种可选的实施方式中,所述单用户上下行限速处理模块进行限速处理的具体流程为:

当后续再有上行数据包进入或有下行数据包将离开时,遍历所有用户,找到该数据包对应用户的限速数据库,并将该数据包到达的时刻与该用户的限速数据库中的基准时刻进行比较,如果时刻差未超过指定时间,将该用户的限速数据库中记录的指定时间内该用户上行或下行字节数变量加上该数据包的长度;判断当前记录的指定时间内该用户上行或下行字节数变量是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包;如果时刻差超过指定时间,则计算该用户在该时刻差内的速率;用该数据包到达的时刻更新该用户的限速数据库中记录的基准时刻,同时清零限速数据库中记录的指定时间内该用户上行或下行字节数变量;再判断计算的该用户在该时刻差内的速率是否大于配置的限速值,若是,则将该数据包丢弃;否则,通过该数据包。

需要说明的是:上述实施例提供的网络终端设备在实现单用户上行、下行限速的方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可根据需要而将上述功能分配由不同功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1