网络设备的自适应限速方法及其系统技术方案

技术编号:19702580 阅读:21 留言:0更新日期:2018-12-08 14:15
本发明专利技术公开了一种网络设备的自适应限速方法及其系统,涉及互联网接入设备领域,该方法包括以下步骤:定义N组特征值结构体。根据数据包进入CPU的总速率,确定数据包需要限速,还是需要进入数据包的学习归类。计算每个数据包与N组特征值结构体组成的N+1个特征值结构体两两之间的相似度,将相似度最高的两个特征值结构体归为一类。继续确定数据包需要继续进行数据包的学习归类,还是需要限速,若需要限速,根据每一类数据包进入CPU的平均速率在全部种类的数据包进入CPU的总速率所占的比例,分配限速速率,并根据限速速率对相应类型的数据包进行限速。本发明专利技术能根据当前网络环境,自动学习数据包类型和速率,当需要限速时,根据学习到的信息进行限速。

【技术实现步骤摘要】
网络设备的自适应限速方法及其系统
本专利技术涉及互联网接入设备领域,具体涉及一种网络设备的自适应限速方法及其系统。
技术介绍
互联网接入设备顾名思义,就是一种可以使终端用户接入互联网的硬件设备。PONONU(PassiveOpticalNetwork:无源光纤网络,OpticalNetworkUnit:光网络单元)就是一种常用的采用无源光网络技术的接入设备。PONONU最常用的应用场景是FTTH(FiberToTheHome,光纤直接到家庭),一般具有1-4个以太网接口和一个PON接口。主要功能是转发终端用户访问互联网的上下行数据。ONU设备在实现时通常采用CPU加网络处理器(NetworkProcessor简称NP)的方案,数据包到达后首先会由CPU处理,通过软件协议栈转发,在这个过程中将转发规则记录下来,并配置到NP的加速表中。随后到达的数据包将直接匹配NP中的规则,由处理速度更快的NP转发。从上述工作过程的描述可以看出,数据转发过程非常依赖CPU的处理,在正常使用时因为转发数据都是有规律的TCP/UDP(TransmissionControlProtocol,传输控制协议;UserDatagramProtocol,用户数据报协议)协议流,可以在学习转发规则后通过NP转发,所以要CPU处理的数据量不大,但当网络环境发生异常时,或者遇到恶意攻击时,会有大量数据包进入CPU,这时可能导致CPU占用率过高,无法处理所有的数据包,其上运行的其他进程的工作也会受到影响。为了防止进入CPU数量过多导致整个软件系统受到影响,需要对进入的数据包进行限速。通常的限速基于令牌桶限速机制:1、根据设定的总限速速率,令牌以一定的速率放入桶中;2、每个令牌允许接收一个包,每接收一个包,就要从桶中删除一个令牌;3、如果桶中没有足够的令牌,这个包就会被丢弃;4、桶有特定的容量,如果桶已经满了,新加入的令牌就会被丢弃。因此,在任何时候,接收的最大突发数据量与桶的大小成比例。令牌桶允许突发,但是不能超过限制。令牌桶方法实现起来简单,但会不加区分的限制所有数据包,这样用户正常访问的数据包肯定也会受到影响。一种常见的改进方法是根据数据包协议类型设定不同的限速速率,这样不同种类的数据包之间不会互相干扰,但同种数据之间的影响仍然存在。比如如果限制了广播包速率,那么在网络中发生广播风暴时,用户正常的ARP(AddressResolutionProtocol,地址解析协议)学习,肯定会被影响。此外这种方法还需要预先设定不同数据包类型的限速速率,如果要修改也只能通过人工来设定,缺乏对实际环境的应变能力。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种网络设备的自适应限速方法,其能根据当前网络环境,自动学习数据包类型和速率,当需要限速时,根据学习到的信息进行限速。为达到以上目的,本专利技术采取的技术方案是:一种网络设备的自适应限速方法,该方法包括以下步骤:S1.定义N组特征值结构体,N为正整数,每组特征值结构体均包括多个用于区分数据包类型的特征值;S2.根据数据包进入CPU的总速率,判断数据包需要限速,还是需要进入数据包的学习归类;若需要限速,则按照限制每秒处理数据包数量的方式进行限速,若需要进入数据包的学习归类,转到步骤S3;S3.依次提取每个数据包的特征值,依次计算每个数据包与N组特征值结构体组成的N+1个特征值结构体两两之间的相似度,将相似度最高的两个特征值结构体归为一类,形成新的N组特征值结构体,并对进行归类的特征值结构体的特征值进行更新,转到步骤S4;S4.继续统计数据包进入CPU的总速率,判断数据包需要继续进行数据包的学习归类,还是需要限速,若需要继续进行数据包的学习归类,则返回步骤S3;若需要限速,计算归类后每一类数据包进入CPU的平均速率,根据每一类数据包进入CPU的平均速率在全部种类的数据包进入CPU的总速率中所占的比例,分配限速速率,并根据限速速率对相应类型的数据包进行限速。在上述技术方案的基础上,所述步骤S2具体包括以下步骤:设定第一门限值P0和第二门限值P1,获取数据包进入CPU的总速率V,若V>P1,按照一个数据包消耗一个令牌的方式进行限速;若P0≤V≤P1,网卡驱动正常接收数据包;若V<P0,则进入数据包的学习归类。在上述技术方案的基础上,所述数据包和特征值结构体的特征均包括目的MAC地址、源MAC地址、目的IP地址、源IP地址、以太网类型和IP协议类型;步骤S3中,计算每个数据包与N组特征值结构体组成的N+1个特征值结构体两两之间的相似度,具体包括以下步骤:对于目的MAC地址或源MAC地址,若任意两个特征值结构体的目的MAC地址或源MAC地址相同,则相似度为a;若目的MAC地址或源MAC地址不相同,但是目的MAC地址或源MAC地址的类别相同,则相似度为b;若目的MAC地址或源MAC地址不相同,且目的MAC地址或源MAC地址的类别也不相同,则相似度为c,a、b、c均为自然数,且a>b>c;对于目的IP地址或源IP地址,若任意两个特征值结构体的目的IP地址或源IP地址相同,则相似度为a;若目的IP地址或源IP地址不相同,但是目的IP地址或源IP地址的类别相同,则相似度为b;若目的IP地址或源IP地址不相同,且目的IP地址或源IP地址的类别也不相同,则相似度为c;对于以太网类型,若任意两个特征值结构体的以太网类型相同,则相似度为a;若不相同,则相似度为c;对于IP协议类型,若任意两个特征值结构体的IP协议类型相同,则相似度为a;若不相同,则相似度为c;将任意两个特征值结构体的目的MAC地址、源MAC地址、目的IP地址、源IP地址、以太网类型和IP协议类型比较后得到的相似度值相加,得到N个最终的总相似度,将总相似度最高的那两个特征值结构体归为一类。在上述技术方案的基础上,步骤S4中,计算归类后每一类数据包进入CPU的平均速率,具体包括以下步骤:启动定时器,记录进入数据包的学习归类的时刻,以及终止该次数据包的学习归类的时刻,获取该次数据包的学习归类运行的总时间T;统计第i类数据包在总时间T内进入CPU的数量Ci;计算第i类数据包进入CPU的平均速率Ri=Ci/T。在上述技术方案的基础上,所述步骤S4具体包括以下步骤:获取数据包进入CPU的总速率V;若V<P0,则继续进行数据包的学习归类;若P0≤V≤P1,则终止进行数据包的学习归类;若V>P1,则根据第i类数据包进入CPU的平均速率在全部种类的数据包进入CPU的总速率中所占的比例,分配对应的令牌数其中,Xi为第i类数据包分配的令牌数,k为限速倍率,Ri为第i类数据包进入CPU的平均速率,M为总的令牌数;根据令牌数Xi对第i类数据包进行限速,限速倍率k可以动态调整,初始值为1,若限速之后CPU利用率大幅度降低,则可以逐步增加k的大小,直到达到第二门限值P1,反之,若超过了第二门限值P1,则需要减少k值。与此同时,本专利技术的另一个目的在于提供一种网络设备的自适应限速系统,其能根据当前网络环境,自动学习数据包类型和速率,当需要限速时,根据学习到的信息进行限速。为达到以上目的,本专利技术采本文档来自技高网
...

