发明名称 一种并行存储高速网络流量的快速定位方法
摘要 本发明公开了一种多队列并行存储高速网络流量的快速定位方法,包括:1)网络流量分成多个队列实时存入磁盘阵列等存储设备中,为每个队列存储的流量中的少许数据包建立局部索引;2)在流量捕获结束后根据每个队列局部索引快速简历全局索引;3)根据流量开始的时间或数据包序号,依据建立的全局索引快速定位目标流量所在队列开始位置。本发明用于在流量检索时对指定时刻或指定数据包序号开始的流量进行快速定位,其方法实现简单,可大大减少为这些队列中的数据包建立全局索引的开销;而在流量检索时,通过在每个队列的流量中建立的全局索引来直接定位目标流量所在的数据块,可以有效提高并行存储网络流量的定位效率。
申请公布号 CN102130795A 申请公布日期 2011.07.20
申请号 CN201110059203.4 申请日期 2011.03.11
申请人 西安交通大学 发明人 陶敬;褚伟波;管晓宏;李卫;王争;陈明旭;范曾;韩婷;冯振兴
分类号 H04L12/26(2006.01)I;H04L12/56(2006.01)I 主分类号 H04L12/26(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 汪人和
主权项 一种多队列并行存储高速网络流量的快速定位方法,用于在流量检索时对指定时刻或指定序号的数据包开始的流量进行快速定位,其特征在于,包括下述步骤:第一步,流量捕获系统在流量捕获时将数据报文按照哈希算法放入不同的队列中,每个队列的流量实时地存入磁盘阵列高速存储设备;流量捕获系统在捕获流量的同时将每个队列的流量分成固定数据包数目的数据块,并记录这些数据块开始的第一个数据包在队列对应流量中的局部索引;第二步,流量捕获结束后,为每个队列的局部索引建立其在总流量中对应的全局索引,具体包括如下步骤:(1)设置每个队列当前处理的索引为第一个局部索引;设置每个队列当前查找的数据包为当前处理索引对应的数据包;(2)比较所有队列当前处理的局部索引的时间戳,取时间戳最小的局部索引为本次要处理的索引,时间戳最小的局部索引所在队列为当前处理队列;(3)将当前处理队列的当前查找的数据包设置为该队列当前处理的索引对应的数据包;将当前处理队列的当前查找数据包与本队列中第一个数据包的偏移数据包数设置为该队列当前处理的索引对应的数据包在本队列中的数据包序号值减去1;(4)针对当前处理队列以外的其他每一个队列,从队列当前查找的数据包开始顺序往后查找,直到当前查找的数据包的时间戳大于本次要处理的索引对应的数据包的时间戳为止;每往后查看一个数据包,则将当前查找的数据包与所在队列第一个数据包的偏移数据包数加1;(5)将本次要处理的索引对应的数据包在总流量中的序号设置为所有队列当前查找的数据包与所在队列中第一个数据包的偏移数据包数之和再加1;(6)将当前处理队列的当前处理索引设置为该队列的下一个局部索引;(7)依次重复过程(2),(3),(4),(5),(6),直到得到所有队列中的局部索引对应的数据包在总流量中的数据包序号为止;第三步,根据流量开始的时间或数据包序号,依据建立的全局索引快速定位目标流量所在队列开始位置;若根据流量的起始时间来定位每个队列流量的开始位置,则包括如下步骤:(1)查看每个队列中的全局索引,并根据时间戳来确定目标流量的开始位置在每个队列中的数据块;(2)从每个队列确定的数据块的第一个数据包开始顺序往后查找,直到找到数据包的时间戳大于或等于目标流量的起始时间;所得到的数据包即为队列中流量的开始位置;若根据流量的起始数据包序号来定位每个队列流量的开始位置,则包括如下步骤:(1)查看每个队列中的全局索引并根据对应的数据包在总流量中的序号来确定目标流量开始位置在每个队列的数据块;(2)比较每个队列所确定的数据块的第一个数据包在总流量中的序号,取最小的序号为本次处理开始的数据包序号;(3)设置每个队列当前查找的数据包为队列所确定的数据块的第一个数据包;设置目前已经处理的数据包数为0;(4)比较每个队列当前查找数据包的时间戳,将时间戳最小的数据包所在队列设为当前处理队列;而该数据包在总流量中的序号为本次处理开始的数据包序号加上目前已经处理的数据包数目;(5)将当前处理队列中当前查找的数据包设置为当前查找数据包之后的一个数据包;同时将目前已经处理的数据包数目加1;(6)重复步骤(4)和(5),直到每个队列当前查找的数据包在总流量中的序号大于或等于目标流量的起始数据包序号;所得到的数据包即为目标流量在每个队列流量的开始位置。
地址 710049 陕西省西安市咸宁西路28号