[发明专利]一种并行存储高速网络流量的快速定位方法有效
申请号: | 201110059203.4 | 申请日: | 2011-03-11 |
公开(公告)号: | CN102130795A | 公开(公告)日: | 2011-07-20 |
发明(设计)人: | 陶敬;褚伟波;管晓宏;李卫;王争;陈明旭;范曾;韩婷;冯振兴 | 申请(专利权)人: | 西安交通大学 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L12/56 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 汪人和 |
地址: | 710049 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并行 存储 高速 网络流量 快速 定位 方法 | ||
技术领域
本发明涉及一种多队列并行存储高速网络流量的快速定位方法,特别涉及一种利用每个队列内少数数据包的局部索引来建立全局索引,并利用这些全局索引来快速定位指定时刻或指定数据包序号开始的流量在每个队列中流量的起始位置的方法。
背景技术
高速网络流量的存储和检索是大规模网络流量管理中的关键技术,高效的流量检索与定位技术可大大提升流量的管理效率,在各类涉及高速网络流量处理的产品与系统中具有巨大的应用价值。
为了保证流量存储时的性能,当前针对高速网络流量多采用多队列并行存储的方法:流量捕获系统在捕获流量时将数据报文按照哈希算法放入不同的队列中,每个队列的流量实时地存入磁盘阵列等高速存储设备。在流量捕获记录时,除了记录数据报文本身,通常还需要记录数据包到达的时间戳。
在对捕获的高速网络流量进行检索时,通常需要按照流量的起始时间或者起始数据包序号来指定目标流量的起始点。由于流量在捕获时按照多个队列分别进行存储,在确定目标流量的起始点时就需要在每个队列的流量中找到对应的起始点。根据流量的开始时间确定每个队列中对应流量的起始位置,需要在每个队列的流量中按照数据包的时间戳顺序进行查找;同样,根据流量起始的数据包序号来确定目标流量的起始位置,不仅需要在每个队列的流量中按照数据包到达的先后次序进行顺序查找,同时还要根据数据包的时间戳来比较不同队列的数据包达到的先后次序,从而决定每个队列中的数据包在整个流量中的序号。无论是根据流量的起始时间还是根据起始数据包序号来确定目标流量的起始点,均需要在每个队列的流量中进行顺序查找。由于捕获的高速网络流量中每个队列存储的数据包数目都比较大,队列内的顺序查找将严重影响到流量检索时确定目标流量起始点的效率。因此迫切需要一种更为高效的多队列并行存储网络流量的定位方法。
发明内容
本发明提供了一种多队列并行存储网络流量的快速定位方法,通过在流量捕获时为每个队列存储的流量中的少数数据包建立局部索引,并在流量捕获结束后根据这些队列中的局部索引来建立全局索引,可有效减少建立全局索引时的数据包的查找和比较开销;同时,在为捕获的流量建立全局索引后,根据这些全局索引来直接定位目标流量所在的数据块,可以到达有效减少流量定位时数据包的查找开销,从而提高流量的定位效率的目的。
为达到以上目的,本发明是采取如下技术方案予以实现的:
一种多队列并行存储网络流量的快速定位方法,用于在流量检索时对指定时刻或指定数据包序号开始的流量进行快速定位,其特征在于,该方法包括下述步骤:
第一步,流量捕获系统在流量捕获时将数据报文按照哈希算法放入不同的队列中,每个队列的流量实时地存入磁盘阵列等高速存储设备;流量捕获系统在捕获流量的同时将每个队列的流量分成固定数据包数目的数据块,并记录这些数据块开始的第一个数据包在队列对应流量中的局部索引;
第二步,流量捕获结束后,为每个队列的局部索引建立其在总流量中对应的全局索引,具体包括如下步骤:
(1)设置每个队列当前处理的索引为第一个局部索引;设置每个队列当前查找的数据包为当前处理索引对应的数据包;
(2)比较所有队列当前处理的局部索引的时间戳,取时间戳最小的局部索引为本次要处理的索引,时间戳最小的局部索引所在队列为当前处理队列;
(3)将当前处理队列的当前查找的数据包设置为该队列当前处理的索引对应的数据包;将当前处理队列的当前查找数据包与本队列中第一个数据包的偏移数据包数设置为该队列当前处理的索引对应的数据包在本队列中的数据包序号值减去1;
(4)针对当前处理队列以外的其他每一个队列,从队列当前查找的数据包开始顺序往后查找,直到当前查找的数据包的时间戳大于本次要处理的索引对应的数据包的时间戳为止;每往后查看一个数据包,则将当前查找的数据包与所在队列第一个数据包的偏移数据包数加1;
(5)将本次要处理的索引对应的数据包在总流量中的序号设置为所有队列当前查找的数据包与所在队列中第一个数据包的偏移数据包数之和再加1;
(6)将当前处理队列的当前处理索引设置为该队列的下一个局部索引;
(7)依次重复过程(2),(3),(4),(5),(6),直到得到所有队列中的局部索引对应的数据包在总流量中的数据包序号为止;
第三步,根据流量开始的时间或数据包序号,依据建立的全局索引快速定位目标流量所在队列开始位置;
若根据流量的起始时间来定位每个队列流量的开始位置,则包括如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110059203.4/2.html,转载请声明来源钻瓜专利网。