亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種并行存儲高速網(wǎng)絡流量的快速定位方法

文檔序號:7606881閱讀:178來源:國知局
專利名稱:一種并行存儲高速網(wǎng)絡流量的快速定位方法
技術領域
本發(fā)明涉及一種多隊列并行存儲高速網(wǎng)絡流量的快速定位方法,特別涉及一種利 用每個隊列內(nèi)少數(shù)數(shù)據(jù)包的局部索引來建立全局索引,并利用這些全局索引來快速定位指 定時刻或指定數(shù)據(jù)包序號開始的流量在每個隊列中流量的起始位置的方法。
背景技術
高速網(wǎng)絡流量的存儲和檢索是大規(guī)模網(wǎng)絡流量管理中的關鍵技術,高效的流量檢 索與定位技術可大大提升流量的管理效率,在各類涉及高速網(wǎng)絡流量處理的產(chǎn)品與系統(tǒng)中 具有巨大的應用價值。為了保證流量存儲時的性能,當前針對高速網(wǎng)絡流量多采用多隊列并行存儲的方 法流量捕獲系統(tǒng)在捕獲流量時將數(shù)據(jù)報文按照哈希算法放入不同的隊列中,每個隊列的 流量實時地存入磁盤陣列等高速存儲設備。在流量捕獲記錄時,除了記錄數(shù)據(jù)報文本身,通 常還需要記錄數(shù)據(jù)包到達的時間戳。在對捕獲的高速網(wǎng)絡流量進行檢索時,通常需要按照流量的起始時間或者起始數(shù) 據(jù)包序號來指定目標流量的起始點。由于流量在捕獲時按照多個隊列分別進行存儲,在確 定目標流量的起始點時就需要在每個隊列的流量中找到對應的起始點。根據(jù)流量的開始時 間確定每個隊列中對應流量的起始位置,需要在每個隊列的流量中按照數(shù)據(jù)包的時間戳順 序進行查找;同樣,根據(jù)流量起始的數(shù)據(jù)包序號來確定目標流量的起始位置,不僅需要在每 個隊列的流量中按照數(shù)據(jù)包到達的先后次序進行順序查找,同時還要根據(jù)數(shù)據(jù)包的時間戳 來比較不同隊列的數(shù)據(jù)包達到的先后次序,從而決定每個隊列中的數(shù)據(jù)包在整個流量中的 序號。無論是根據(jù)流量的起始時間還是根據(jù)起始數(shù)據(jù)包序號來確定目標流量的起始點,均 需要在每個隊列的流量中進行順序查找。由于捕獲的高速網(wǎng)絡流量中每個隊列存儲的數(shù) 據(jù)包數(shù)目都比較大,隊列內(nèi)的順序查找將嚴重影響到流量檢索時確定目標流量起始點的效 率。因此迫切需要一種更為高效的多隊列并行存儲網(wǎng)絡流量的定位方法。

發(fā)明內(nèi)容
本發(fā)明提供了一種多隊列并行存儲網(wǎng)絡流量的快速定位方法,通過在流量捕獲時 為每個隊列存儲的流量中的少數(shù)數(shù)據(jù)包建立局部索引,并在流量捕獲結束后根據(jù)這些隊列 中的局部索引來建立全局索引,可有效減少建立全局索引時的數(shù)據(jù)包的查找和比較開銷; 同時,在為捕獲的流量建立全局索引后,根據(jù)這些全局索引來直接定位目標流量所在的數(shù) 據(jù)塊,可以到達有效減少流量定位時數(shù)據(jù)包的查找開銷,從而提高流量的定位效率的目的。為達到以上目的,本發(fā)明是采取如下技術方案予以實現(xiàn)的—種多隊列并行存儲網(wǎng)絡流量的快速定位方法,用于在流量檢索時對指定時刻或 指定數(shù)據(jù)包序號開始的流量進行快速定位,其特征在于,該方法包括下述步驟第一步,流量捕獲系統(tǒng)在流量捕獲時將數(shù)據(jù)報文按照哈希算法放入不同的隊列 中,每個隊列的流量實時地存入磁盤陣列等高速存儲設備;流量捕獲系統(tǒng)在捕獲流量的同時將每個隊列的流量分成固定數(shù)據(jù)包數(shù)目的數(shù)據(jù)塊,并記錄這些數(shù)據(jù)塊開始的第一個數(shù)據(jù) 包在隊列對應流量中的局部索引;第二步,流量捕獲結束后,為每個隊列的局部索引建立其在總流量中對應的全局 索引,具體包括如下步驟(1)設置每個隊列當前處理的索引為第一個局部索引;設置每個隊列當前查找的 數(shù)據(jù)包為當前處理索引對應的數(shù)據(jù)包;(2)比較所有隊列當前處理的局部索引的時間戳,取時間戳最小的局部索引為本 次要處理的索引,時間戳最小的局部索引所在隊列為當前處理隊列;

