一种dpi无锁流状态管理方法及系统的制作方法

文档序号:7818386阅读:212来源:国知局
一种dpi无锁流状态管理方法及系统的制作方法
【专利摘要】本发明实施例提供了一种DPI无锁流状态管理方法及系统,在流处理线程有数据流需要处理时,所述流处理线程从流状态信息表中查找所述数据流对应的流信息;在查找时,若流信息为不对应所述数据流的流信息时,则流处理线程对所述流信息进行超时处理。在没有流数据需要处理时,流处理线程也会触发一个极短的超时处理过程,进行超时处理。这样就使得使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
【专利说明】一种DPI无锁流状态管理方法及系统

【技术领域】
[0001]本发明涉及网络管理技术,特别涉及一种DPI无锁流状态管理方法及系统。

【背景技术】
[0002]DPI技术,即DPI (Deep Packet Inspect1n)深度包检测技术是一种基于应用层的流量检测和控制技术,当IP数据包、TCP或UDP数据流通过基于DPI技术的带宽管理系统时,该系统通过深入读取IP包载荷的内容来对OSI七层协议中的应用层信息进行重组,从而得到整个应用程序的内容,然后按照系统定义的管理策略对流量进行整形操作。
[0003]应用DPI技术的DPI系统具备网络业务数据流识别、网络业务数据流控制能力,工作在网络传输层到应用层,具有高数据处理能力,能够对网络所承载的业务进行识别和流量管理,可部署在网络骨干层、城域网和企业内部的网络系统。DPI系统通常用作大流量网络环境下的数据流还原分析和流量统计,通常采用多线程的方式,并行处理海量数据流。DPI系统的设计中需要每个线程维护各自流的流状态信息表(流状态信息表通常是用来存储数据流的流信息,即数据流处在业务中的某些状态和统计及设置的相关信息),同时需要额外的线程对流状态信息表中所保存的数据流的状态进行状态处理,即当数据流超时结束时,应该将其相应的流信息从流状态信息表中删除。
[0004]本发明的发明人在对现有的DPI系统运行方法的研究与实践中发现,现有方法中需要额外的数据流管理线程来专门对各个流的流状态信息表中所保存的数据流的状态进行超时处理,这样数据流管理线程和数据流处理线程间需要对数据流状态信息表进行加锁保护,在大流量数据情况下,这种频繁的加锁和解锁,将带来很大的性能损失。


【发明内容】

[0005]本发明实施例提供一种DPI无锁流状态管理方法及系统,使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
[0006]有鉴于此,本发明实施例提供:
一种DPI流状态管理方法,包括:
在流处理线程有数据流需要处理时,所述流处理线程从流状态信息表中查找所述数据流对应的流信息;
在查找时,若流信息为不对应所述数据流的流信息时,则流处理线程对所述流信息进行超时处理。
[0007]一种DPI系统,包括:
流处理线程,该流处理线程包括查找模块、流状态信息表模块和超时处理模块;所述流处理线程在有数据流需要处理时,所述查找模块会从流状态信息表模块中查找所述数据流对应的流信息;
在查找时,若流信息为不对应所述数据流的流信息时,则超时处理模块对所述流信息进行超时处理。
[0008]本发明实施例提供了一种DPI无锁流状态管理方法及系统,该方法将数据流状态的超时检查分散到每一次数据流表的查找中,由流处理线程负责执行,因此该方法消除了额外的数据流管理线程,使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。

【专利附图】

【附图说明】
[0009]为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0010]图1为本发明实施例一的方法流程图;
图2为本发明实施例二的方法流程图;
图3为本发明实施例二的DPI系统结构图。

