一种基于单向并行多链表的网络数据管理方法及系统的制作方法

文档序号:7871307阅读:150来源:国知局
专利名称:一种基于单向并行多链表的网络数据管理方法及系统的制作方法
技术领域
本发明涉及一种网络数据管理方法,尤其涉及一种基于单向并行多链表的网络数据管理方法及系统。
背景技术
流管理是一种重要的管控手段,可以为用户提供关于流的详细信息,是众多有关流应用的基础。流管理按抽样方式分包括:逐包处理和抽样处理。抽样处理时只对一部分的流进行管理,无论采用何种抽样方式都不可避免的存在信息损耗,带来监管上的漏洞,因此实际应用中往往采用逐包。流管理中逐包处理基本要求有:每个包的处理达到线速度;流管理的信息需要及时的反馈给用户;同时监控数百万条流。TCP是面向连接的,正常的TCP流包括SYN包、中间包和FIN/RST包,当链路中存有大量的短时以及不规则流时,将导致表项空间爆炸,需要清理超时流。超时流包括活动超时流和不活的超时流两种,活动超时流是指从流的SYN包算起的连接时间超过某个门限,不活动流指一条流长时间没有新包`到达,距离最后一个包到达时间超过某个门限。对超时门限的需要根据实际网络和用户需求来设定,设定太短则将一些活动流错误的删除;如果太长则方法很有可能淹没于SYN包。处理活动超时流用包触发方式和普通的包处理相同,将新包的到达减去这个包对应流的起始时间与阈值比较,判断该流是否超时,超时即删除该流,否则更新该流所对应表项。而对于不活动流,因为长时间没有新包到达,无法采用包触发方式的删除,需要事件触发将其删除,即定时地在流表中查找不活动超时流并将其删除。事件触发需要在整个存储空间中对所有进行查找,会消耗大量的处理时间,查找和删除都需要对存储器读写操作,需要中断正常的包处理,因此怎样合理高效的删除不活动超时流成为流管理的一个难点。本文中的分时复用辅助变量法主要就是为了处理不活动超时流提出来的。流管理的方法可以将其分为两类。1、快速辅助存储法。快速辅助存储法是指在原来的主存储器外再增加辅存储器,将原来主存储器的部分常用信息存放在辅存储器(SRAM)中,处理中间包时避免访存SDRAM,或者将流有效和包到达信息存放在SRAM,加速不活动超时流的处理。快速辅助存储法处理不活跃超时流效率高,代价也是显而易见的,在当前网络设备中额外增加一个存储单元,是一件多么“奢侈”的事,并且现在随着电子技术的发展,SRAM的速率已经远远达不到SDRAM的速率,因此此方法并没有得到广泛的应用。2、双向链表法。双向链表法在原有的数据部分加入前向和后向指针,将原来散落在存储空间的数据连接起来,链表按最后一个包到达顺序排序,则最旧的流在链表的前面,最新的到达包对应的流在链表的末尾,查找不活动超时流是按流表顺序从前往后即可,当发现一个不超时活动流时停止查找。虽然按时序排列双向链表在处理不活动超时流时效率很高,但其增加了更新操作的时间消耗,本质上是将原来遍历链表时的搜索时间分解到每次更新操作当中。双向链表适合软件处理,适合以网络处理器为中心的架构,难以应用到FPGA为处理核心的架构中。

发明内容
本发明针对以上问题的提出,而研制的一种基于单向并行多链表的网络数据管理方法,具有如下步骤:S100.接收分光设备复制的链路流量,逐包进行解析,提取每个包的五元组;记录每个包到达的时间;S200.将所述每个 五元组哈希成流ID ;判断当前五元组对应的包是否为SYN包;S300.从SD Ram和Block Ram中读出当前包的表项数据;与所述与该包对应的五元组比较:五元组对应的包是否与表项匹配。S400.若匹配,将包信息写入对应的表项位置;S500.将所述 Block Ram 中 live 和 enable 数组清空;S501.将不活动流处理周期设为T,在(ΓΤ/2时间段,将live数组与enable数组的前半段对应;当SYN包到达时,将enable和live对应位置I,;当中间包到达时,将live对应位置I ;当enable和live对应位置O ;S502.在T/2时亥lj,比较live和与live数组对应的enable数组的前半段,enable与live的对应位分别为I和O时,则该流为不活动超时流:上报不活动超时流信息,将live和enable对应位置0,处理完后将所有的live位清O ;S503.在T/2T时间段,将live数组与enable数组的后半段对应,重复步骤S501 ;S504.在T/2时刻,比较live和enable数组后半段,重复步骤S502 ;S505.重复所述步骤S501-S504,直至完成所有包的处理。所述步骤S200中,所述的流ID位数根据存储表项决定。所述查找分为一级空间查找和二级空间查找,一级空间查找失败,根据流ID生成新的地址,在第二级空间继续查找。所述步骤S300中:对于SYN包,寻找对应的空白表项,成功则返回地址;对于其它类型的包,寻找对应已经建立的表项,成功则返回地址。步骤S400中,对于SYN包:将信息写入对应的表项;同时将Block Ram中的enable和live位同时置为有效;对于FIN/RST包,将Block Ram中enable位置为无效;对于中间报文,至少在表项中写入更新相应的报文数、字节数和最后报文到达时的信息;同时将live位置有效。还具有步骤S700.将流表项信息封装成netf low格式输出。一种使用如权利要求6所述的一种基于单向并行多链表的网络数据管理系统,具有:包信息提取单元,解析链路的包并提取包的基本信息,同时记录包的到达时间;哈希生成单元,对五元组进行哈希计算,得出包对应流ID ;查找单元负责根据生产的流ID查找对应的流表项;表项建立单元,处理SYN包,在对应的空表项位置建立流表项;表项更新单元,处理流中间数据,读取对应的流表项信息,更新数据并写回原地址;表项删除单元负责处理FIN/RST包,将包对应的流表项置为无效;不活动超时流维护单元负责定时地查找不活动超时流并将其删除;输出单兀负责将表项信息及时输出。由于采用了上述技术方案,本发明提供的一种基于单向并行多链表的网络数据管理方法和系统,通过一种简单的算法,完成了在流管理中的逐包处理,有效的对不活动超时流进行管控,算法效率高,耗时时间短。而且采用了 FPGA为处理核心,成本低廉,十分便于推广和使用。


为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例提供的基于单向并行多链表的流管理方法主框图;图2为本发明实施例提供的SDRAM中表项图;图3为本发明实施例提供的FPGA中Block_ram中存储示意图;图4为本发明实施例提供的待处理表项信息表图;图5为本发明实施例提供的已处理信表项息表具体实施例方式为使本发明的实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述:一种基于单向并行多链表的网络数据管理方法,主要具有如下步骤:如图1所示:S100.SI接口是复制流量入口,该接口外部与分光设备相连,接收分光设备复制的链路流量,逐包进行解析,提取每个包的五元组。同时,记录包的到达时间。S2接口将解析五元组送入哈希单元。S200.哈希单元将S2接口得到的五元组哈希成流ID,其位数根据存储表项数决定,同时将是否为SYN包的判决结果一并通过S3送入查找单元。S300.所述查找单元分别从SDRam和Block Ram中读出当前包的表项数据;与所述与该包对应的五元组比较:五元组对应的包是否与表项匹配。对于SYN包,寻找对应的空白表项,如果匹配成功,则返回地址;对于其它类型的包,寻找对应已经建立的表项,成功则返回地址。进一步的,为了处理哈希冲突,所述查找分为一级空间查找和二级空间查找,一级空间查找失败,根据流ID生成新的地址,在第二级空间继续查找。S400.如果匹配成功,则所述表项处理单元负责建立、更新和删除表项。将所述提取的信息和查找得到的表项信息综合处理。主要包括:对SDRAM和Block_ram两部分的写入操作。对于SYN包将信息通过S7接口写入对应的表项位置,同时通过S8接口将Block_ram中的enable和live位同时置有效;FIN/RST包通过S8接口将Block_ram中enable位置为无效,表示删除改表项,中间报文则通过S7接口写入更新相应的报文数、字节数最后报文到达时等信息,同时通过S8接口将live位置有效。当完成上述准备工作后,所述不活动超时流维护单元开始处理、查找和删除不活动的超时流。Block_ram主要存储enable和live数组,分别表示对应表项是否存在和该表项当前时间段是否有新包到达,live数组的空间大小只有enable数组的一半,其实际的存储结构如图3所示。将不活动流处理周期设为T,处理不活动超时流具体处理步骤如下:S500.将所述 Block Ram 中 live 和 enable 数组清空;S501.在(ΓΤ/2时间段,将live数组与enable数组的前半段对应;当SYN包到达时,将enable和live对应位置I ;当中间包到达时,将live对应位置I ;当enable和live对应位置O ;S502.在T/2时亥lj,比较live和与live数组对应的enable数组的前半段,enable与live的对应位分别为I和O时,则该流为不活动超时流:上报不活动超时流信息,将live和enable对应位置0,处理完后将所有的live位清O ;S503.在T/2 T时间段,将live数组与enable数组的后半段对应,重复步骤S501 ;S504.在T/2时刻,比较live和enable数组后半段,重复步骤S502 ;S505.重复所述步骤S501-S504,直至完成所有包的处理。进一步的,当当删除表项、遍历不活动超时流以及用户需求时,所述的输出单元进行步骤S700.将流表项信息封装成netflow格式输出。

以上所述,仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
权利要求
1.一种基于单向并行多链表的网络数据管理方法,具有如下步骤: S100.接收分光设备复制的链路流量,逐包进行解析,提取每个包的五元组;记录每个包到达的时间; S200.将所述每个五元组哈希成流ID ;判断当前五元组对应的包是否为SYN包; S300.从SD Ram和Block Ram中读出当前包的表项数据;与所述与该包对应的五元组比较:五元组对应的包是否与表项匹配。
S400.若匹配,将包信息写入对应的表项位置;所述BlockRam中live和enable数组清空;不活动流处理周期设为T,在(ΓΤ/2时间段,将live数组与enable数组的前半段对应; 当SYN包到达时,将enable和live对应位置I,; 当中间包到达时, 将live对应位置I ; 当enable和live对应位置O ;T/2时刻,比较live和与live数组对应的enable数组的前半段,enable与live的对应位分别为I和O时,则该流为不活动超时流:上报不活动超时流信息,将live和enable对应位置0,处理完后将所有的live位清O ;T/2 T时间段,将live数组与enable数组的后半段对应,重复步骤S501;T/2时刻,比较live和enable数组后半段,重复步骤S502;复所述步骤S501-S504,直至完成所有包的处理。
2.根据权利要求1所述的一种基于单向并行多链表的网络数据管理方法,其特征还在于:所述步骤S200中,所述的流ID位数根据存储表项决定。
3.根据权利要求1所述的一种基于单向并行多链表的网络数据管理方法,其特征还在于:所述查找分为一级空间查找和二级空间查找,一级空间查找失败,根据流ID生成新的地址,在第二级空间继续查找。
4.根据权利要求1所述的一种基于单向并行多链表的网络数据管理方法,其特征还在于:所述步骤S300中: 对于SYN包,寻找对应的空白表项,成功则返回地址;对于其它类型的包,寻找对应已经建立的表项,成功则返回地址。
5.根据权利要求1所述的一种基于单向并行多链表的网络数据管理方法,其特征还在于:步骤S400中, 对于SYN包:将信息写入对应的表项;同时将Block Ram中的enable和live位同时置为有效; 对于FIN/RST包,将Block Ram中enable位置为无效; 对于中间报文,至少在表项中写入更新相应的报文数、字节数和最后报文到达时的信息;同时将live位置有效。
6.根据上述任意一项权利要求所述的一种基于单向并行多链表的网络数据管理方法,其特征还在于:还具有步骤S700.将流表项信息封装成netflow格式输出。
7.一种使用如权利要求6所述的一种基于单向并行多链表的网络数据管理系统,具有:包信息提取单元,解析链路的包并提取包的基本信息,同时记录包的到达时间; 哈希生成单元,对五元组进行哈希计算,得出包对应流ID ;查找单元负责根据生产的流ID查找对应的流表项; 表项建立单元,处理SYN包,在对应的空表项位置建立流表项; 表项更新单元,处理流中间数据,读取对应的流表项信息,更新数据并写回原地址;表项删除单元;负责处理FIN/RST包,将包对应的流表项置为无效;不活动超时流维护单元负责定时地查找不活动超时流并将其删除; 输出单兀负责将表项信息及时输出。
8.根据权利要求7所述的一种基于单向并行多链表的网络数据管理系统,其特征还在于:所述包信息提取单元、哈希生成单元、表项建立单元、表项更新单元、表项删除单元和输出单元集成在FPGA中 。
全文摘要
本发明公开了一种基于单向并行多链表的网络数据管理方法,具有如下步骤S100.接收分光设备复制的链路流量,逐包进行解析,提取每个包的五元组;记录每个包到达的时间;S200.将所述每个五元组哈希成流ID;判断当前五元组对应的包是否为SYN包;S300.从SD Ram和Block Ram中读出当前包的表项数据;与所述与该包对应的五元组比较五元组对应的包是否与表项匹配。本发明提供的一种基于单向并行多链表的网络数据管理方法和系统,通过一种简单的算法,完成了在流管理中的逐包处理,有效的对不活动超时流进行管控,算法效率高,耗时时间短。而且采用了FPGA为处理核心,成本低廉,十分便于推广和使用。
文档编号H04L12/883GK103095595SQ20121059357
公开日2013年5月8日 申请日期2012年12月30日 优先权日2012年12月30日
发明者张建辉, 叶荻秋, 卜佑军, 李玉峰, 马海龙, 奚东志 申请人:大连环宇移动科技有限公司, 中国人民解放军信息工程大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1