【技术实现步骤摘要】
基于多核处理器的并行网包分类方法、系统及网络设备
本专利技术涉及网络通信领域,具体涉及基于多核处理器的并行网包分类方法、系统及网络设备。
技术介绍
网包分类技术是指对接收到的数据流中的网包与分类器中的规则集进行匹配,并根据所匹配的规则对应的动作类型对网包进行相应操作处理。分类器是一系列规则或者策略的集合,每一条分类规则都指定一个类别或者是一条特定的流,将收到的网包头部中特定的字段与规则集中对应的字段相比较匹配,可以判断该包符合哪些规则,进而判断其所属于的类别或网络流。许多网络服务都需要包分类功能,比如路由,防火墙,网络计费,服务质量(QOS)保证,虚拟专网(VPN)等等。随着网络技术的飞速发展,网络流量和带宽都在不断增长,对网络设备的处理能力提出了越来越高的要求。作为网络中最基本、应用最广泛的功能之一,包分类性能逐渐成为各类网络应用的瓶颈,亟待提高。在一些性能要求较高的网络设备中,大多采用TCAM(Ternarycontentaddressablememory,三态内容寻址存储器)或者FPGA等专用硬件来处理网包分类 ...
【技术保护点】
1.一种基于多核处理器的并行网包分类方法,所述方法包括:/n接收网络数据包并放入队列,对该网络数据包进行预处理;/n多核处理器的多个核心同时以主动循环方式,采用相同的匹配过程对队列的网络数据包逐一进行分类处理,按照网络数据包输入顺序输出网络数据包的匹配分类结果。/n
【技术特征摘要】
1.一种基于多核处理器的并行网包分类方法,所述方法包括:
接收网络数据包并放入队列,对该网络数据包进行预处理;
多核处理器的多个核心同时以主动循环方式,采用相同的匹配过程对队列的网络数据包逐一进行分类处理,按照网络数据包输入顺序输出网络数据包的匹配分类结果。
2.根据权利要求1所述的基于多核处理器的并行网包分类方法,其特征在于,所述方法还包括:预先将规则集的多个域分解为多个维度的子集;具体包括:
将规则集的所有域以一定的比特长度为单位分解成多个子块,每个子块为一个维度;
列举每个维度上所有可能的取值空间,作为查找空间;为每个维度设置一个与查找空间长度相同的查找表,表中每个取值都对应一个位向量,并将位向量初始化为全0;
遍历每个维度的所有取值,将每个取值与规则集中相应维度下的所有规则逐一比对,当取值满足某条规则,则其对应位向量中的相应比特位置1,不满足则置0,得出该取值对应的位向量,遍历结束后,每个维度的查找表中的每一个取值对应的位向量都记录了其满足的规则。
3.根据权利要求2所述的基于多核处理器的并行网包分类方法,其特征在于,所述队列为一个先进先出的任务队列,该队列使用多核共享内存,多个核心可并行访问。
4.根据权利要求3所述的基于多核处理器的并行网包分类方法,其特征在于,所述对该网络数据包进行预处理,具体包括:
将每个网络数据包的头部中用于规则匹配的域按照规则集的方式分解为多个维度,记录每个维度的取值;
为该网络数据包的每个维度分配位向量指针,位向量指针初始化为null;
为该网络数据包的每个维度分配标记变量,初始化为0,表示该维度的位向量“未被标记”。
5.根据权利要求1或2所述的基于多核处理器的并行网包分类方法,其特征在于,所述方法还包括:预先设置使用多核处理器中核心的数量。
6.根据权利要求3所述的基于多核处理器的并行网包分类方法,其特征在于,所述多核处理器的多个核心同时以主动循环方式,采用相同的匹配过程对队列的网络数据包逐一进行分类处理,按照网络数据包输入顺序输出网络数据包的匹配分类结果;具体包括:
步骤1)从队列中读取第一个网络数据包;
步骤2)从为该网络数据包分配的第一个位向量开始逐一检查每一个位向量是否被标记,如果该位向量已经被标记,则直接检查下一个,如果找到没有被标记的位向量,则执行步骤3),如果一直检查到当前网络数据包的最后一个位向量,则执行步骤9);
步骤3)检查该位向量指针是否为当前网络数据包的最终位向量,即其它所有位向量均被标记且指针为null,如果该位向量是当前网络数据包的最终位向量,则执行步骤8),否则执行步骤4);
步骤4)记下这个位向量的编号,并从下一个位向量开始继续搜索当前网络数据包内第二个未被标记的位向量,如果找到,则记下其编号,并执行步骤5),如果没找到,则执行步骤9);
步骤5)将得到的两个未被标记的位向量标记为“正在处理”...
【专利技术属性】
技术研发人员:曾学文,唐志斌,陈晓,郭志川,
申请(专利权)人:中国科学院声学研究所,北京中科视云科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。