网络处理器结合通用处理器的流量识别方法技术

技术编号:3544368 阅读:213 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种网络处理器结合通用处理器的流量识别方法,结合了网络处理器与通用处理器的优点来实现网络流量识别;利用网络处理器来接包发包并将数据流进行聚合,每条数据流开始的少量数据包通过PCI或PCIe总线上传到通用处理器;然后,利用通用处理器对数据包中的深度包检测以识别出流量的类型,并将识别出的流量类型结果下传到网络处理器上,以便网络处理器对流量进行控制;识别过程不影响数据包转发性能,且只对每条数据流开始的少量数据包进行深度包检测。该流量识别方法能够满足中高端网络环境流量识别要求。

【技术实现步骤摘要】

本专利技术涉及一种网络流量的识别方法,更特别地说,是指一种网络处理器结合通用处理器的流量识别方法
技术介绍
随着网络的迅速发展,网络流量表现出多样化,对网络管理提出了新的挑战。例如,当前P2P流量泛滥,P2P软件层出不穷,并且P2P软件的作者为了追避被封查,采用各种各样的手段,如变端口号,利用常用端口号,将协议字段不断改变等,所有这些使流量识别变得越来越不易。传统的网络流量识别系统一般集成在如防火墙里,一般采用通用处理器,专用集成电路(ASIC)以及几年前兴起的网络处理器。通用处理器由于其采用通用操作系统,处理的任务繁多,且由于其计算性能有限,不能在中高端网络中胜任;对于ASIC架构,其有很好的性能,但由于其开发难度大开发周期长,且可扩展性差,限制了其应用;网络处理器介于这两者中间,具有高性能可编程特点,但其开发也较复杂,且其没有专门的硬件单元对流量识别进行支持,因而也网络处理器的发展。另外,对于流量识别,最基本的识别方法有基于端口的识别方法与基于特征的识别方法。基于端口的识别方法检查数据包的端口,看其是否是特定协议的端口来进行识别,对于现在的网络流量,特别是P2P流量这种方法不再可靠;基于特征的识别方法是对固定的字段与数据包中的内容进行匹配,对于如今多变的网络流量,这种方法只对少部分流量有效。另外,也有基于统计的流量识别方法以及基于协议特征的流量识别方法,但这些方法主要处于研究阶段,对于应用还有一段距离。由于这些方法的缺点,近些年来,兴起了深度包检测技术,它不限于流量识别领域,还可用于病毒及有害代码的检测;其本质还是基于特征的识别方法,但它使用的特征不是简单的固定字段,而是可变的正则表达式,由于正则表达式的灵活,对于如今多变的网络流量,它能够准确地识别出这些流量。但这种方法由于要对正则表达式进行解析,对硬件的性能要求比较高。
技术实现思路
-->本专利技术的目的是基于对软、硬件要求考虑,设计出一种网络处理器结合通用处理器的流量识别方法,该流量识别方法能够满足中高端网络环境流量识别要求。本专利技术网络处理器结合通用处理器的流量识别方法,结合了网络处理器与通用处理器的优点来实现网络流量识别;利用网络处理器来接包发包并将数据流进行聚合,每条数据流开始的少量数据包(如前10个数据包)通过PCI或PCIe总线上传到通用处理器;然后,利用通用处理器对数据包中的深度包检测以识别出流量的类型,并将识别出的流量类型结果下传到网络处理器上,以便网络处理器对流量进行控制;识别过程不影响数据包转发性能,且只对每条数据流开始的少量数据包进行深度包检测。本专利技术是一种网络处理器结合通用处理器的流量识别方法,其特征在于:所述网络处理器包括有数据包接收模块、数据包发送模块、刷新Hash表模块、流处理与存储模块、数据包流控制与管理模块;所述通用处理器包括数据流包接收模块、深度包检测模块、流类型模式库;其中,对流量识别的步骤为:步骤一:网络处理器中的流处理与存储模块一方面从数据包接收模块中获取数据包P的五元组流信息T(T=<srcIp,dstIp,srcPort,dstPort,proto>),并将五元组流信息T进行Hash存储;另一方面向通用处理器中的数据流包接收模块发送流的前N(10≤N≤20)个数据包NPacket;步骤二:通用处理器中的深度包检测模块对数据流包接收模块接收到的NPacket依据流类型模式库中的模式进行深度包检测处理,并将流处理结果R(R=<T,Packet_type>)传输给网络处理器中的流处理与存储模块;流处理结果R=<T,Packet_type>中Packet_type表示流的类型;步骤三:网络处理器中的数据包流控制模块根据流处理与存储模块输出的数据包信息L(L=<P,R>)进行流量控制,且该流量经数据包发送模块向外发送。附图说明图1是本专利技术网络处理器加通用处理器的流量识别方法的结构框图。图2是本专利技术流处理与存储模块的处理流程图。图3是本专利技术Hash表的表项结构图。-->具体实施方式下面将结合附图和实施例对本专利技术做进一步的详细说明。参见图1所示,本专利技术是一种网络处理器结合通用处理器的流量识别方法,其中,网络处理器包括有数据包接收模块、数据包发送模块、刷新Hash表模块、流处理与存储模块、数据包流控制与管理模块;通用处理器包括数据流包接收模块、深度包检测模块、流类型模式库;本专利技术方法对流量识别的步骤为:步骤一:网络处理器中的流处理与存储模块一方面从数据包接收模块中获取数据包P的五元组流信息T(T=<srcIp,dstIp,srcPort,dstPort,proto>),并将五元组流信息T进行Hash存储;另一方面向通用处理器中的数据流包接收模块发送流的前N(10≤N≤20)个数据包NPacket;步骤二:通用处理器中的深度包检测模块对数据流包接收模块接收到的NPacket依据流类型模式库中的模式进行深度包检测处理,并将流处理结果R(R=<T,Packet_type>)传输给网络处理器中的流处理与存储模块;步骤三:网络处理器中的数据包流控制模块根据流处理与存储模块输出的数据包信息L(L=<P,R>)进行流量控制,且该流量经数据包发送模块向外发送。在本专利技术中,五元组流信息T=<srcIp,dstIp,srcPort,dstPort,proto>中,srcIp表示源IP地址,dstIp表示目的IP地址,srcPort表示源端口,dstPort表示目的端口,proto表示协议。流处理结果R=<T,Packet_type>中Packet_type表示流的类型。参见图2所示,在流处理与存储模块收到数据包P后的处理流程为:步骤(一):从数据包P中提取五元组流信息T(T=<srcIp,dstIp,srcPort,dstPort,proto>);步骤(二):判断步骤(一)中提取的五元组流信息T是否存在于Hash表中;若“是”,则判定T的计数值是否大于N,并进行步骤(四);若“否”,则判定T中srcIp与dstIp转换成数值后的大小是否srcIp<dstIp;若“否”,交换源地址与目的地址和源端口与目的端口后进行步骤(三);若“是”,直接进行步骤(三);步骤(三):将五元组流信息T为Hash键值进行Hash存储,并将此数据包P发送到通用处理器,并将流T对应的计数值加1保存到Hash表中;然后,发送数据包P;结束。-->步骤(四):根据步骤(二),若“是”,表明已经将流T的前N个数据包发送到通用处理处,可根据类型识别结果(若此时通用处理器还未将结果传来将按未知类型处理)进行数据包流量控制与管理,若未丢弃,则发送数据包,否则,直接结束。参见图3所示,Hash表的表项结构包含有:nextEntry,srcIp,dstIp,srcPort,dstPort,proto,count,flowType,timestamp。其中,nextEntry表示下一条表项地址;srcIp,dstIp,srcPort,dstPort,proto为流信息,在“参见图1所示”中已介绍;count为流的计数值;flowType为流类型;t本文档来自技高网
...