(3)將當前處理隊列的當前查找的數(shù)據(jù)包設置為該隊列當前處理的索引對應的數(shù) 據(jù)包;將當前處理隊列的當前查找數(shù)據(jù)包與本隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為 該隊列當前處理的索引對應的數(shù)據(jù)包在本隊列中的數(shù)據(jù)包序號值減去1 ;(4)針對當前處理隊列以外的其他每一個隊列,從隊列當前查找的數(shù)據(jù)包開始順 序往后查找,直到當前查找的數(shù)據(jù)包的時間戳大于本次要處理的索引對應的數(shù)據(jù)包的時間 戳為止;每往后查看一個數(shù)據(jù)包,則將當前查找的數(shù)據(jù)包與所在隊列第一個數(shù)據(jù)包的偏移 數(shù)據(jù)包數(shù)加1 ;(5)將本次要處理的索引對應的數(shù)據(jù)包在總流量中的序號設置為所有隊列當前查 找的數(shù)據(jù)包與所在隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)之和再加1 ;(6)將當前處理隊列的當前處理索引設置為該隊列的下一個局部索引;(7)依次重復過程(2),(3),(4),(5),(6),直到得到所有隊列中的局部索引對應 的數(shù)據(jù)包在總流量中的數(shù)據(jù)包序號為止;第三步,根據(jù)流量開始的時間或數(shù)據(jù)包序號,依據(jù)建立的全局索引快速定位目標 流量所在隊列開始位置;若根據(jù)流量的起始時間來定位每個隊列流量的開始位置,則包括如下步驟(1)查看每個隊列中的全局索引,并根據(jù)時間戳來確定目標流量的開始位置在每 個隊列中的數(shù)據(jù)塊;(2)從每個隊列確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包開始順序往后查找,直到找到數(shù)據(jù) 包的時間戳大于或等于目標流量的起始時間;所得到的數(shù)據(jù)包即為隊列中流量的開始位 置;若根據(jù)流量的起始數(shù)據(jù)包序號來定位每個隊列流量的開始位置,則包括如下步 驟(1)查看每個隊列中的全局索引并根據(jù)對應的數(shù)據(jù)包在總流量中的序號來確定目 標流量開始位置在每個隊列的數(shù)據(jù)塊;(2)比較每個隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包在總流量中的序號,取最小的 序號為本次處理開始的數(shù)據(jù)包序號;(3)設置每個隊列當前查找的數(shù)據(jù)包為隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包;設 置目前已經(jīng)處理的數(shù)據(jù)包數(shù)為0 ;(4)比較每個隊列當前查找數(shù)據(jù)包的時間戳,將時間戳最小的數(shù)據(jù)包所在隊列設 為當前處理隊列;而該數(shù)據(jù)包在總流量中的序號為本次處理開始的數(shù)據(jù)包序號加上目前已 經(jīng)處理的數(shù)據(jù)包數(shù)目;
(5)將當前處理隊列中當前查找的數(shù)據(jù)包設置為當前查找數(shù)據(jù)包之后的一個數(shù)據(jù) 包;同時將目前已經(jīng)處理的數(shù)據(jù)包數(shù)目加1 ;(6)重復步驟⑷和(5),直到每個隊列當前查找的數(shù)據(jù)包在總流量中的序號大于 或等于目標流量的起始數(shù)據(jù)包序號;所得到的數(shù)據(jù)包即為目標流量在每個隊列流量的開始 位置;上述方法中,第一步中所述每個隊列的流量是指每個隊列到達的數(shù)據(jù)包以及數(shù)據(jù) 包到達的時間戳。第一步中所述數(shù)據(jù)塊開始的第一個數(shù)據(jù)包在隊列中的局部索引是指該數(shù)據(jù)塊的 第一個數(shù)據(jù)包到達的時間戳和該數(shù)據(jù)包在所在隊列中的數(shù)據(jù)包序號。第二步中所述隊列中局部索引在總流量中對應的全局索引是指這些隊列中局部 索引點的數(shù)據(jù)包在總流量中的數(shù)據(jù)包序號和對應數(shù)據(jù)包到達的時間戳;其中,全局索引中 數(shù)據(jù)包到達的時間戳即為局部索引中數(shù)據(jù)包達到的時間戳。本發(fā)明的一種多隊列并行存儲網(wǎng)絡流量的快速定位方法具有以下優(yōu)點及效果1.根據(jù)局部索引建立全局索引時,當確定了本次要處理的局部索引后可直接將該 索引所在隊列的當前查找數(shù)據(jù)包設置為該索引對應的數(shù)據(jù)包,從而可大大減少為局部索引 對應的數(shù)據(jù)包建立全局索引時的數(shù)據(jù)包查找和比較開銷。2.通過流量中建立的全局索引來直接定位目標流量在每個隊列中所在的數(shù)據(jù)塊, 可有效減少流量定位時的數(shù)據(jù)包查找和比較開銷。


