CN101388848A - 网络处理器结合通用处理器的流量识别方法 - Google Patents
网络处理器结合通用处理器的流量识别方法 Download PDFInfo
- Publication number
- CN101388848A CN101388848A CNA2008102239825A CN200810223982A CN101388848A CN 101388848 A CN101388848 A CN 101388848A CN A2008102239825 A CNA2008102239825 A CN A2008102239825A CN 200810223982 A CN200810223982 A CN 200810223982A CN 101388848 A CN101388848 A CN 101388848A
- Authority
- CN
- China
- Prior art keywords
- packet
- stream
- flow
- general processor
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网络处理器结合通用处理器的流量识别方法,结合了网络处理器与通用处理器的优点来实现网络流量识别;利用网络处理器来接包发包并将数据流进行聚合,每条数据流开始的少量数据包通过PCI或PCIe总线上传到通用处理器;然后,利用通用处理器对数据包中的深度包检测以识别出流量的类型,并将识别出的流量类型结果下传到网络处理器上,以便网络处理器对流量进行控制;识别过程不影响数据包转发性能,且只对每条数据流开始的少量数据包进行深度包检测。该流量识别方法能够满足中高端网络环境流量识别要求。
Description
技术领域
本发明涉及一种网络流量的识别方法,更特别地说,是指一种网络处理器结合通用处理器的流量识别方法。
背景技术
随着网络的迅速发展,网络流量表现出多样化,对网络管理提出了新的挑战。例如,当前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为流类型;timestamp为该流保存到Hash表时的时间戳,根据此时间戳,可以对Hash表定期刷新以使新到达的流有空余表项可用。
实施例:
以P2P流量识别与控制系统为例,硬件采用ENP2611平台,该平台采用Intel2400网络处理器,利用PCIe总线与通用处理器通信。
对于网络处理器层,当网络处理器的数据层接收到数据包后,提取出五元组信息,利用网络处理器的CRC校验单元将五元组信息计算成Hash键值,然后按图2所示步骤进行Hash存储并将每条流的前10个数据包发送到通用处理器,发送到通用处理器的数据包只是一份拷贝,这些数据包仍然从网络处理器的出口发送出去,它们不参与“数据包流量控制与管理模块”的处理,因为此时通用处理器还未传回识别结果;这样就将流量识别时延隐藏起来,即识别过程不影响网络处理器的数据转发效率;其中,“数据包流量控制与管理”部分表示对识别出的每条P2P流进行相应的控制与管理,例如用令牌桶算法进行限速以及统计等。同时,由于Hash表使用SRAM内存,容量有限,根据流表项中的timestamp值对Hash表定期(如5分钟)进行刷新。
对于通用处理器层,深度包检测模块根据流量类型模式将网络处理器上传的数据包进行类型识别;其中,流量类型模式基于正则表达式,在流量网站(如protocolinfo.org)中可以自由下载;将有关P2P的模式下载到本地,深度包检测模块利用这些模式对数据包识别后的结果传到网络处理器。同时,可定期更新流量类型模式以应对P2P软件的变化。
本发明网络处理器结合通用处理器的流量识别方法的优点:
1)现有的流量识别方法要么在通用处理器上实现,要么在网络处理器上实现,两者都具有固有的缺点,如在通用处理器上实现,由于通用处理器的性能不足以及通用操作系统要处理的任务繁多,在实现数据包接收与转发的同时对流量进行识别会使转发速率减慢;在网络处理器上实现的话,首先,将识别过程放在转发前进行也会使网络处理器的性能下降,另外,网络处理器对深度包检测还没有硬件支持,并且在其上编程复杂,要用软件在其上实现深度包检测不仅难度大而且对性能有很大影响。
2)一般的流量识别方法是将所有的数据包与现有的固有字段或模式(正则表达式)进行匹配,而本流量识别方法只对决定流量类型的前部分数据包(每条数据流开始的少量数据包)进行匹配。
3)一般的流量识别方法将所用的固有字段或模式固化在整个系统中,不便于升级,对于现在网络流量的多变表现得极不灵活;本流量识别方法由于识别过程在通用处理器上进行,能够自动地从网络上获得可用的匹配模式并更改系统中用到的模式。
4)本流量识别方法只对每条流开始的少量数据包进行处理使性能加快,同时因为流量类型一般由一条流的前部分数据包决定,因此本流量识别方法也不会使识别准确度下降。
5)本流量识别方法具有灵活性,可以自动从网络获取可用的匹配模式,不需要人工的介入。
Claims (3)
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个数据包发送到通用处理处,可根据类型识别结果进行数据包流量控制与管理,若未丢弃,则发送数据包,否则,直接结束。
3、根据权利要求2所述的网络处理器结合通用处理器的流量识别方法,其特征在于:Hash表的表项结构包含有:nextEntry,srcIp,dstIp,srcPort,dstPort,proto,count,flowType,timestamp;其中,nextEntry表示下一条表项地址;srcIp,dstIp,srcPort,dstPort,proto为流信息;count为流的计数值;flow Type为流类型;timestamp为该流保存到Hash表时的时间戳,根据此时间戳对Hash表定期刷新以使新到达的流有空余表项可用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102239825A CN101388848B (zh) | 2008-10-13 | 2008-10-13 | 网络处理器结合通用处理器的流量识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102239825A CN101388848B (zh) | 2008-10-13 | 2008-10-13 | 网络处理器结合通用处理器的流量识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101388848A true CN101388848A (zh) | 2009-03-18 |
CN101388848B CN101388848B (zh) | 2010-12-22 |
Family
ID=40478037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102239825A Expired - Fee Related CN101388848B (zh) | 2008-10-13 | 2008-10-13 | 网络处理器结合通用处理器的流量识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101388848B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387045A (zh) * | 2011-09-30 | 2012-03-21 | 北京信息科技大学 | 嵌入式p2p流量监控系统及方法 |
CN103166807A (zh) * | 2011-12-15 | 2013-06-19 | 中国电信股份有限公司 | 基于应用的流量流向分析处理方法与系统 |
US20130191552A1 (en) * | 2012-01-21 | 2013-07-25 | Plixer International | Methods and systems for mapping flow paths in computer networks |
WO2013155834A1 (zh) * | 2012-04-17 | 2013-10-24 | 华为技术有限公司 | 一种跨设备的流量类型识别方法、设备及系统 |
CN103731416A (zh) * | 2013-12-11 | 2014-04-16 | 清华大学 | 一种基于网络流量的协议识别方法和系统 |
CN103731406A (zh) * | 2013-09-22 | 2014-04-16 | 东软集团股份有限公司 | 基于多元判定要素的p2p识别方法及系统 |
WO2015010256A1 (zh) * | 2013-07-23 | 2015-01-29 | 华为技术有限公司 | 一种报文转发方法及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100493094C (zh) * | 2006-08-25 | 2009-05-27 | 清华大学 | 基于特征码的p2p数据报文检测方法 |
CN101202652B (zh) * | 2006-12-15 | 2011-05-04 | 北京大学 | 网络应用流量分类识别装置及其方法 |
-
2008
- 2008-10-13 CN CN2008102239825A patent/CN101388848B/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387045A (zh) * | 2011-09-30 | 2012-03-21 | 北京信息科技大学 | 嵌入式p2p流量监控系统及方法 |
CN102387045B (zh) * | 2011-09-30 | 2015-07-08 | 北京信息科技大学 | 嵌入式p2p流量监控系统及方法 |
CN103166807A (zh) * | 2011-12-15 | 2013-06-19 | 中国电信股份有限公司 | 基于应用的流量流向分析处理方法与系统 |
US20130191552A1 (en) * | 2012-01-21 | 2013-07-25 | Plixer International | Methods and systems for mapping flow paths in computer networks |
WO2013155834A1 (zh) * | 2012-04-17 | 2013-10-24 | 华为技术有限公司 | 一种跨设备的流量类型识别方法、设备及系统 |
US9872207B2 (en) | 2012-04-17 | 2018-01-16 | Huawei Technologies Co., Ltd. | Method, device, and system for identifying traffic type across devices |
WO2015010256A1 (zh) * | 2013-07-23 | 2015-01-29 | 华为技术有限公司 | 一种报文转发方法及设备 |
US10057165B2 (en) | 2013-07-23 | 2018-08-21 | Huawei Technologies Co., Ltd. | Packet forwarding method and device |
CN103731406A (zh) * | 2013-09-22 | 2014-04-16 | 东软集团股份有限公司 | 基于多元判定要素的p2p识别方法及系统 |
CN103731406B (zh) * | 2013-09-22 | 2017-01-25 | 东软集团股份有限公司 | 基于多元判定要素的p2p识别方法及系统 |
CN103731416A (zh) * | 2013-12-11 | 2014-04-16 | 清华大学 | 一种基于网络流量的协议识别方法和系统 |
CN103731416B (zh) * | 2013-12-11 | 2016-11-16 | 清华大学 | 一种基于网络流量的协议识别方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101388848B (zh) | 2010-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101388848B (zh) | 网络处理器结合通用处理器的流量识别方法 | |
CN103716208B (zh) | 支持大象流的网络管理方法、系统、交换机和网络 | |
EP3817298A1 (en) | Data message detection method, device and system | |
CN103763154B (zh) | 一种网络流量检测方法 | |
CN101827073B (zh) | 跟踪片段数据流 | |
WO2012109911A1 (zh) | 网络流量监管方法及装置 | |
CN103139093B (zh) | 基于fpga的高速网络数据流负载均衡调度方法 | |
US9985892B1 (en) | System and method for providing congestion notification in layer 3 networks | |
CA2469169A1 (en) | Method and apparatus for determination of network topology | |
CN102468987B (zh) | 网络流特征向量提取方法 | |
CN106713182A (zh) | 一种处理流表的方法及装置 | |
CN105791439A (zh) | 一种数据处理方法、数据接收设备及数据处理系统 | |
CN106685862B (zh) | 一种分片数据包处理方法及装置 | |
US11316804B2 (en) | Forwarding entry update method and apparatus in a memory | |
CN103685058B (zh) | 控制流数据的服务质量的方法和OpenFlow控制器 | |
CN111726299B (zh) | 流量均衡方法及装置 | |
CN106101161A (zh) | 一种用于处理伪造的tcp数据包的方法和系统 | |
CN102201949B (zh) | 一种测试网络设备转发性能的系统及方法 | |
CN109962879B (zh) | 针对分布式反射拒绝服务DRDoS的安全防御方法和控制器 | |
CN108063814A (zh) | 一种负载均衡方法及装置 | |
US10200296B2 (en) | Packet transport apparatus, packet transport system and packet transport method | |
CN108566335B (zh) | 一种基于NetFlow的网络拓扑生成方法 | |
CN116471238A (zh) | 基于新型网络拥塞通告及速率调整策略的拥塞管理方法 | |
CN106789440B (zh) | 一种ip包包头检测方法及装置 | |
CN109547352A (zh) | 报文缓存队列的动态分配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101222 Termination date: 20111013 |