【技术保护点】
一种网络处理器结合通用处理器的流量识别方法,其特征在于: 所述网络处理器包括有数据包接收模块、数据包发送模块、刷新Hash表模块、流处理与存储模块、数据包流控制与管理模块; 所述通用处理器包括数据流包接收模块、深度包检测模块、流类型模式库;其中,对流量识别的步骤为: 步骤一:网络处理器中的流处理与存储模块一方面从数据包接收模块中获取数据包P的五元组流信息T(T=〈srclp,dstIp,srcPort,dstPort,proto〉),并将五元组流信息T进行Hash存储;另一方面向通用处理器中的数据流包接收模块发送流的前N(10≤N≤20)个数据包NPacket; 五元组流信息T=〈srcIp,dstIp,srcPort,dstPort,proto〉中,srcIp表示源IP地址,dstIp表示目的IP地址,srcPort表示源端口,dstPort表示目的端口,proto表示协议; 步骤二:通用处理器中的深度包检测模块对数据流包接收模块接收到的NPacket依据流类型模式库中的模式进行深度包检测处理,并将流处理结果R(R=〈T,Packet_type〉)传输给网络处理器中的流处理与存储模块; 流处理结果R=〈T,Packet_type〉中Packet_type表示流的类型; 步骤三:网络处理器中的数据包流控制模块根据流处理与存储模块输出的数据包信息L(L=〈P,R〉)进行流量控制,且该流量经数据包发送模块向外发送。...

【技术特征摘要】
1、一种网络处理器结合通用处理器的流量识别方法,其特征在于:所述网络处理器包括有数据包接收模块、数据包发送模块、刷新Hash表模块、流处理与存储模块、数据包流控制与管理模块;所述通用处理器包括数据流包接收模块、深度包检测模块、流类型模式库;其中,对流量识别的步骤为:步骤一:网络处理器中的流处理与存储模块一方面从数据包接收模块中获取数据包P的五元组流信息T(T=<srcIp,dstIp,srcPort,dstPort,proto>),并将五元组流信息T进行Hash存储;另一方面向通用处理器中的数据流包接收模块发送流的前N(10≤N≤20)个数据包NPacket;五元组流信息T=<srcIp,dstIp,srcPort,dstPort,proto>中,srcIp表示源IP地址,dstIp表示目的IP地址,srcPort表示源端口,dstPort表示目的端口,proto表示协议;步骤二:通用处理器中的深度包检测模块对数据流包接收模块接收到的NPacket依据流类型模式库中的模式进行深度包检测处理,并将流处理结果R(R=<T,Packet_type>)传输给网络处理器中的流处理与存储模块;流处理结果R=<T,Packet_type>中Packet_type表示流的类型;步骤三:网络处理器中的数据包流控制模块根据流处理与存储模块输出的数据包信息L(L=<P,R>)进行流量控制,且该流量经数据包发送模块向外发送。2、根据权利要求1所述的网络处理器结合通用处理器的流量识别方法,其特征在于...

【专利技术属性】
技术研发人员:李巍钱德沛李云春秦先龙
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:11[中国|北京]

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

1