圖1是本發(fā)明的并行存儲網(wǎng)絡流量快速定位方法示意圖。圖2是本發(fā)明的帶有局部索引的并行存儲流量示意圖。圖3是本發(fā)明的已經(jīng)建立全局索引的并行存儲流量示意圖。
具體實施例方式如圖1所示,該多隊列并行存儲網(wǎng)絡流量的快速定位方法,用于在流量檢索時對 指定時刻或指定數(shù)據(jù)包序號開始的流量進行快速定位,該方法包括下述步驟 第一步,流量捕獲系統(tǒng)在流量捕獲時將數(shù)據(jù)報文按照哈希算法放入不同的隊列 中,每個隊列的流量實時地存入磁盤陣列等高速存儲設備;流量捕獲系統(tǒng)在捕獲流量的同 時將每個隊列的流量分成固定數(shù)據(jù)包數(shù)目的數(shù)據(jù)塊,并記錄這些數(shù)據(jù)塊開始的第一個數(shù)據(jù) 包在隊列對應流量中的局部索引;第二步,流量捕獲結束后,為每個隊列的局部索引建立其在總流量中對應的全局 索引,具體包括如下步驟(1)設置每個隊列當前處理的索引為第一個局部索引;設置每個隊列當前查找的 數(shù)據(jù)包為當前處理索引對應的數(shù)據(jù)包;(2)比較所有隊列當前處理的局部索引的時間戳,取時間戳最小的局部索引為本 次要處理的索引,時間戳最小的局部索引所在隊列為當前處理隊列;(3)將當前處理隊列的當前查找的數(shù)據(jù)包設置為該隊列當前處理的索引對應的數(shù) 據(jù)包;將當前處理隊列的當前查找數(shù)據(jù)包與本隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為該隊列當前處理的索引對應的數(shù)據(jù)包在本隊列中的數(shù)據(jù)包序號值減去1 ;(4)針對當前處理隊列以外的其他每一個隊列,從隊列當前查找的數(shù)據(jù)包開始順 序往后查找,直到當前查找的數(shù)據(jù)包的時間戳大于本次要處理的索引對應的數(shù)據(jù)包的時間 戳為止;每往后查看一個數(shù)據(jù)包,則將當前查找的數(shù)據(jù)包與所在隊列第一個數(shù)據(jù)包的偏移 數(shù)據(jù)包數(shù)加1 ;(5)將本次要處理的索引對應的數(shù)據(jù)包在總流量中的序號設置為所有隊列當前查 找的數(shù)據(jù)包與所在隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)之和再加1 ;