【具体实施方式】
[0011]本发明实施例提供一种DPI无锁流状态管理方法及系统,使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
[0012]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0013]如图1所示,为本发明实施例一的方法流程图,下面结合此图来进行说明。本方法包括两个步骤:
101、在流处理线程有数据流需要处理时,所述流处理线程从流状态信息表中查找所述数据流对应的流信息;
102、在查找时,若流信息为不对应所述数据流的流信息时,则流处理线程对所述流信息进行超时处理。
[0014]需要说明的是,流处理线程查找该数据流的流信息时,可以是按顺序查找,也可以使随机的查找,具体的查找方式并不理解为对本发明的限制。
[0015]需要说明的是,所述流状态信息表为所述流处理线程专有,用于记录所述流处理线程处理的流数据的流信息。每个流处理线程拥有自己的流状态信息表,不能处理其他处理线程的流状态信息表,该处理线程的流状态信息表也不能被其他流处理线程处理。
[0016]当有多条流处理线程时,每条流处理线程有各自的流状态信息表。
[0017]在本发明实施例中,提供了一种DPI无锁流状态管理方法,该方法将数据流状态的超时检查分散到每一次数据流的流信息的查找中,由流处理线程负责执行,因此该方法消除了额外的数据流管理线程,使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
[0018]下面结合图2所示的流程图,对本发明实施例二进行说明。包括以下这些步骤: 201、在流处理线程有数据流需要处理时,所述流处理线程从该线程专有的流状态信息表202中按编号顺序查找所述数据流对应的流信息。较佳实施例中,如图2中所示流②是要查找的流信息,查找经过流①时,由于流①为不对应该数据流的流信息,则流处理线程对流①进行流状态处理203 (检测是否超时,若超时将其删除)。当流处理线程找到流②时会对流②进行下一步操作(执行步骤204)。较佳实施例中,在找到数据流对应的流信息流②后,流处理线程不会再对流③及其它流信息进行流状态处理,以节约性能。
[0019]204、由于流②的流信息为对应该数据流的流信息,则流处理线程结束查找并更新所述流②的流信息,然后流处理线程根据流②的流信息进行数据流还原分析和/或流量统计。
[0020]需要说明的是,流状态彳目息表202中的流彳目息可以是按顺序编号排列,也可以是按某种规则排列,并不理解为对本发明实施例的限制。而其中,流处理线程查找该数据流的流信息时,可以是按顺序查找,也可以是使随机的查找,也可以是按某种规则查找,具体的查找方式并不理解为对本发明的限制。
[0021 ] 其中,步骤204中除了进行数据流还原分析和/或流量统计这两个操作以外,还可以是其它操作,此处不作限定。
[0022]通过以上的操作,将数据流状态的超时检查分散到每一次数据流表的查找中,由流处理线程负责执行,因此该方法消除了额外的数据流管理线程,使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
[0023]进一步的,在没有数据流处理时,流处理线程线程执行步骤205,即流处理线程对流状态信息表202里的流④、流⑤、流⑥的流信息进行流状态处理203。
[0024]在步骤205中,若流处理线程没有数据流达到时,该线程会触发一个极短的数据流状态处理203的过程(超时检测及超时处理等),该过程只处理该线程的流状态信息表202的一小部分流。当下一次该流处理线程没有数据包达到时,会处理该线程的流状态信息表的下一个一小部分流,如此循环,最后也能达到无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
[0025]下面结合图3所示的流程图,对本发明实施例二的DPI系统进行说明。
[0026]在该DPI系统中,包含流处理线程304,所述流处理线程304包括查找模块301、流状态信息表模块302和超时处理模块303。
[0027]在有数据流需要处理时,查找模块301会从流状态信息表模块302中查找所述数据流对应的流信息;
在查找时,若流信息为不对应所述数据流的流信息时,则超时处理模块303对所述流信息进行超时处理。
[0028]这样将数据流状态的超时检查分散到每一次数据流表的查找中,由流处理线程负责执行,因此该DPI系统的流状态管理方法消除了额外的数据流管理线程,使得DPI系统无需使用额外的数据流管理线程来对流状态信息表进行超时处理,也不用频繁的加锁和解锁,大大的提高系统的性能。
[0029]其中,流处理线程304还包括执行模块307。在查找时,若流信息为对应所述数据流的流信息时,则执行模块307根据所述流信息进行数据流还原分析和/或流量统计。
[0030]其中,流处理线程304在流处理线程没有数据流需要处理时,超时处理模块303对流状态信息表模块302的部分或全部流信息进行超时处理。
[0031]需要说明的是,查找模块301在查找数据流的流信息时,可以是按顺序查,也可以使随机的查找,具体的查找方式并不理解为对本发明实施例的限制。
[0032]图3所示的DPI系统还包括流处理线程305和流处理线程305两条并行的线程,也可以包含更多相同并行的线程,并不理解为对本发明的限制。
[0033]以上对本发明实施例所提供的一种DPI无锁流状态管理方法及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种DPI流状态管理方法,其特征在于,包括: 在流处理线程有数据流需要处理时,所述流处理线程从流状态信息表中查找所述数据流对应的流信息; 在查找时,若流信息为不对应所述数据流的流信息时,则流处理线程对所述流信息进行超时处理。
2.根据权利要求1所述的DPI流状态管理方法,其特征在于,所述DPI流状态管理方法还包括: 在流处理线程没有数据流需要处理时,所述流处理线程对流状态信息表里的部分或全部流信息进行超时处理。
3.根据权利要求1所述的DPI流状态管理方法,其特征在于,所述DPI流状态管理方法还包括: 在查找时,若流信息为对应所述数据流的流信息时,则流处理线程结束查找并更新所述流信息,然后根据所述流信息进行数据流还原分析和/或流量统计。
4.根据权利要求1至3任一项所述的DPI流状态管理方法,其特征在于,所述流处理线程从流状态信息表中查找所述数据流对应的流信息包括: 所述流处理线程按顺序或随机的查找所述流状态信息表中包含的流信息。
5.根据权利要求1所述的DPI流状态管理方法,所述流状态信息表为所述流处理线程专有,用于记录所述流处理线程处理的流数据的流信息。
6.一种DPI系统,其特征在于,包括: 流处理线程,所述流处理线程包括查找模块、流状态信息表模块和超时处理模块;所述流处理线程在有数据流需要处理时,所述查找模块会从流状态信息表模块中查找所述数据流对应的流信息; 在查找时,若流信息为不对应所述数据流的流信息时,则超时处理模块对所述流信息进行超时处理。
7.根据权利要求6所述的DPI系统,其特征在于,该流处理线程进一步包括执行模块,在查找时,若流信息为对应所述数据流的流信息时,则执行模块根据所述流信息进行数据流还原分析和/或流量统计。
8.根据权利要求6或7所述的DPI系统,其特征在于,所述查找模块会从流状态信息表模块中查找所述数据流对应的流信息包括: 所述查找模块按顺序或随机的查找所述流状态信息表模块中包含的流信息。
9.根据权利要求6所述的DPI系统,其特征在于,所述流处理线程在流处理线程没有数据流需要处理时,所述超时处理模块对流状态信息表里的部分或全部流信息进行超时处理。
【文档编号】H04L12/24GK104363115SQ201410598932
【公开日】2015年2月18日 申请日期:2014年10月30日 优先权日:2014年10月30日
【发明者】刘永强, 吕恩泳, 沈智杰, 景晓军, 唐新民 申请人:任子行网络技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1