一种流量数据包分类方法、装置及电子设备制造方法及图纸

技术编号:29285626 阅读:17 留言:0更新日期:2021-07-16 23:53
本发明专利技术实施例提供了一种流量数据包分类方法、装置及电子设备,包括:接收当前流量数据包,作为待分类数据包;采用预设哈希算法对待分类数据包的地址特征信息进行计算,获得待分类数据包的哈希值;基于待分类数据包的哈希值,将待分类数据包分类至与待分类数据包的哈希值相对应的第一哈希数据包分组中;基于待分类数据包的地址特征信息,在与第一哈希数据包分组对应设置的第一红黑树中,确定与待分类数据包的地址特征信息对应的当前节点;将当前节点对应的第一红黑树数据包分组,作为待分类数据包的分类结果。本发明专利技术实施例中,无需将待分类数据包的地址特征信息与所有不同的地址特征信息进行匹配,减少了分类过程中的计算量。减少了分类过程中的计算量。减少了分类过程中的计算量。

【技术实现步骤摘要】
一种流量数据包分类方法、装置及电子设备


[0001]本专利技术涉及通信
,特别是涉及一种流量数据包分类方法、装置及电子设备。

技术介绍

[0002]流量数据包的包头中包含有数据包的源IP地址(Internet Protocol Addres,网络协议地址)、目的IP地址、源端口及目的端口等信息,流量数据包分类是根据上述信息中的一个或者多个,将不同数据包划分至不同类别的过程。例如,根据源IP地址的不同,将数据包分为不同的类别等。
[0003]目前,进行流量数据包分类时,主要采用的方法是:根据实际需要,选择数据包的源IP地址、目的IP地址、源端口及目的端口等信息中的一个或者多个,作为地址特征信息,构建特征表,将待分类的数据包分别与表中地址特征信息进行匹配,从而实现对具有不同地址特征信息的数据包的分类。
[0004]由于数据包的源IP地址、目的IP地址、源端口及目的端口信息的种类均较多,导致特征表中地址特征信息的数量也较多,因此,进行分类时,需要将待分类的数据包与所有不同的地址特征信息进行匹配,例如,选择以数据包的源IP地址作为地址特征信息进行分类,由于源IP地址共有42(即2
32
)亿多种,将待分类的数据包与上述42亿多种源IP地址进行匹配,分类过程计算量较大,资源损耗较多。

技术实现思路