(6)將當前處理隊列的當前處理索引設置為該隊列的下一個局部索引;(7)依次重復過程(2),(3),(4),(5),(6),直到得到所有隊列中的局部索引對應 的數(shù)據(jù)包在總流量中的數(shù)據(jù)包序號為止;第三步,根據(jù)流量開始的時間或數(shù)據(jù)包序號,依據(jù)建立的全局索引快速定位目標 流量所在隊列開始位置;若根據(jù)流量的起始時間來定位每個隊列流量的開始位置,則包括如下步驟(1)查看每個隊列中的全局索引,并根據(jù)時間戳來確定目標流量的開始位置在每 個隊列中的數(shù)據(jù)塊;(2)從每個隊列確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包開始順序往后查找,直到找到數(shù)據(jù) 包的時間戳大于或等于目標流量的起始時間;所得到的數(shù)據(jù)包即為隊列中流量的開始位 置;若根據(jù)流量的起始數(shù)據(jù)包序號來定位每個隊列流量的開始位置,則包括如下步 驟(1)查看每個隊列中的全局索引并根據(jù)對應的數(shù)據(jù)包在總流量中的序號來確定目 標流量開始位置在每個隊列的數(shù)據(jù)塊;(2)比較每個隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包在總流量中的序號,取最小的 序號為本次處理開始的數(shù)據(jù)包序號;(3)設置每個隊列當前查找的數(shù)據(jù)包為隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包;設 置目前已經(jīng)處理的數(shù)據(jù)包數(shù)為0 ;(4)比較每個隊列當前查找數(shù)據(jù)包的時間戳,將時間戳最小的數(shù)據(jù)包所在隊列設 為當前處理隊列;而該數(shù)據(jù)包在總流量中的序號為本次處理開始的數(shù)據(jù)包序號加上目前已 經(jīng)處理的數(shù)據(jù)包數(shù)目;(5)將當前處理隊列中當前查找的數(shù)據(jù)包設置為當前查找數(shù)據(jù)包之后的一個數(shù)據(jù) 包;同時將目前已經(jīng)處理的數(shù)據(jù)包數(shù)目加1 ;(6)重復步驟⑷和(5),直到每個隊列當前查找的數(shù)據(jù)包在總流量中的序號大于 或等于目標流量的起始數(shù)據(jù)包序號;所得到的數(shù)據(jù)包即為目標流量在每個隊列流量的開始 位置。上述方法中,第一步中所述每個隊列的流量是指每個隊列到達的數(shù)據(jù)包以及數(shù)據(jù) 包到達的時間戳。第一步中所述數(shù)據(jù)塊開始的第一個數(shù)據(jù)包在隊列中的局部索引是指該數(shù)據(jù)塊的 第一個數(shù)據(jù)包到達的時間戳和該數(shù)據(jù)包在所在隊列中的數(shù)據(jù)包序號。第二步中所述隊列中局部索引在總流量中對應的全局索引是指這些隊列中局部索引點的數(shù)據(jù)包在總流量中的數(shù)據(jù)包序號和對應數(shù)據(jù)包到達的時間戳;其中,全局索引中 數(shù)據(jù)包到達的時間戳即為局部索引中數(shù)據(jù)包達到的時間戳。以下結合附圖及實施例對本發(fā)明作進一步的詳細描述。

