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

文档序号:7927208阅读:151来源:国知局
专利名称:网络处理器结合通用处理器的流量识别方法
技术领域
本发明涉及一种网络流量的识别方法,更特别地说,是指一种网络处理器结合通 用处理器的流量识别方法。
背景技术
随着网络的迅速发展,网络流量表现出多样化,对网络管理提出了新的挑战。例
如,当前P2P流量泛滥,P2P软件层出不穷,并且P2P软件的作者为了追避被封査, 采用各种各样的手段,如变端口号,利用常用端口号,将协议字段不断改变等,所有 这些使流量识别变得越来越不易。
传统的网络流量识别系统一般集成在如防火墙里, 一般采用通用处理器,专用集 成电路(ASIC)以及几年前兴起的网络处理器。通用处理器由于其采用通用操作系 统,处理的任务繁多,且由于其计算性能有限,不能在中高端网络中胜任;对于ASIC 架构,其有很好的性能,但由于其开发难度大开发周期长,且可扩展性差,限制了其 应用;网络处理器介于这两者中间,具有高性能可编程特点,伹其开发也较复杂,且 其没有专门的硬件单元对流量识别进行支持,因而也网络处理器的发展。
另夕卜,对于流量识别,最基本的识别方法有基于端口的识别方法与基于特征的识 别方法。基于端口的识别方法检查数据包的端口,看其是否是特定协议的端口来进行 识别,对于现在的网络流量,特别是P2P流量这种方法不再可靠;基于特征的识别 方法是对固定的字段与数据包中的内容进行匹配,对于如今多变的网络流量,这种方 法只对少部分流量有效。另外,也有基于统计的流量识别方法以及基于协议特征的流 量识别方法,伹这些方法主要处于研究阶段,对于应用还有一段距离。由于这些方法 的缺点,近些年来,兴起了深度包检测技术,它不限于流量识别领域,还可用于病毒 及有害代码的检测;其本质还是基于特征的识别方法,但它使用的特征不是简单的固 定字段,而是可变的正则表达式,由于正则表达式的灵活,对于如今多变的网络流量, 它能够准确地识别出这些流量。伹这种方法由于要对正则表达式进行解析,对硬件的 性能要求比较高。