[0005]本专利技术实施例的目的在于提供一种流量数据包分类方法、装置及电子设备,以减少流量数据包分类过程中的计算量。具体技术方案如下:
[0006]第一方面,本专利技术实施例提供了一种流量数据包分类方法,包括:
[0007]接收当前流量数据包,作为待分类数据包;
[0008]采用预设哈希算法对所述待分类数据包的地址特征信息进行计算,获得所述待分类数据包的哈希值;
[0009]基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中;
[0010]基于所述待分类数据包的地址特征信息,在与所述第一哈希数据包分组对应设置的第一红黑树中,确定与所述待分类数据包的地址特征信息对应的当前节点;所述第一红黑树中的每个节点表示一个红黑树数据包分组,每个红黑树数据包分组与一个地址特征信息对应;将所述当前节点对应的第一红黑树数据包分组,作为所述待分类数据包的分类结果。
[0011]进一步的,所述基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中的步骤,包括:
[0012]判断已有的哈希数据包分组中,是否有哈希值与所述待分类数据包的哈希值相同
的哈希数据包分组;
[0013]如果有,则将所述待分类数据包分类至与所述待分类数据包的哈希值相同的第一哈希数据包分组中;
[0014]如果没有,则新建一个与所述待分类数据包的哈希值相同的第一哈希数据包分组,将所述待分类数据包分类至新建的所述第一哈希数据包分组中。
[0015]进一步的,所述基于所述待分类数据包的地址特征信息,在与所述第一哈希数据包分组对应设置的第一红黑树中,确定与所述待分类数据包的地址特征信息对应的当前节点的步骤,包括:
[0016]判断是否存在与所述第一哈希数据包分组对应设置的第一主红黑树;
[0017]如果存在,则在所述第一主红黑树中查找与所述待分类数据包的地址特征信息对应的节点;如果查找到,则将查找到的节点作为当前节点;如果未查找到,则在所述第一主红黑树中新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点;
[0018]如果不存在与所述第一哈希数据包分组对应设置的第一主红黑树,则新设置一个与所述第一哈希数据包分组对应的第一主红黑树;在新设置的所述第一主红黑树中,新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点。
[0019]进一步的,所述如果存在,则在所述第一主红黑树中查找与所述待分类数据包的地址特征信息对应的节点的步骤,包括:
[0020]如果存在,则判断所述第一主红黑树是否处于加锁状态;
[0021]若否,执行所述在所述第一主红黑树中查找与所述待分类数据包的地址特征信息对应的节点的步骤,并对所述第一主红黑树加锁,在确定所述当前节点之后,对所述第一主红黑树解锁;
[0022]若所述第一主红黑树处于加锁状态,则判断是否存在与所述第一哈希数据包分组对应的第一子红黑树;若存在,则在所述第一子红黑树中查找与所述待分类数据包的地址特征信息对应的节点,如果查找到,则将查找到的节点作为当前节点;如果未查找到,则在所述第一子红黑树中新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点;若不存在与所述第一哈希数据包分组对应的第一子红黑树,则新设置一个与所述第一哈希数据包分组对应的第一子红黑树;在新设置的所述第一子红黑树中,新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点。
[0023]进一步的,所述方法还包括:
[0024]当需要读取流量数据包分类结果时,将所有主红黑树和所有子红黑树中,相同地址特征信息对应的节点所表示的红黑树数据包分组进行合并,得到合并后的红黑树数据包分组,作为所述流量数据包分类结果;
[0025]读取所述流量数据包分类结果。
[0026]进一步的,所述方法还包括:
[0027]预先设置第一缓冲区和第二缓冲区,所述第一缓冲区和第二缓冲区被交替用作写入缓冲区或读取缓冲区;
[0028]所述基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中的步骤,包括:
[0029]在所述当前写入缓冲区中,基于所述待分类数据包的哈希值,将所述待分类数据
包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中;
[0030]所述判断是否存在与所述第一哈希数据包分组对应设置的第一主红黑树的步骤,包括:
[0031]判断所述当前写入缓冲区中是否存在与所述第一哈希数据包分组对应设置的第一主红黑树;
[0032]所述如果不存在与所述第一哈希数据包分组对应设置的第一主红黑树,则新设置一个与所述第一哈希数据包分组对应的第一主红黑树的步骤,包括:
[0033]如果所述当前写入缓冲区中不存在与所述第一哈希数据包分组对应设置的第一主红黑树,则在所述当前写入缓冲区中新设置一个与所述第一哈希数据包分组对应的第一主红黑树;
[0034]所述判断是否存在与所述第一哈希数据包分组对应的第一子红黑树的步骤,包括:
[0035]判断所述当前写入缓冲区中是否存在与所述第一哈希数据包分组对应的第一子红黑树;
[0036]所述若不存在与所述第一哈希数据包分组对应的第一子红黑树,则新设置一个与所述第一哈希数据包分组对应的第一子红黑树的步骤,包括:
[0037]若所述当前写入缓冲区中不存在与所述第一哈希数据包分组对应的第一子红黑树,则在所述当前写本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种流量数据包分类方法,其特征在于,包括:接收当前流量数据包,作为待分类数据包;采用预设哈希算法对所述待分类数据包的地址特征信息进行计算,获得所述待分类数据包的哈希值;基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中;基于所述待分类数据包的地址特征信息,在与所述第一哈希数据包分组对应设置的第一红黑树中,确定与所述待分类数据包的地址特征信息对应的当前节点;所述第一红黑树中的每个节点表示一个红黑树数据包分组,每个红黑树数据包分组与一个地址特征信息对应;将所述当前节点对应的第一红黑树数据包分组,作为所述待分类数据包的分类结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中的步骤,包括:判断已有的哈希数据包分组中,是否有哈希值与所述待分类数据包的哈希值相同的哈希数据包分组;如果有,则将所述待分类数据包分类至与所述待分类数据包的哈希值相同的第一哈希数据包分组中;如果没有,则新建一个与所述待分类数据包的哈希值相同的第一哈希数据包分组,将所述待分类数据包分类至新建的所述第一哈希数据包分组中。3.根据权利要求1所述的方法,其特征在于,所述基于所述待分类数据包的地址特征信息,在与所述第一哈希数据包分组对应设置的第一红黑树中,确定与所述待分类数据包的地址特征信息对应的当前节点的步骤,包括:判断是否存在与所述第一哈希数据包分组对应设置的第一主红黑树;如果存在,则在所述第一主红黑树中查找与所述待分类数据包的地址特征信息对应的节点;如果查找到,则将查找到的节点作为当前节点;如果未查找到,则在所述第一主红黑树中新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点;如果不存在与所述第一哈希数据包分组对应设置的第一主红黑树,则新设置一个与所述第一哈希数据包分组对应的第一主红黑树;在新设置的所述第一主红黑树中,新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点。4.根据权利要求3所述的方法,其特征在于,所述如果存在,则在所述第一主红黑树中查找与所述待分类数据包的地址特征信息对应的节点的步骤,包括:如果存在,则判断所述第一主红黑树是否处于加锁状态;若否,执行所述在所述第一主红黑树中查找与所述待分类数据包的地址特征信息对应的节点的步骤,并对所述第一主红黑树加锁,在确定所述当前节点之后,对所述第一主红黑树解锁;若所述第一主红黑树处于加锁状态,则判断是否存在与所述第一哈希数据包分组对应的第一子红黑树;若存在,则在所述第一子红黑树中查找与所述待分类数据包的地址特征信息对应的节点,如果查找到,则将查找到的节点作为当前节点;如果未查找到,则在所述第一子红黑树中新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节
点;若不存在与所述第一哈希数据包分组对应的第一子红黑树,则新设置一个与所述第一哈希数据包分组对应的第一子红黑树;在新设置的所述第一子红黑树中,新建一个与所述待分类数据包的地址特征信息对应的节点,作为当前节点。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:当需要读取流量数据包分类结果时,将所有主红黑树和所有子红黑树中,相同地址特征信息对应的节点所表示的红黑树数据包分组进行合并,得到合并后的红黑树数据包分组,作为所述流量数据包分类结果;读取所述流量数据包分类结果。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:预先设置第一缓冲区和第二缓冲区,所述第一缓冲区和第二缓冲区被交替用作写入缓冲区或读取缓冲区;所述基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中的步骤,包括:在所述当前写入缓冲区中,基于所述待分类数据包的哈希值,将所述待分类数据包分类至与所述待分类数据包的哈希值相对应的第一哈希数据包分组中;所述判断是否存在与所述第一哈希数据包分组对应设置的第一主红黑树的步骤,包括:判断所述当前写入缓冲区中是否存在与所述第一哈希数据包分组对应设置的第一主红黑树;所述如果不存在与所述第一哈希数据包分组对应设置的第一主红黑树,则新设置一个与所述第一哈希数据包分组对应的第一主红黑树的步骤,包括:如果所述当前写入缓冲区中不存在与所述第一哈希数据包分组对应设置的第一主红黑树,则在所述当前写入缓冲区中新设置一个与所述第一哈希数据包分组对应的第一主红黑树;所述判断是否存在与所述第一哈希数据包分组对应的第一子红黑树的步骤,包括:判断所述当前写入缓冲区中是否存在与所述第一哈希数据包分组对应的第一子红黑树;所述若不存在与所述第一哈希数据包分组对应的第一子红黑树,则新设置一个与所述第一哈希数据包分组对应的第一子红黑树的步骤,包括:若所述当前写入缓冲区中不存在与所述第一哈希数据包分组对应的第一子红黑树,则在所述当前写入缓冲区中新设置一个与所述第一哈希数据包分组对应的第一子红黑树;所述当需要读取流量数据包分类结果时,将所有主红黑树和所有子红黑树中,相同地址特征信息对应的节点所表示的红黑树数据包分组进行合并,得到合并后的红黑树数据包分组,作为所述流量数据包分类结果的步骤,包括:当需要读取流量数据包分类结果时,将当前写入缓冲区切换为读取缓冲区,将当前读取缓冲区切换为写入缓冲区;在切换后的读取缓冲区中,执行所述将所有主红黑树和所有子红黑树中,相同地址特征信息对应的节点所表示的红黑树数据包分组进行合并,得到合并后的红黑树数据包分组,作为所述流量数据包分类结果的步骤。
7.根据权利要求6所述的方法,其特征在于,所述当需要读取流量数据包分类结果时,将当前写入缓冲区切换为读取缓冲区,将当前读取缓冲区切换为写入缓冲区的步骤,包括:当接收到读取流量数据包分类结果指令时,将当前写入缓冲区切换为读取缓冲区,将当前读取缓冲区切换为写入缓冲区;或者,当预设的流量数据包分类结果读取周期到达时,将当前写入缓冲区切换为读取缓冲区,将当前读取缓冲区切换为写入缓冲区。8.一种流量数据包分类装置,其特征在于,包括:当前流量数据包接收模块,用于接收当前流量数据包,作为待分类数据包;哈希值获得模块,用于采用预设哈希算法对所述待分类数据包的地址特征信息进行计算,获得所述待分类...

【专利技术属性】
技术研发人员:姜智成
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:

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

1