帶有局部索引的并行存儲流量如圖2所示,捕獲的高速網(wǎng)絡流量被分成3個隊列進行存儲,每個隊列按照數(shù)據(jù)包 達到的先后次序分別記錄數(shù)據(jù)包到達的時間戳和數(shù)據(jù)報文本身。為方便后續(xù)闡述,此處每 個隊列的流量在存儲時按照固定間隔3個數(shù)據(jù)包來為隊列中的數(shù)據(jù)報文建立局部索引。局 部索引除了數(shù)據(jù)包達到的時間戳以外,還包括該數(shù)據(jù)包在本隊列中的序號。在圖2中,將建 立了局部索引的數(shù)據(jù)包用(隊列中的序號,時間戳)2元組表示,而其余的數(shù)據(jù)包只用(時 間戳)1元組表示。并行存儲流量中全局索引的建立過程下面用一個帶有局部索引的并行存儲流量為例,結合圖2對本發(fā)明的并行存儲流 量建立全局索引的過程作進一步說明。以圖2的并行存儲流量為例,建立全局索引的過程如下(1)開始時,設置3個隊列當前處理的索引為每個隊列的第1個局部索引;設置3 個隊列當前查找的數(shù)據(jù)包為當前處理索引對應的數(shù)據(jù)包,也即每個隊列的第1個數(shù)據(jù)包;此時,第1個隊列當前處理索引為(1,1. 1);第2個隊列當前處理索引為(1,4.9); 第3個隊列當前處理索引為(1,6. 5);(2)比較3個隊列當前處理的局部索引的時間戳,取時間戳最小的局部索引為本 次要處理的索引,時間戳最小的局部索引所在隊列為當前處理隊列;此時,本次要處理的索引為第1個隊列的第1個索引(1,1. 1),當前處理隊列為第 1個隊列;(3)將當前處理隊列的當前查找的數(shù)據(jù)包設置為該隊列當前處理索引對應的數(shù)據(jù) 包;將當前處理隊列的當前查找數(shù)據(jù)包與所在隊列第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為該 隊列當前處理索引對應的數(shù)據(jù)包在本隊列中的數(shù)據(jù)包序號值減去1 ;此時,當前處理隊列的當前查找的數(shù)據(jù)包即為第1個隊列的第1個數(shù)據(jù)包(1, 1.1),而該數(shù)據(jù)包與本隊列中第1個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)為0 ;(4)針對當前處理隊列以外的其他每一個隊列,從隊列當前查找的數(shù)據(jù)包開始順 序往后查找,直到當前查找的數(shù)據(jù)包的時間戳大于本次要處理的索引對應的數(shù)據(jù)包的時間 戳為止;每往后查看一個數(shù)據(jù)包,則將當前查找的數(shù)據(jù)包與所在隊列中第一個數(shù)據(jù)包的偏 移數(shù)據(jù)包數(shù)加1 ;此時,由于第2個隊列和第3個隊列當前查找的數(shù)據(jù)包的時間戳均大于本次要處 理的索引對應的數(shù)據(jù)包的時間戳,因此,第2個隊列和第3個隊列當前查找的數(shù)據(jù)包保持為 所在隊列的第一個數(shù)據(jù)包不變;同時,第2個隊列和第3個隊列當前查找的數(shù)據(jù)包與所在隊 列中第1個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)也都保持0不變;(5)將本次要處理的索引對應的數(shù)據(jù)包在總流量中的序號設置為所有隊列當前查 找的數(shù)據(jù)包與所在隊列中第1個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)之和再加1 ;此時,也即將第1個隊列的第1個數(shù)據(jù)包在總流量中的序號設置為(0+0+0)+1 = 1 ;
(6)將當前處理隊列的當前處理索引設置為該隊列的下一個局部索引;此時,也即將第1個隊列的當前處理索引設置為該隊列的第2個索引(4,4.6);而 該隊列的當前處理數(shù)據(jù)包保持不變,也即為(1,1. 1);(7)重復過程(2),得到本次要處理的索引為第1個隊列的第2個索引(4,4. 6),當 前處理隊列為第1個隊列;(8)重復過程(3),得到當前處理隊列的當前查找的數(shù)據(jù)包即為第1個隊列的第4 個數(shù)據(jù)包(4,4. 6),而該數(shù)據(jù)包與本隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為4-1 = 3;
(9)重復過程(4),得到第2個隊列當前查找的數(shù)據(jù)包為該隊列的第1個數(shù)據(jù)包, 第3個隊列當前查找的數(shù)據(jù)包為該隊列的第1個數(shù)據(jù)包;第2個隊列當前查找的數(shù)據(jù)包與 該隊列的第一個數(shù)據(jù)包偏移數(shù)據(jù)包數(shù)為0,第3個隊列當前查找的數(shù)據(jù)包與該隊列的第一 個數(shù)據(jù)包偏移數(shù)據(jù)包數(shù)為0 ;(10)重復過程(5),得到本次要處理的索引對應的數(shù)據(jù)包即第1個隊列的第5個 數(shù)據(jù)包在總流量中的序號為(0+0+3)+1 = 4 ;(11)重復過程(6),將第1個隊列的當前處理索引設置為該隊列的下一個索引,也 即該隊列的第3個索引(7,17. 2);而該隊列的當前處理數(shù)據(jù)包保持不變,仍為(4,4.6);(12)重復過程(2),得到本次要處理的索引為第2個隊列的第1個索引(1,4.9), 當前處理隊列為第2個隊列;(13)重復過程(3),得到當前處理隊列的當前查找的數(shù)據(jù)包即為第2個隊列的第 1個數(shù)據(jù)包,而該數(shù)據(jù)包與本隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為1-1 = 0;(14)重復過程(4),得到第1個隊列當前查找的數(shù)據(jù)包為該隊列的第5個數(shù)據(jù)包 (13.0),第3個隊列當前查找的數(shù)據(jù)包為該隊列的第1個數(shù)據(jù)包(1,6.5);第1個隊列當前 查找的數(shù)據(jù)包與該隊列的第一個數(shù)據(jù)包偏移數(shù)據(jù)包數(shù)為4,第3個隊列當前查找的數(shù)據(jù)包 與該隊列的第一個數(shù)據(jù)包偏移數(shù)據(jù)包數(shù)為0 ;(15)重復過程(5),得到本次要處理的索引對應的數(shù)據(jù)包即第2個隊列的第1個 數(shù)據(jù)包在總流量中的序號為(0+0+4)+1 = 5 ;(16)重復過程(6),將第2個隊列的當前處理索引設置為該隊列的下一個索引,也 即該隊列的第2個索引(4,12.0);而該隊列的當前處理數(shù)據(jù)包保持不變,仍為(1,4.9);(17)重復過程(2),得到本次要處理的索引為第3個隊列的第1個索引(1,6.5), 當前處理隊列為第3個隊列;(18)重復過程(3),得到當前處理隊列的當前查找的數(shù)據(jù)包即為第3個隊列的第 1個數(shù)據(jù)包,而該數(shù)據(jù)包與本隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為1-1 = 0;(19)重復過程(4),得到第1個隊列當前查找的數(shù)據(jù)包為該隊列的第5個數(shù)據(jù)包 (13.0),第2個隊列當前查找的數(shù)據(jù)包為該隊列的第2個數(shù)據(jù)包(7.3);第1個隊列當前查 找的數(shù)據(jù)包與該隊列的第一個數(shù)據(jù)包偏移數(shù)據(jù)包數(shù)為4,第2個隊列當前查找的數(shù)據(jù)包與 該隊列的第一個數(shù)據(jù)包偏移數(shù)據(jù)包數(shù)為1 ;(20)重復過程(5),得到本次要處理的索引對應的數(shù)據(jù)包即第3個隊列的第1個 數(shù)據(jù)包在總流量中的序號為(4+1+0)+1 = 6 ;(21)重復過程(6),將第3個隊列的當前處理索引設置為該隊列的下一個索引,也 即該隊列的第2個索引(4,11. 6);而該隊列的當前處理數(shù)據(jù)包保持不變,仍為(1,6.5);
(22)重復過程(2),(3),(4),(5),(6),直到為所有的隊列中的局部索引建立對應 的全局索引。圖3是建立了全局索引后的并行存儲流量示意圖,其中, 全局索引對應的數(shù)據(jù)包 用(總流量中的序號,隊列中的序號,時間戳)3元組表示。根據(jù)流量的起始時間定位流量 的過程下面用一個帶有全局索引的并行存儲流量為例,結合圖3對本發(fā)明的根據(jù)流量開 始時間來定位流量的過程作進一步說明。以圖3的并行存儲流量為例,根據(jù)流量開始時間定位流量的過程如下(1)根據(jù)流量開始的時間,通過查找每個隊列的全局索引得到目標流量起始位置 在每個隊列中對應的數(shù)據(jù)塊。假設目標流量開始時間是8,則第1個隊列中目標流量起始位 置所在數(shù)據(jù)塊是全局索引(4,4,4.6)和(17,7,17.2)所在的數(shù)據(jù)塊,第2個隊列中目標流 量起始位置所在數(shù)據(jù)塊是全局索引(5,1,4.9)和(12,4,12.0)所在的數(shù)據(jù)塊,第3個隊列 中目標流量起始位置所在數(shù)據(jù)塊是全局索引(6,1,6.5)和(11,4,11.6)所在的數(shù)據(jù)塊。(2)從每個隊列確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包開始順序往后查找,直到找到數(shù)據(jù) 包的時間戳大于或等于目標流量的起始時間,所得到的數(shù)據(jù)包即為隊列中目標流量的開始 位置;在本例中,第1個隊列目標流量的起始位置是該隊列的第5個數(shù)據(jù)包(13. 0),第2個 隊列目標流量的起始位置是該隊列的第3個數(shù)據(jù)包(10. 0),第3個隊列目標流量的起始位 置是該隊列的第2個數(shù)據(jù)包(8. 3)。根據(jù)流量的起始數(shù)據(jù)包序號定位流量的過程下面用一個帶有全局索引的并行存儲流量為例,結合圖3對本發(fā)明的根據(jù)流量開 始的數(shù)據(jù)包序號來定位流量的過程作進一步說明。以圖3的并行存儲流量為例,根據(jù)流量開始的數(shù)據(jù)包序號定位流量的過程如下(1)根據(jù)流量開始的數(shù)據(jù)包序號,通過查找每個隊列的全局索引得到目標流量起 始位置在每個隊列中對應的數(shù)據(jù)塊。假設目標流量開始的數(shù)據(jù)包序號是9,則第1個隊列中 目標流量起始數(shù)據(jù)包所在的數(shù)據(jù)塊是全局索引(4,4,4.6)和(17,7,17.2)所在數(shù)據(jù)塊,第 2個隊列中目標流量起始數(shù)據(jù)包所在的數(shù)據(jù)塊是全局索引(5,1,4.9)和(12,4,12.0)所在 數(shù)據(jù)塊,第3個隊列中目標流量起始數(shù)據(jù)包所在的數(shù)據(jù)塊是全局索引(6,1,6.5)和(11,4, 11.6)所在數(shù)據(jù)塊。(2)比較每個隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包在總流量中的序號,取最小的 序號為本次處理開始的數(shù)據(jù)包序號;在本例中,本次處理開始的數(shù)據(jù)包序號即為全局索引(4,4,4.6)對應的數(shù)據(jù)包的 序號4。(3)設置每個隊列當前查找的數(shù)據(jù)包為隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包,設 置目前已經(jīng)處理的數(shù)據(jù)包數(shù)為0 ;在本例中,第1個隊列的當前查找數(shù)據(jù)包為該隊列的第4個數(shù)據(jù)包,第2隊列的當 前查找數(shù)據(jù)包為該隊列的第1個數(shù)據(jù)包,第3隊列的當前查找數(shù)據(jù)包為該隊列的第1個數(shù) 據(jù)包。(4)比較每個隊列當前查找數(shù)據(jù)包的時間戳,將時間戳最小的數(shù)據(jù)包所在隊列設 為當前處理隊列;而該數(shù)據(jù)包在總流量中的序號為本次處理開始的數(shù)據(jù)包序號加上目前已經(jīng)處理的數(shù)據(jù)包數(shù)目;在本例中,當前處理隊列即為全局索引(4,4,4.6)所在的第1隊列,而該數(shù)據(jù)包對 應的全局序號為4+0 = 4。(5)將當前處理隊列中當前查找的數(shù)據(jù)包設置為當前查找數(shù)據(jù)包之后的下一個數(shù) 據(jù)包;同時將目前已經(jīng)處理的數(shù)據(jù)包數(shù)目加1 ;