发明内容
本发明的目的是基于对软、硬件要求考虑,设计出一种网络处理器结合通用处理 器的流量识别方法,该流量识别方法能够满足中高端网络环境流量识别要求。
本发明网络处理器结合通用处理器的流量识别方法,结合了网络处理器与通
用处理器的优点来实现网络流量识别;利用网络处理器来接包发包并将数据流进 行聚合,每条数据流开始的少量数据包(如前10个数据包)通过PCI或PCIe总 线上传到通用处理器;然后,利用通用处理器对数据包中的深度包检测以识别出 流量的类型,并将识别出的流量类型结果下传到网络处理器上,以便网络处理器 对流量进行控制;识别过程不影响数据包转发性能,且只对每条数据流开始的少 量数据包进行深度包检测。
本发明是一种网络处理器结合通用处理器的流量识别方法,其特征在于
所述网络处理器包括有数据包接收模块、数据包发送模块、刷新Hash表模块、 流处理与存储模块、数据包流控制与管理模块;
所述通用处理器包括数据流包接收模块、深度包检测模块、流类型模式库;
其中,对流量识别的步骤为
步骤一 网络处理器中的流处理与存储模块一方面从数据包接收模块中获取数据 包尸的五元组流信息r (r = 〈wc/; ,必/取wc尸ort,必WoW, foto〉),并将五元组流信息
r进行Hash存储;另一方面向通用处理器中的数据流包接收模块发送流的前W (10
《〃<20)个数据包AT"dte"
步骤二 通用处理器中的深度包检测模块对数据流包接收模块接收到的A^"cfe
依据流类型模式库中的模式进行深度包检测处理,并将流处理结果及 (= 〈r,尸^k—砂e〉)传输给网络处理器中的流处理与存储模块;
流处理结果及=〈r,尸flfc^-妙e〉中户flcto一妙e表示流的类型;
步骤三网络处理器中的数据包流控制模块根据流处理与存储模块输出的数据包 信息£ (丄=〈尸,")进行流量控制,且该流量经数据包发送模块向外发送。


图1是本发明网络处理器加通用处理器的流量识别方法的结构框图。 图2是本发明流处理与存储^莫块的处理流程图。 图3是本发明Hash表的表项结构图。
具体实施例方式
下面将结合附图和实施例对本发明做进一步的详细说明。
参见图1所示,本发明是一种网络处理器结合通用处理器的流量识别方法,其
中,网络处理器包括有数据包接收模块、数据包发送模块、刷新Hash表模块、流处
理与存储模块、数据包流控制与管理模块;通用处理器包括数据流包接收模块、深度
包检测模块、流类型模式库;本发明方法对流量识别的步骤为
步骤一网络处理器中的流处理与存储模块一方面从数据包接收模块中获取数据 包尸的五元组流信息71 (r = 〈wc/; , wc尸oW, cfe/户0W, pTOto〉),并将五元组流信息
T进行Hash存储;另一方面向通用处理器中的数据流包接收模块发送流的前W (10
《W<20)个数据包WPadk";
步骤二 通用处理器中的深度包检测模块对数据流包接收模块接收到的iV尸"cfef
依据流类型模式库中的模式进行深度包检测处理,并将流处理结果及 (i = 〈r,P^feL妙e〉)传输给网络处理器中的流处理与存储模块;
步骤三网络处理器中的数据包流控制模块根据流处理与存储模块输出的数据包 信息£ (I-〈P,i 〉)进行流量控制,且该流量经数据包发送模块向外发送。
在本发明中,五元组流信息r = 〈wc/p,wc尸oW,cfe^Po", prato〉中,src尔表示
源IP地址,^尔表示目的IP地址,wc户ow表示源端口 , AWoW表示目的端口 , ,oro 表示协议。流处理结果及=〈r,尸fl(cb—砂e〉中尸ac^"—妙e表示流的类型。
参见图2所示,在流处理与存储模块收到数据包户后的处理流程为
步骤(一)从数据包尸中提取五元组流信息r
<formula>formula see original document page 6</formula>
步骤(二)判断步骤(一)中提取的五元组流信息r是否存在于Hash表中; 若"是",则判定r的计数值是否大于AT ,并进行步骤(四);若"否",则判定r中w/p 与^fo/;7转换成数值后的大小是否^c/;7 若"否",交换源地址与目的地址和
源端口与目的端口后进行步骤(三);若"是",直接进行步骤(三);
步骤(三)将五元组流信息r为Hash键值进行Hash存储,并将此数据包P发 送到通用处理器,并将流r对应的计数值加1保存到Hash表中;然后,发送数据包 P ;结束。
步骤(四)根据步骤(二),若"是",表明已经将流r的前w个数据包发送到
通用处理处,可根据类型识别结果(若此时通用处理器还未将结果传来将按未知类型 处理)进行数据包流量控制与管理,若未丢弃,则发送数据包,否则,直接结束。
参见图3所示,Hash表的表项结构包含有"eW五"^y , wc/p , cfW/; , jmPo吋,
其中,"加五"/^表示下一条表项地址;wc^7 , d, , 5roPor/, t/W户ort , / ra/o 为流信息,在"参见图1所示"中已介绍;co^为流的计数值;,tw7);;7e为流类型;
为该流保存到Hash表时的时间戳,根据此时间戳,可以对Hash表定期 刷新以使新到达的流有空余表项可用。
实施例
以P2P流量识别与控制系统为例,硬件采用ENP2611平台,该平台采用Intel 2400网络处理器,利用PCIe总线与通用处理器通信。
对于网络处理器层,当网络处理器的数据层接收到数据包后,提取出五元组信息, 利用网络处理器的CRC校验单元将五元组信息计算成Hash键值,然后按图2所示 步骤进行Hash存储并将每条流的前IO个数据包发送到通用处理器,发送到通用处 理器的数据包只是一份拷贝,这些数据包仍然从网络处理器的出口发送出去,它们不 参与"数据包流量控制与管理模块"的处理,因为此时通用处理器还未传回识别结果; 这样就将流量识别时延隐藏起来,即识别过程不影响网络处理器的数据转发效率;其 中,"数据包流量控制与管理"部分表示对识别出的毎条P2P流进行相应的控制与管 理,例如用令牌桶箅法进行限速以及统计等。同时,由于Hash表使用SRAM内存, 容量有限,根据流表项中的rtwe^w^值对Hash表定期(如5分钟)进行刷新。
对于通用处理器层,深度包检测模块根据流量类型模式将网络处理器上传的数据 包进行类型识别;其中,流量类型模式基于正则表达式,在流量网站(如 protocolinfo.org)中可以自由下载;将有关P2P的模式下载到本地,深度包检测模
块利用这些,莫式对数据包识别后的结果传到网络处理器。同时,可定期更新流量类型 模式以应对P2P软件的变化。
本发明网络处理器结合通用处理器的流量识别方法的优点
1) 现有的流量识别方法要么在通用处理器上实现,要么在网络处理器上实 现,两者都具有固有的缺点,如在通用处理器上实现,由于通用处理器 的性能不足以及通用操作系统要处理的任务繁多,在实现数据包接收与
转发的同时对流量进行识别会使转发速率减慢;在网络处理器上实现的
话,首先,将识别过程放在转发前进行也会使网络处理器的性能下降, 另外,网络处理器对深度包检测还没有硬件支持,并且在其上编程复杂, 要用软件在其上实现深度包检测不仅难度大而且对性能有很大影响。
2) —般的流量识别方法是将所有的数据包与现有的固有字段或模式(正则 表达式)进行匹配,而本流量识别方法只对决定流量类型的前部分数据 包(每条数据流开始的少量数据包)进行匹配。
3) —般的流量识别方法将所用的固有字段或模式固化在整个系统中,不便 于升级,对于现在网络流量的多变表现得极不灵活;本流量识别方法由
于识别过程在通用处理器上进行,能够自动地从网络上获得可用的匹配 模式并更改系统中用到的模式。
4) 本流量识别方法只对每条流开始的少量数据包进行处理使性能加快,同
时因为流量类型一般由一条流的前部分数据包决定,因此本流量识别方 法也不会使识别准确度下降。
5) 本流量识别方法具有灵活性,可以自动从网络获取可用的匹配模式,不 需要人工的介入。
权利要求
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所述的网络处理器结合通用处理器的流量识别方法,其特征在于在流处理与存储模块收到数据包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个数据包发送到通用处理处,可根据类型识别结果进行数据包流量控制与管理,若未丢弃,则发送数据包,否则,直接结束。
2、 根据权利要求1所述的网络处理器结合通用处理器的流量识别方法,其特征在于 在流处理与存储禾莫块收到数据包尸后的处理流程为步骤(一)从数据包p中提取五元组流信息r步骤(二)判断歩骤(一)中提取的五元组流信息r是否存在于Hash表中; 若"是",则判定r的计数值是否大于^ ,并进行步骤(四);若"否",则判定r中w尔 与&f尔转换成数值后的大小是否wc/p 若"否",交换源地址与目的地址和源端口与目的端口后进行步骤(三);若"是",直接进行步骤(三);步骤(三)将五元组流信息r为Hash键值进行Hash存储,并将此数据包尸发 送到通用处理器,并将流r对应的计数值加1保存到Hash表中;然后,发送数据包 P ;结束;步骤(四)根据步骤(二),若"是",表明已经将流r的前7V个数据包发送到 通用处理处,可根据类型识别结果进行数据包流量控制与管理,若未丢弃,则发送数 据包,否则,直接结束。
3、根据权利要求2所述的网络处理器结合通用处理器的流量识别方法,其特征在 于Hash表的表项结构包含有腦胸;^ , ^c尔,"鄉,wc尸oW , A,尸oW , / rato , cow"/ , ^/7ovv7)yg ,;其中,"ex&",r少表示下一条表项地址;^c尔, A"; , wcPwY , ^to尸oW, ywWo为流信息;cow"/为流的计数值;y ow7)^e为流 类型;^"to,为该流保存到Hash表时的时间戳,根据此时间戳对Hash表定 期刷新以使新到达的流有空余表项可用。
全文摘要
本发明公开了一种网络处理器结合通用处理器的流量识别方法,结合了网络处理器与通用处理器的优点来实现网络流量识别;利用网络处理器来接包发包并将数据流进行聚合,每条数据流开始的少量数据包通过PCI或PCIe总线上传到通用处理器;然后,利用通用处理器对数据包中的深度包检测以识别出流量的类型,并将识别出的流量类型结果下传到网络处理器上,以便网络处理器对流量进行控制;识别过程不影响数据包转发性能,且只对每条数据流开始的少量数据包进行深度包检测。该流量识别方法能够满足中高端网络环境流量识别要求。
文档编号H04L12/56GK101388848SQ20081022398
公开日2009年3月18日 申请日期2008年10月13日 优先权日2008年10月13日
发明者巍 李, 李云春, 秦先龙, 钱德沛 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1