【技术保护点】
1.一种网络设备的自适应限速方法,其特征在于,该方法包括以下步骤:S1.定义N组特征值结构体,N为正整数,每组特征值结构体均包括多个用于区分数据包类型的特征值;S2.根据数据包进入CPU的总速率,判断数据包需要限速,还是需要进入数据包的学习归类;若需要限速,则按照限制每秒处理数据包数量的方式进行限速,若需要进入数据包的学习归类,转到步骤S3;S3.依次提取每个数据包的特征值,依次计算每个数据包与N组特征值结构体组成的N+1个特征值结构体两两之间的相似度,将相似度最高的两个特征值结构体归为一类,形成新的N组特征值结构体,并对进行归类的特征值结构体的特征值进行更新,转到步骤S4;S4.继续统计数据包进入CPU的总速率,判断数据包需要继续进行数据包的学习归类,还是需要限速,若需要继续进行数据包的学习归类,则返回步骤S3;若需要限速,计算归类后每一类数据包进入CPU的平均速率,根据每一类数据包进入CPU的平均速率在全部种类的数据包进入CPU的总速率中所占的比例,分配限速速率,并根据限速速率对相应类型的数据包进行限速。

【技术特征摘要】
1.一种网络设备的自适应限速方法,其特征在于,该方法包括以下步骤:S1.定义N组特征值结构体,N为正整数,每组特征值结构体均包括多个用于区分数据包类型的特征值;S2.根据数据包进入CPU的总速率,判断数据包需要限速,还是需要进入数据包的学习归类;若需要限速,则按照限制每秒处理数据包数量的方式进行限速,若需要进入数据包的学习归类,转到步骤S3;S3.依次提取每个数据包的特征值,依次计算每个数据包与N组特征值结构体组成的N+1个特征值结构体两两之间的相似度,将相似度最高的两个特征值结构体归为一类,形成新的N组特征值结构体,并对进行归类的特征值结构体的特征值进行更新,转到步骤S4;S4.继续统计数据包进入CPU的总速率,判断数据包需要继续进行数据包的学习归类,还是需要限速,若需要继续进行数据包的学习归类,则返回步骤S3;若需要限速,计算归类后每一类数据包进入CPU的平均速率,根据每一类数据包进入CPU的平均速率在全部种类的数据包进入CPU的总速率中所占的比例,分配限速速率,并根据限速速率对相应类型的数据包进行限速。2.如权利要求1所述的网络设备的自适应限速方法,其特征在于,所述步骤S2具体包括以下步骤:设定第一门限值P0和第二门限值P1,获取数据包进入CPU的总速率V,若V>P1,按照一个数据包消耗一个令牌的方式进行限速;若P0≤V≤P1,网卡驱动正常接收数据包;若V<P0,则进入数据包的学习归类。3.如权利要求1所述的网络设备的自适应限速方法,其特征在于,所述数据包和特征值结构体的特征均包括目的MAC地址、源MAC地址、目的IP地址、源IP地址、以太网类型和IP协议类型;步骤S3中,计算每个数据包与N组特征值结构体组成的N+1个特征值结构体两两之间的相似度,具体包括以下步骤:对于目的MAC地址或源MAC地址,若任意两个特征值结构体的目的MAC地址或源MAC地址相同,则相似度为a;若目的MAC地址或源MAC地址不相同,但是目的MAC地址或源MAC地址的类别相同,则相似度为b;若目的MAC地址或源MAC地址不相同,且目的MAC地址或源MAC地址的类别也不相同,则相似度为c,a、b、c均为自然数,且a>b>c;对于目的IP地址或源IP地址,若任意两个特征值结构体的目的IP地址或源IP地址相同,则相似度为a;若目的IP地址或源IP地址不相同,但是目的IP地址或源IP地址的类别相同,则相似度为b;若目的IP地址或源IP地址不相同,且目的IP地址或源IP地址的类别也不相同,则相似度为c;对于以太网类型,若任意两个特征值结构体的以太网类型相同,则相似度为a;若不相同,则相似度为c;对于IP协议类型,若任意两个特征值结构体的IP协议类型相同,则相似度为a;若不相同,则相似度为c;将任意两个特征值结构体的目的MAC地址、源MAC地址、目的IP地址、源IP地址、以太网类型和IP协议类型比较后得到的相似度值相加,得到N个最终的总相似度,将总相似度最高的那两个特征值结构体归为一类。4.如权利要求2所述的网络设备的自适应限速方法,其特征在于,步骤S4中,计算归类后每一类数据包进入CPU的平均速率,具体包括以下步骤:启动定时器,记录进入数据包的学习归类的时刻,以及终止该次数据包的学习归类的时刻,获取该次数据包的学习归类运行的总时间T;统计第i类数据包在总时间T内进入CPU的数量Ci;计算第i类数据包进入CPU的平均速率Ri=Ci/T。5.如权利要求4所述的网络设备的自适应限速方法,其特征在于:所述步骤S4具体包括以下步骤:获取数据包进入CPU的总速率V;若V<P0,则继续进行数据包的学习归类;若P0≤V≤P1,则终止进行数据包的学习归类;若V>P1,则根据第i类数据包进入CPU的平均速率在全部种类的数据包进入CPU的总速率中所占的比例,分配对应的令牌数其中,Xi为第i类数据包分配的令牌数,k为限速倍率,Ri为第i类数据包进入CPU的平均速率,M为总的令牌数;根据令牌数Xi对第i类数据包进行限速,限速倍率k可以动态调整,初始值为1,若限速之后CPU利用率大幅度降低,则可以逐步增加k的大小,直到达到第二门限值P1,反之,若超过...

【专利技术属性】
技术研发人员:舒洋郑明
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1