在本例中,第1隊列的當前查找數(shù)據(jù)包變?yōu)樵撽犃械牡?個數(shù)據(jù)包(13.0),目前已 經(jīng)處理的數(shù)據(jù)包數(shù)目變?yōu)? ;(6)重復過程(4),得到當前處理隊列為第2個隊列,而該隊列當前查找數(shù)據(jù)包即 第1個數(shù)據(jù)包(5,1,4.9)的序號為4+1 = 5 ;(7)重復過程(5),將當前處理隊列也即第2個隊列的當前查找數(shù)據(jù)包設置為第2 個數(shù)據(jù)包(7. 3),同時將目前處理的數(shù)據(jù)包數(shù)目加1變?yōu)? ;(8)重復過程(4)和(5),直到每個隊列的當前查找數(shù)據(jù)包的全局序號大于或等 于目標流量的開始序號,此時每個隊列的當前查找數(shù)據(jù)包即為本隊列中目標流量的開始位 置。在本例中,得到第1隊列的當前查找數(shù)據(jù)包為該隊列的第5個數(shù)據(jù)包(13.0),其全局 序號為13 ;第2個隊列的當前查找數(shù)據(jù)包為該隊列的第3個數(shù)據(jù)包(10. 0),其全局序號為 10 ;第3個隊列的當前查找數(shù)據(jù)包為該隊列的第3個數(shù)據(jù)包(9. 2),其全局序號為9。
權利要求
1. 一種多隊列并行存儲高速網(wǎng)絡流量的快速定位方法,用于在流量檢索時對指定時刻 或指定序號的數(shù)據(jù)包開始的流量進行快速定位,其特征在于,包括下述步驟第一步,流量捕獲系統(tǒng)在流量捕獲時將數(shù)據(jù)報文按照哈希算法放入不同的隊列中,每 個隊列的流量實時地存入磁盤陣列高速存儲設備;流量捕獲系統(tǒng)在捕獲流量的同時將每個 隊列的流量分成固定數(shù)據(jù)包數(shù)目的數(shù)據(jù)塊,并記錄這些數(shù)據(jù)塊開始的第一個數(shù)據(jù)包在隊列 對應流量中的局部索引;第二步,流量捕獲結束后,為每個隊列的局部索引建立其在總流量中對應的全局索引, 具體包括如下步驟(1)設置每個隊列當前處理的索引為第一個局部索引;設置每個隊列當前查找的數(shù)據(jù) 包為當前處理索引對應的數(shù)據(jù)包;(2)比較所有隊列當前處理的局部索引的時間戳,取時間戳最小的局部索引為本次要 處理的索引,時間戳最小的局部索引所在隊列為當前處理隊列;(3)將當前處理隊列的當前查找的數(shù)據(jù)包設置為該隊列當前處理的索引對應的數(shù)據(jù) 包;將當前處理隊列的當前查找數(shù)據(jù)包與本隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)設置為該 隊列當前處理的索引對應的數(shù)據(jù)包在本隊列中的數(shù)據(jù)包序號值減去1 ;(4)針對當前處理隊列以外的其他每一個隊列,從隊列當前查找的數(shù)據(jù)包開始順序往 后查找,直到當前查找的數(shù)據(jù)包的時間戳大于本次要處理的索引對應的數(shù)據(jù)包的時間戳為 止;每往后查看一個數(shù)據(jù)包,則將當前查找的數(shù)據(jù)包與所在隊列第一個數(shù)據(jù)包的偏移數(shù)據(jù) 包數(shù)加1 ;(5)將本次要處理的索引對應的數(shù)據(jù)包在總流量中的序號設置為所有隊列當前查找的 數(shù)據(jù)包與所在隊列中第一個數(shù)據(jù)包的偏移數(shù)據(jù)包數(shù)之和再加1 ;(6)將當前處理隊列的當前處理索引設置為該隊列的下一個局部索引;(7)依次重復過程(2),(3),(4),(5),(6),直到得到所有隊列中的局部索引對應的數(shù) 據(jù)包在總流量中的數(shù)據(jù)包序號為止;第三步,根據(jù)流量開始的時間或數(shù)據(jù)包序號,依據(jù)建立的全局索引快速定位目標流量 所在隊列開始位置;若根據(jù)流量的起始時間來定位每個隊列流量的開始位置,則包括如下步驟(1)查看每個隊列中的全局索引,并根據(jù)時間戳來確定目標流量的開始位置在每個隊 列中的數(shù)據(jù)塊;(2)從每個隊列確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包開始順序往后查找,直到找到數(shù)據(jù)包的 時間戳大于或等于目標流量的起始時間;所得到的數(shù)據(jù)包即為隊列中流量的開始位置;若根據(jù)流量的起始數(shù)據(jù)包序號來定位每個隊列流量的開始位置,則包括如下步驟(1)查看每個隊列中的全局索引并根據(jù)對應的數(shù)據(jù)包在總流量中的序號來確定目標流 量開始位置在每個隊列的數(shù)據(jù)塊;(2)比較每個隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包在總流量中的序號,取最小的序號 為本次處理開始的數(shù)據(jù)包序號;(3)設置每個隊列當前查找的數(shù)據(jù)包為隊列所確定的數(shù)據(jù)塊的第一個數(shù)據(jù)包;設置目 前已經(jīng)處理的數(shù)據(jù)包數(shù)為0 ;(4)比較每個隊列當前查找數(shù)據(jù)包的時間戳,將時間戳最小的數(shù)據(jù)包所在隊列設為當前處理隊列;而該數(shù)據(jù)包在總流量中的序號為本次處理開始的數(shù)據(jù)包序號加上目前已經(jīng)處 理的數(shù)據(jù)包數(shù)目;(5)將當前處理隊列中當前查找的數(shù)據(jù)包設置為當前查找數(shù)據(jù)包之后的一個數(shù)據(jù)包; 同時將目前已經(jīng)處理的數(shù)據(jù)包數(shù)目加1 ;(6)重復步驟(4)和(5),直到每個隊列當前查找的數(shù)據(jù)包在總流量中的序號大于或 等于目標流量的起始數(shù)據(jù)包序號;所得到的數(shù)據(jù)包即為目標流量在每個隊列流量的開始位置。
2.根據(jù)權利要求1所述的一種多隊列并行存儲高速網(wǎng)絡流量的快速定位方法,其特征 在于,所述第一步中,每個隊列的流量是指每個隊列到達的數(shù)據(jù)包以及數(shù)據(jù)包到達的時間戳。
3.根據(jù)權利要求1所述的一種多隊列并行存儲高速網(wǎng)絡流量的快速定位方法,其特征 在于,所述第一步中,數(shù)據(jù)塊開始的第一個數(shù)據(jù)包在隊列中的局部索引是指該數(shù)據(jù)塊的第 一個數(shù)據(jù)包到達的時間戳和該數(shù)據(jù)包在所在隊列中的數(shù)據(jù)包序號。
4.根據(jù)權利要求1所述的一種多隊列并行存儲高速網(wǎng)絡流量的快速定位方法,其特征 在于,所述第二步中,隊列中局部索引在總流量中對應的全局索引是指這些隊列中局部索 引點的數(shù)據(jù)包在總流量中的數(shù)據(jù)包序號和對應數(shù)據(jù)包到達的時間戳;其中,全局索引中數(shù) 據(jù)包到達的時間戳即為局部索引中數(shù)據(jù)包達到的時間戳。
全文摘要
本發(fā)明公開了一種多隊列并行存儲高速網(wǎng)絡流量的快速定位方法,包括1)網(wǎng)絡流量分成多個隊列實時存入磁盤陣列等存儲設備中,為每個隊列存儲的流量中的少許數(shù)據(jù)包建立局部索引;2)在流量捕獲結束后根據(jù)每個隊列局部索引快速簡歷全局索引;3)根據(jù)流量開始的時間或數(shù)據(jù)包序號,依據(jù)建立的全局索引快速定位目標流量所在隊列開始位置。本發(fā)明用于在流量檢索時對指定時刻或指定數(shù)據(jù)包序號開始的流量進行快速定位,其方法實現(xiàn)簡單,可大大減少為這些隊列中的數(shù)據(jù)包建立全局索引的開銷;而在流量檢索時,通過在每個隊列的流量中建立的全局索引來直接定位目標流量所在的數(shù)據(jù)塊,可以有效提高并行存儲網(wǎng)絡流量的定位效率。
文檔編號H04L12/56GK102130795SQ20111005920
公開日2011年7月20日 申請日期2011年3月11日 優(yōu)先權日2011年3月11日
發(fā)明者馮振興, 李衛(wèi), 王爭, 管曉宏, 范曾, 褚偉波, 陳明旭, 陶敬, 韓婷 申請人:西安交通大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1