本發(fā)明屬于通信技術(shù)領(lǐng)域,涉及一種數(shù)據(jù)包信息存儲方法及系統(tǒng)。
背景技術(shù):
在現(xiàn)有技術(shù)中,分析用戶的上網(wǎng)行為主要通過采集用戶的使用瀏覽器時產(chǎn)生的報文數(shù)據(jù),抓取用戶發(fā)送至服務(wù)器的報文數(shù)據(jù)包,解析報文數(shù)據(jù)包的內(nèi)容,將報文數(shù)據(jù)包的內(nèi)容記錄下,并存儲到日志中。
用戶經(jīng)路由器上報給服務(wù)器的上行文件中的報文數(shù)據(jù)包,可分為三類:
第一類,超文本傳輸協(xié)議(http,hypertexttransferprotocol)get報文數(shù)據(jù)包和超文本傳輸協(xié)議post報文數(shù)據(jù)包;
第二類,超文本傳輸協(xié)議中除了get報文和post報文之外的其他類型報文數(shù)據(jù)包;
第三類,基于安全套接層協(xié)議的超文本傳輸協(xié)議(https,hypertexttransferprotocoloversecuresocketlayer)報文數(shù)據(jù)包。
這些三類報文數(shù)據(jù)包都能夠獲取到路由器的mac地址、用戶設(shè)備的mac地址和用戶設(shè)備的ip地址等基本數(shù)據(jù)。而路由器上報給服務(wù)器的數(shù)據(jù)包中,僅有不到15%的數(shù)據(jù)屬于第一類報文數(shù)據(jù)包的數(shù)據(jù),而其他兩類報文數(shù)據(jù)包的占比超過85%。目前,能夠分析出用戶行為數(shù)據(jù)的也只有第一類報文數(shù)據(jù)包數(shù)據(jù);而其他兩類報文數(shù)據(jù)包的占比超過85%的超量數(shù)據(jù),對于計算路由器的日用戶在線量、用戶流失率和用戶新增量等數(shù)據(jù)的統(tǒng)計顯得至關(guān)重要。
對于第二類報文數(shù)據(jù)包和第三類報文數(shù)據(jù)包由于僅需存儲路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳,具有極高的重復(fù)性。
現(xiàn)有技術(shù)的用戶數(shù)據(jù)分析和統(tǒng)計中,這三類報文數(shù)據(jù)包均是整條存儲在數(shù)據(jù)庫中的。由于大量冗余數(shù)據(jù)的存在,要求提供大的存儲空間來存儲上述報文數(shù)據(jù)包的數(shù)據(jù),帶來存儲成本和體積的增加,增加的存儲部件甚至會影響設(shè)備的散熱性能。另外,大量冗余數(shù)據(jù)的存儲無形中增加了數(shù)據(jù)庫的檢索難度,降低了數(shù)據(jù)處理和使用的效率。
技術(shù)實現(xiàn)要素:
本發(fā)明為了解決上述技術(shù)問題,提出一種數(shù)據(jù)包信息存儲方法,適用于路由器上報給服務(wù)器的上行文件數(shù)據(jù)包的存儲,其特征在于,包括:
步驟s1,獲取待分析的數(shù)據(jù)包,所述數(shù)據(jù)包包括第一類型數(shù)據(jù)包和第二類型數(shù)據(jù)包;
步驟s2,當所述數(shù)據(jù)包類型為第一類型數(shù)據(jù)包時,按照預(yù)定規(guī)則為所述數(shù)據(jù)包生成檢索信息;
步驟s3,根據(jù)所述檢索信息在超量數(shù)據(jù)映射表中檢索所述數(shù)據(jù)包的統(tǒng)計信息;如果檢索成功,則更新所述超量數(shù)據(jù)映射表中所述數(shù)據(jù)包的所述統(tǒng)計信息;如果檢索失敗,則將所述數(shù)據(jù)包的統(tǒng)計信息添加至所述超量數(shù)據(jù)映射表中。
作為優(yōu)選,所述第一類型數(shù)據(jù)包包括基于安裝套接層的超文本傳輸協(xié)議數(shù)據(jù)包。
作為優(yōu)選,所述第一類型數(shù)據(jù)包包括所述第一類型數(shù)據(jù)包包括超文本傳輸協(xié)議head數(shù)據(jù)包、超文本傳輸協(xié)議put數(shù)據(jù)包、超文本傳輸協(xié)議delete數(shù)據(jù)包、超文本傳輸協(xié)議connect數(shù)據(jù)包、超文本傳輸協(xié)議options數(shù)據(jù)包、超文本傳輸協(xié)議trace數(shù)據(jù)包。
作為優(yōu)選,所述第二類型數(shù)據(jù)包包括超文本傳輸協(xié)議get數(shù)據(jù)包和超文本傳輸協(xié)議post數(shù)據(jù)包。
作為優(yōu)選,步驟s2中,根據(jù)所述數(shù)據(jù)包的路由器物理地址信息、設(shè)備物理地址信息、設(shè)備物聯(lián)網(wǎng)協(xié)議地址信息、時間戳信息,按照預(yù)定規(guī)則為所述數(shù)據(jù)包生成檢索信息。
作為優(yōu)選,所述檢索信息為包括所述路由器物理地址信息、設(shè)備物理地址信息、設(shè)備物聯(lián)網(wǎng)協(xié)議地址信息、時間戳信息的檢索字符串。
作為優(yōu)選,所述統(tǒng)計信息包括具有相同的所述檢索信息的數(shù)據(jù)包在統(tǒng)計周期內(nèi)出現(xiàn)的頻次。
作為優(yōu)選,所述超量數(shù)據(jù)映射表為鍵-值存儲數(shù)據(jù)庫,所述步驟s3中,以所述數(shù)據(jù)包的檢索信息作為鍵,以所述數(shù)據(jù)包的統(tǒng)計信息作為與所述鍵對應(yīng)的值,將所述數(shù)據(jù)包的統(tǒng)計信息添加至所述超量數(shù)據(jù)映射表中。
本發(fā)明還提供一種數(shù)據(jù)包存儲系統(tǒng),適用于路由器上報給服務(wù)器的上行文件數(shù)據(jù)包的存儲,其特征在于,包括:
數(shù)據(jù)包獲取模塊,獲取待分析的數(shù)據(jù)包,所述數(shù)據(jù)包包括第一類型數(shù)據(jù)包和第二類型數(shù)據(jù)包;
數(shù)據(jù)存儲模塊,存儲超量數(shù)據(jù)映射表;所述超量存儲數(shù)據(jù)映射表為以所述數(shù)據(jù)包的檢索信息作為鍵,以所述數(shù)據(jù)包的統(tǒng)計信息作為所述鍵對應(yīng)的值的鍵-值存儲數(shù)據(jù)庫;
檢索信息生成模塊,當所述數(shù)據(jù)包類型為第一類型數(shù)據(jù)包時,按照預(yù)定規(guī)則為所述數(shù)據(jù)包生成檢索信息;
檢索模塊,根據(jù)所述檢索信息在超量數(shù)據(jù)映射表中檢索所述數(shù)據(jù)包的統(tǒng)計信息;
信息更新模塊,更新所述超量數(shù)據(jù)映射表中所述數(shù)據(jù)包的所述統(tǒng)計信息或者則將所述數(shù)據(jù)包的統(tǒng)計信息添加至所述超量數(shù)據(jù)映射表中。
作為優(yōu)選,所述檢索信息生成模塊根據(jù)所述數(shù)據(jù)包的路由器物理地址信息、設(shè)備物理地址信息、設(shè)備物聯(lián)網(wǎng)協(xié)議地址信息、時間戳信息,按照預(yù)定規(guī)則為所述數(shù)據(jù)包生成所述檢索信息。
本發(fā)明采用映射表機制(key-value),對第一類型數(shù)據(jù)包的四個字段組成的字符串作為key,出現(xiàn)的頻次作為value,從而成倍減少協(xié)議解析結(jié)果數(shù)據(jù)存儲空間。
附圖說明
圖1是本發(fā)明實施例一的數(shù)據(jù)包存儲系統(tǒng)示意圖;
圖2是本發(fā)明實施例一的數(shù)據(jù)包存儲系統(tǒng)的流程圖;
圖3是本發(fā)明的數(shù)據(jù)包存儲系統(tǒng)的超量數(shù)據(jù)映射表結(jié)構(gòu)圖;
圖4是本發(fā)明實施例二的數(shù)據(jù)包存儲系統(tǒng)示意圖;
圖5是本發(fā)明實施例二的數(shù)據(jù)包存儲系統(tǒng)的流程圖;
圖6為本發(fā)明實施例一的數(shù)據(jù)包存儲方法步驟圖;
圖7為本發(fā)明實施例二的數(shù)據(jù)包存儲方法步驟圖。
具體實施方式
以下具體實施例僅僅是對本發(fā)明的解釋,其并不是對本發(fā)明的限制,本領(lǐng)域技術(shù)人員在閱讀完本說明書后可以根據(jù)需要對本實施例做出沒有創(chuàng)造性貢獻的修改,但只要在本發(fā)明的權(quán)利要求范圍內(nèi)都受到專利法的保護。
實施例一
如圖1所示,一種數(shù)據(jù)包存儲系統(tǒng),適用于路由器上報給服務(wù)器的上行文件數(shù)據(jù)包的存儲。包括:
數(shù)據(jù)包獲取模塊,用于獲取經(jīng)路由器上報至服務(wù)器的報文數(shù)據(jù)包路由器上報給服務(wù)器的上行文件中的數(shù)據(jù)包超文本傳輸協(xié)議(http,hypertexttransferprotocol)數(shù)據(jù)包和基于安全套接層協(xié)議的超文本傳輸協(xié)議(https,hypertexttransferprotocoloversecuresocketlayer)數(shù)據(jù)包。超文本傳輸協(xié)議是一套計算機通過網(wǎng)絡(luò)進行通信的規(guī)則。計算機專家設(shè)計出http,使http客戶(如web瀏覽器)能夠從http服務(wù)器(web服務(wù)器)請求信息和服務(wù)。超文傳輸協(xié)議報文是面向文本的,報文中的每一個字段都是一些ascii碼串。超文本傳輸協(xié)議有兩類報文:請求報文和響應(yīng)報文。其中,按照請求方法的不同,可以將超文本傳輸協(xié)議請求報文分為:超文本傳輸協(xié)議請求get報文、超文本傳輸協(xié)議請求post報文、超文本傳輸協(xié)議請求head報文、超文本傳輸協(xié)議請求put報文、超文本傳輸協(xié)議請求delete報文、超文本傳輸協(xié)議請求options報文、超文本傳輸協(xié)議請求trace報文、超文本傳輸協(xié)議請求connect報文。
基于安全套接層協(xié)議的超文本傳輸協(xié)議,以安全套接層(ssl,securesocketlayer)作為安全基礎(chǔ),相對于超文本傳輸協(xié)議具有更高的安全性。
超文本傳輸協(xié)議和基于安全套接層協(xié)議的超文本傳輸協(xié)議報文的都能夠獲取到路由器的物理(mac,mediaaccesscontrol或者mediumaccesscontrol)地址、通過路由器發(fā)送該超文本傳輸協(xié)議請求報文的用于設(shè)備的物理地址、通過路由器發(fā)送該超文本傳輸協(xié)議請求報文的用戶設(shè)備的網(wǎng)絡(luò)協(xié)議(ip,internetprotocoladdress)地址、以及該超文本傳輸協(xié)議請求報文的時間戳。
但是,并不是所有的報文數(shù)據(jù)對于用戶行為分析和統(tǒng)計均是有用信息。現(xiàn)有技術(shù)將上述所有的報文數(shù)據(jù)打包存儲起來,占用了大量的存儲空間。例如,基于超文本傳輸協(xié)議head報文、超文本傳輸協(xié)議請求put報文、超文本傳輸協(xié)議請求delete報文等超文本傳輸協(xié)議中除了get和post報文以外的其他報文和基于安全套接層協(xié)議的超文本傳輸協(xié)議報文對于計算路由器的日用戶在線量、用戶流失率、用戶新增量數(shù)據(jù)的統(tǒng)計顯得至關(guān)重要,本實施例中將路由器上報至服務(wù)器的上行文件中的該部分超文本傳輸協(xié)議報文的數(shù)據(jù)包定義為第一類型數(shù)據(jù)包,本實施例中還將路由器上報至服務(wù)器的上行文件中的超文本傳輸協(xié)議get報文和超文本傳輸協(xié)議post報文定義為第二類型數(shù)據(jù)包。
數(shù)據(jù)獲取模塊還包括數(shù)據(jù)解析單元,數(shù)據(jù)解析單元檢測數(shù)據(jù)模塊獲取的數(shù)據(jù)包的請求報文中是否存在‘get’字段或者‘post’字段,如果沒有檢測到,則該數(shù)據(jù)包屬于第一類型數(shù)據(jù)包;如果有檢測到,則該數(shù)據(jù)包屬于第二類型數(shù)據(jù)包。
數(shù)據(jù)存儲模塊,包括一個或者多個超量存儲數(shù)據(jù)映射表。超量存儲數(shù)據(jù)映射表為存儲在該數(shù)據(jù)存儲模塊中的鍵-值存儲數(shù)據(jù)庫。超量存儲數(shù)據(jù)映射表可以有多個,多個超量存儲數(shù)據(jù)映射表分別存儲對應(yīng)不同統(tǒng)計時間段的數(shù)據(jù)包的相關(guān)信息。如圖3,每個超量數(shù)據(jù)映射表p包括鍵(key)-值(value)對,每個鍵key對應(yīng)有一value值,key集(p.key())包含存儲在超量數(shù)據(jù)映射表p中的所有key,key(p)存儲數(shù)據(jù)包的檢索信息,key(p)對應(yīng)的value值為i(p)用于存儲數(shù)據(jù)包的統(tǒng)計信息。本實施例中的統(tǒng)計信息為該數(shù)據(jù)包的出現(xiàn)頻次。
檢索信息生成模塊,分析由數(shù)據(jù)包獲取模塊獲取的數(shù)據(jù)包,當數(shù)據(jù)包類型為第一類型數(shù)據(jù)包時,按照預(yù)定規(guī)則為所述數(shù)據(jù)包生成檢索信息。本實施例中,檢索信息生成模塊生成檢索信息的方法為:解析第一類型數(shù)據(jù)包,提取包含在數(shù)據(jù)包中的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳。由于超文本傳輸協(xié)議和基于安全套接層協(xié)議的超文本傳輸協(xié)議都是面向文本的,報文中的每一個字段都是一些ascii碼串。本實施例中,檢索信息生成模塊可以直接根據(jù)第一類型數(shù)據(jù),將數(shù)據(jù)包的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳組成字符串作為該數(shù)據(jù)包的檢索信息。
檢索模塊,根據(jù)檢索信息在超量數(shù)據(jù)映射表中檢索數(shù)據(jù)包的統(tǒng)計信息。將檢索信息作為key_temp的值,檢測key_temp是否存在于超量數(shù)據(jù)映射表的key集(p.keys())中。
信息更新模塊,更新超量數(shù)據(jù)映射表中數(shù)據(jù)包的統(tǒng)計信息或者則將數(shù)據(jù)包的統(tǒng)計信息添加至超量數(shù)據(jù)映射表中。如果檢索模塊檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將超量數(shù)據(jù)映射表中key(p)對應(yīng)的i(p)執(zhí)行增1操作,即執(zhí)行i(p)++。如果檢索模塊沒有檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將key(p)加入到超量數(shù)據(jù)映射表中,并將key(p)映射的對應(yīng)i(p)賦值1。
如圖6,基于上述數(shù)據(jù)包存儲系統(tǒng)的數(shù)據(jù)包存儲方法:
步驟s1,獲取待分析的數(shù)據(jù)包pag,由數(shù)據(jù)獲取模塊獲取數(shù)據(jù)包集cathpkt文件并且從cathpkt文件讀取一個待分析的數(shù)據(jù)包pag。數(shù)據(jù)獲取模塊首先判斷該數(shù)據(jù)包pag是否為空,如果為空則重新執(zhí)行步驟s1分析下一個數(shù)據(jù)包。如果不為空則通過數(shù)據(jù)分析單元解析該數(shù)據(jù)包pag,檢測該數(shù)據(jù)包pag中是否存在‘get’或者‘post’,如果存在則表明該數(shù)據(jù)包為超文本傳輸協(xié)議get報文或者超文本傳輸協(xié)議post報文,屬于第二類數(shù)據(jù)包。重新執(zhí)行步驟s1分析下一個數(shù)據(jù)包。
步驟s2,當數(shù)據(jù)包類型為第一類型數(shù)據(jù)包時,按照預(yù)定規(guī)則為數(shù)據(jù)包生成檢索信息。檢索信息生成單元,解析第一類型數(shù)據(jù)包,提取包含在數(shù)據(jù)包中的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳。由于超文本傳輸協(xié)議和基于安全套接層協(xié)議的超文本傳輸協(xié)議都是面向文本的,報文中的每一個字段都是一些ascii碼串。本實施例中,檢索信息生成模塊可以直接根據(jù)第一類型數(shù)據(jù),將數(shù)據(jù)包的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳組成字符串作為該數(shù)據(jù)包的檢索信息。
步驟s3,檢索信息模塊根據(jù)檢索信息在超量數(shù)據(jù)映射表中檢索數(shù)據(jù)包的統(tǒng)計信息;如果檢索成功,則統(tǒng)計更新模塊更新超量數(shù)據(jù)映射表中數(shù)據(jù)包的統(tǒng)計信息;如果檢索失敗,則信息更新模塊將數(shù)據(jù)包的統(tǒng)計信息添加至超量數(shù)據(jù)映射表中。信息更新模塊,更新超量數(shù)據(jù)映射表中數(shù)據(jù)包的統(tǒng)計信息或者則將數(shù)據(jù)包的統(tǒng)計信息添加至超量數(shù)據(jù)映射表中。如果檢索模塊檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將超量數(shù)據(jù)映射表中key(p)對應(yīng)的i(p)執(zhí)行增1操作,即執(zhí)行i(p)++。如果檢索模塊沒有檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將key(p)加入到超量數(shù)據(jù)映射表中,并將key(p)映射的對應(yīng)i(p)賦值1。
實施例二
如圖4所示,一種數(shù)據(jù)包存儲系統(tǒng),適用于路由器上報給服務(wù)器的上行文件數(shù)據(jù)包的存儲。包括:
數(shù)據(jù)包獲取模塊,用于獲取經(jīng)路由器上報至服務(wù)器的報文數(shù)據(jù)包路由器上報給服務(wù)器的上行文件中的數(shù)據(jù)包超文本傳輸協(xié)議數(shù)據(jù)包和基于安全套接層協(xié)議的超文本傳輸協(xié)議數(shù)據(jù)包。
超文本傳輸協(xié)議和基于安全套接層協(xié)議的超文本傳輸協(xié)議報文的都能夠獲取到路由器的物理地址、通過路由器發(fā)送該超文本傳輸協(xié)議請求報文的用于設(shè)備的物理地址、通過路由器發(fā)送該超文本傳輸協(xié)議請求報文的用戶設(shè)備的網(wǎng)絡(luò)協(xié)議地址、以及該超文本傳輸協(xié)議請求報文的時間戳。
基于超文本傳輸協(xié)議head報文、超文本傳輸協(xié)議請求put報文、超文本傳輸協(xié)議請求delete報文等超文本傳輸協(xié)議中除了get和post報文以外的其他報文和基于安全套接層協(xié)議的超文本傳輸協(xié)議報文對于計算路由器的日用戶在線量、用戶流失率、用戶新增量數(shù)據(jù)的統(tǒng)計顯得至關(guān)重要,本實施例中將路由器上報至服務(wù)器的上行文件中的該部分超文本傳輸協(xié)議報文的數(shù)據(jù)包定義為第一類型數(shù)據(jù)包;基于超文本傳輸協(xié)議報文中的超文本傳輸協(xié)議get報文和超文本傳輸協(xié)議post報文能夠分析出用戶行為,本實施例中將路由器上報至服務(wù)器的上行文件中的該部分超文本傳輸協(xié)議報文的數(shù)據(jù)包定義為第二類型數(shù)據(jù)包。
數(shù)據(jù)獲取模塊還包括數(shù)據(jù)解析單元,數(shù)據(jù)解析單元檢測數(shù)據(jù)模塊獲取的數(shù)據(jù)包的請求報文中是否存在‘get’字段或者‘post’字段,如果沒有檢測到,則該數(shù)據(jù)包屬于第一類型數(shù)據(jù)包;如果有檢測到,則該數(shù)據(jù)包屬于第二類型數(shù)據(jù)包。
數(shù)據(jù)存儲模塊,包括一個或者多個超量存儲數(shù)據(jù)映射表以及用戶分析數(shù)據(jù)表。超量存儲數(shù)據(jù)映射表為存儲在該數(shù)據(jù)存儲模塊中的鍵-值存儲數(shù)據(jù)庫。超量存儲數(shù)據(jù)映射表可以有多個,多個超量存儲數(shù)據(jù)映射表分別存儲對應(yīng)不同統(tǒng)計時間段的數(shù)據(jù)包的相關(guān)信息。如圖3,每個超量數(shù)據(jù)映射表p包括鍵(key)-值(value)對,每個鍵key對應(yīng)有一value值,key集(p.key())包含存儲在超量數(shù)據(jù)映射表p中的所有key,key(p)存儲數(shù)據(jù)包的檢索信息,key(p)對應(yīng)的value值為i(p)用于存儲數(shù)據(jù)包的統(tǒng)計信息。本實施例中的統(tǒng)計信息為該數(shù)據(jù)包的出現(xiàn)頻次。用戶分析數(shù)據(jù)表存儲第二類型數(shù)據(jù)包的所有數(shù)據(jù),以為用戶行為分析提供數(shù)據(jù)支持。
檢索信息生成模塊,分析由數(shù)據(jù)包獲取模塊獲取的數(shù)據(jù)包,當數(shù)據(jù)包類型為第一類型數(shù)據(jù)包時,按照預(yù)定規(guī)則為所述數(shù)據(jù)包生成檢索信息。本實施例中,檢索信息生成模塊生成檢索信息的方法為:解析第一類型數(shù)據(jù)包,提取包含在數(shù)據(jù)包中的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳。由于超文本傳輸協(xié)議和基于安全套接層協(xié)議的超文本傳輸協(xié)議都是面向文本的,報文中的每一個字段都是一些ascii碼串。本實施例中,檢索信息生成模塊可以直接根據(jù)第一類型數(shù)據(jù),將數(shù)據(jù)包的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳組成字符串作為該數(shù)據(jù)包的檢索信息。
檢索模塊,根據(jù)檢索信息在超量數(shù)據(jù)映射表中檢索數(shù)據(jù)包的統(tǒng)計信息。將檢索信息作為key_temp的值,檢測key_temp是否存在于超量數(shù)據(jù)映射表的key集(p.keys())中。
信息更新模塊,更新超量數(shù)據(jù)映射表中數(shù)據(jù)包的統(tǒng)計信息或者則將數(shù)據(jù)包的統(tǒng)計信息添加至超量數(shù)據(jù)映射表中。如果檢索模塊檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將超量數(shù)據(jù)映射表中key(p)對應(yīng)的i(p)執(zhí)行增1操作,即執(zhí)行i(p)++。如果檢索模塊沒有檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將key(p)加入到超量數(shù)據(jù)映射表中,并將key(p)映射的對應(yīng)i(p)賦值1。當數(shù)據(jù)包類型為第二類型數(shù)據(jù)包時,信息更新模塊將該數(shù)據(jù)添加至用戶分析數(shù)據(jù)表中。
如圖7,基于上述數(shù)據(jù)包存儲系統(tǒng)的數(shù)據(jù)包存儲方法:
步驟s1,獲取待分析的數(shù)據(jù)包pag,由數(shù)據(jù)獲取模塊獲取數(shù)據(jù)包集cathpkt文件并且從cathpkt文件讀取一個待分析的數(shù)據(jù)包pag。數(shù)據(jù)獲取模塊首先判斷該數(shù)據(jù)包pag是否為空,如果為空則重新執(zhí)行步驟s1分析下一個數(shù)據(jù)包。如果不為空則通過數(shù)據(jù)分析單元解析該數(shù)據(jù)包pag,檢測該數(shù)據(jù)包pag中是否存在‘get’或者‘post’,如果存在則表明該數(shù)據(jù)包為超文本傳輸協(xié)議get報文或者超文本傳輸協(xié)議post報文,屬于第二類數(shù)據(jù)包,則進入步驟s3。
步驟s2,當數(shù)據(jù)包類型為第一類型數(shù)據(jù)包時,按照預(yù)定規(guī)則為數(shù)據(jù)包生成檢索信息。檢索信息生成單元,解析第一類型數(shù)據(jù)包,提取包含在數(shù)據(jù)包中的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳。由于超文本傳輸協(xié)議和基于安全套接層協(xié)議的超文本傳輸協(xié)議都是面向文本的,報文中的每一個字段都是一些ascii碼串。本實施例中,檢索信息生成模塊可以直接根據(jù)第一類型數(shù)據(jù),將數(shù)據(jù)包的路由器mac地址、用戶設(shè)備mac地址、用戶設(shè)備ip地址和時間戳組成字符串作為該數(shù)據(jù)包的檢索信息。
步驟s3,對于第一類型數(shù)據(jù)包,信息模塊根據(jù)檢索信息在超量數(shù)據(jù)映射表中檢索數(shù)據(jù)包的統(tǒng)計信息;如果檢索成功,則統(tǒng)計更新模塊更新超量數(shù)據(jù)映射表中數(shù)據(jù)包的統(tǒng)計信息;如果檢索失敗,則信息更新模塊將數(shù)據(jù)包的統(tǒng)計信息添加至超量數(shù)據(jù)映射表中。信息更新模塊,更新超量數(shù)據(jù)映射表中數(shù)據(jù)包的統(tǒng)計信息或者則將數(shù)據(jù)包的統(tǒng)計信息添加至超量數(shù)據(jù)映射表中。如果檢索模塊檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將超量數(shù)據(jù)映射表中key(p)對應(yīng)的i(p)執(zhí)行增1操作,即執(zhí)行i(p)++。如果檢索模塊沒有檢測到key_temp存在于超量數(shù)據(jù)映射表的key集中,則信息更新模塊將key(p)加入到超量數(shù)據(jù)映射表中,并將key(p)映射的對應(yīng)i(p)賦值1。對于第二類型數(shù)據(jù)包,信息更新模塊將數(shù)據(jù)包添加至用戶分析數(shù)據(jù)表。
本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。