本發(fā)明屬于通信技術(shù)領(lǐng)域,特別涉及網(wǎng)絡(luò)數(shù)據(jù)的解析方法及路由器。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展和計算機的普及,網(wǎng)絡(luò)用戶的數(shù)量增長迅速,網(wǎng)絡(luò)行為逐漸成人類行為中的最重要的社會現(xiàn)象之一。深入了解和分析網(wǎng)絡(luò)用戶的行為,給用戶帶來很大的便利。
數(shù)據(jù)包種類繁多,不同種類的數(shù)據(jù)包的數(shù)據(jù)存儲規(guī)律也不盡相同。然而用戶網(wǎng)絡(luò)數(shù)據(jù)包的種類繁多,獲取到的數(shù)據(jù)包的數(shù)據(jù)都是以二進制形式存儲,存儲規(guī)律繁多,很難做到精確的數(shù)據(jù)包的數(shù)據(jù)解析和提取。在對大量用戶數(shù)據(jù)包信息處理時,如果能夠進行批量處理,快速獲取用戶的網(wǎng)絡(luò)行為精準(zhǔn)數(shù)據(jù),并進行用戶行為數(shù)據(jù)分析,將產(chǎn)生巨大的商業(yè)價值。
因此,如何對數(shù)據(jù)包進行進行快速解析,成為亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明提供的技術(shù)方案如下:
本發(fā)明提供一種一種網(wǎng)絡(luò)數(shù)據(jù)的解析方法,其特征在于,包括以下步驟:
s1、將網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息保留終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù);
s2、根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集;
s3、將所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一字段值標(biāo)識為待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,并根據(jù)所述包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一預(yù)設(shè)位置字段的數(shù)值,若所述數(shù)值符合標(biāo)準(zhǔn)網(wǎng)絡(luò)數(shù)據(jù)協(xié)議結(jié)構(gòu)中的同一位置的字段值,則判斷所述待解析的網(wǎng)絡(luò)數(shù)據(jù)字段值為所述包長度,并對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析;
s4,否則,重復(fù)執(zhí)行步驟s3。
優(yōu)選地,步驟s1還包括:
在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭添加一兩個字節(jié)的字段,該字段的值用于設(shè)置所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度值。
優(yōu)選的,步驟s1還包括:
若所述網(wǎng)絡(luò)數(shù)據(jù)的中應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度大于第一預(yù)設(shè)值時,則所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中包含的應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度對應(yīng)為該預(yù)設(shè)值,否則所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中包含的應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度保持不變。
優(yōu)選地,步驟s2具體包括:
根據(jù)所述待解析的網(wǎng)絡(luò)數(shù)據(jù)包頭的兩個字節(jié)的字段值,獲取所述包長度,并統(tǒng)計所有采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度;
當(dāng)所述總包長度大于第二預(yù)設(shè)值時,停止數(shù)據(jù)采集,并在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭設(shè)置兩個字節(jié)的字段,該字段值表示所收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度;
當(dāng)停止時間大于第三預(yù)設(shè)值后,繼續(xù)進行采集,并將收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包,存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中。
優(yōu)選地,步驟s2具體還包括:
統(tǒng)計所有收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池的數(shù)據(jù)量,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
本發(fā)明提供了一種路由器,包括:
數(shù)據(jù)封裝模塊,用于將網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息保留終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù);
數(shù)據(jù)收集模塊,用于根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
優(yōu)選地,所述數(shù)據(jù)封裝模塊,還用于在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭添加一兩個字節(jié)的字段,該字段的值用于設(shè)置所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度值。
優(yōu)選地,所述數(shù)據(jù)收集模塊具體包括:
統(tǒng)計單元,用于根據(jù)所述待解析的網(wǎng)絡(luò)數(shù)據(jù)包頭的兩個字節(jié)的字段值,獲取所述包長度,并統(tǒng)計所有采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度;
判斷單元,用于當(dāng)所述總包長度大于第二預(yù)設(shè)值時,停止數(shù)據(jù)采集,并在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭設(shè)置兩個字節(jié)的字段,該字段值表示所收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度;
所述判斷單元,還用于當(dāng)停止時間大于第三預(yù)設(shè)值后,繼續(xù)進行采集,并將收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包,存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中。
優(yōu)選地,所述統(tǒng)計單元,還用于統(tǒng)計所有收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池的數(shù)據(jù)量;
所述判斷單元,還用于當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
本發(fā)明還提供了一種網(wǎng)絡(luò)數(shù)據(jù)解析裝置,包括:
路由器,用于將網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息保留終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集;
服務(wù)端,用于將所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一字段值標(biāo)識為待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,并根據(jù)所述包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一預(yù)設(shè)位置字段的數(shù)值,若所述數(shù)值符合標(biāo)準(zhǔn)網(wǎng)絡(luò)數(shù)據(jù)協(xié)議結(jié)構(gòu)中的同一位置的字段值,則判斷所述待解析的網(wǎng)絡(luò)數(shù)據(jù)字段值為所述包長度,并對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析。
與現(xiàn)有技術(shù)相比,本發(fā)明一種網(wǎng)絡(luò)數(shù)據(jù)的解析方法及裝置及路由器,具有以下有益效果:
1)、通過對所述網(wǎng)絡(luò)數(shù)據(jù)重新進行封裝,去掉不需要的數(shù)據(jù)鏈路層信息,減少待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,增大了收集待解析的網(wǎng)絡(luò)數(shù)據(jù)的容量,減少了數(shù)據(jù)解析對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度。
2)、通過采用數(shù)據(jù)采集停頓時間的機制,也就是說,采集網(wǎng)絡(luò)數(shù)據(jù)超過一預(yù)設(shè)值后停止收集,然后經(jīng)過一預(yù)設(shè)時間后繼續(xù)采集網(wǎng)絡(luò)數(shù)據(jù),所用采集的網(wǎng)絡(luò)數(shù)據(jù)達到一定數(shù)據(jù)后,停止數(shù)據(jù)采集,這樣每隔一段時間或積累達到一定數(shù)量的數(shù)據(jù)包,形成數(shù)據(jù)包文件發(fā)送到服務(wù)器端來進行解析,減小數(shù)據(jù)收集對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度。
3)、根據(jù)定位所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始位置,并獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,進而對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析,獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)鏈路層消息、傳輸層消息以及網(wǎng)絡(luò)層信息,進而可以獲取網(wǎng)絡(luò)數(shù)據(jù)中的mac地址信息、ip地址信息以及url信息等,并根據(jù)這些信息進行分析,用戶根據(jù)這些信息加以利用,給用戶帶來很大的方便。
附圖說明
下面將以明確易懂的方式,結(jié)合附圖說明優(yōu)選實施方式,對一種網(wǎng)絡(luò)數(shù)據(jù)的解析方法及裝置及路由器的上述特性、技術(shù)特征、優(yōu)點及其實現(xiàn)方式予以進一步說明。
圖1是本發(fā)明一種網(wǎng)絡(luò)數(shù)據(jù)的解析方法的流程示意圖;
圖2是本發(fā)明一具體實施例的網(wǎng)絡(luò)數(shù)據(jù)的結(jié)構(gòu)圖;
圖3是本發(fā)明一種路由器的組成結(jié)構(gòu)示意圖;
圖4是本發(fā)明一種網(wǎng)絡(luò)數(shù)據(jù)解析裝置的組成結(jié)構(gòu)示意圖。
具體實施方式
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對照附圖說明本發(fā)明的具體實施方式。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實施方式。
為使圖面簡潔,各圖中只示意性地表示出了與本發(fā)明相關(guān)的部分,它們并不代表其作為產(chǎn)品的實際結(jié)構(gòu)。另外,以使圖面簡潔便于理解,在有些圖中具有相同結(jié)構(gòu)或功能的部件,僅示意性地繪示了其中的一個,或僅標(biāo)出了其中的一個。在本文中,“一個”不僅表示“僅此一個”,也可以表示“多于一個”的情形。
如圖1所示,根據(jù)本發(fā)明的一個實施例,一種網(wǎng)絡(luò)數(shù)據(jù)的解析方法,包括以下步驟:
s1、將網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息保留終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù);
s2、根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集;
s3、將所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一字段值標(biāo)識為待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,并根據(jù)所述包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一預(yù)設(shè)位置字段的數(shù)值,若所述數(shù)值符合標(biāo)準(zhǔn)網(wǎng)絡(luò)數(shù)據(jù)協(xié)議結(jié)構(gòu)中的同一位置的字段值,則判斷所述待解析的網(wǎng)絡(luò)數(shù)據(jù)字段值為所述包長度,并對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析;
s4,否則,重復(fù)執(zhí)行步驟s3。
具體實施過程中,路由器獲取到上行網(wǎng)絡(luò)數(shù)據(jù)后,需要對網(wǎng)絡(luò)數(shù)據(jù)進行數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層的封裝。在本發(fā)明的技術(shù)方案中,在路由器中有兩條數(shù)據(jù)傳輸路徑,一條數(shù)據(jù)傳輸路徑是對網(wǎng)絡(luò)數(shù)據(jù)進行完整封裝完成后,按照路由器的路徑協(xié)議,將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)出去,另外一條數(shù)據(jù)傳輸路徑是對網(wǎng)絡(luò)數(shù)據(jù)進行采集和解析所述網(wǎng)絡(luò)數(shù)據(jù),進而對所述網(wǎng)絡(luò)數(shù)據(jù)進行分析。具體地,在對網(wǎng)絡(luò)數(shù)據(jù)進行數(shù)據(jù)鏈路層信息封裝時,對數(shù)據(jù)鏈路層信息來說,我們需要保留終端的mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)包重新進行封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)。因為在實際網(wǎng)絡(luò)數(shù)據(jù)行為分析的過程中,數(shù)據(jù)鏈路層的其他數(shù)據(jù)信息基本上是我們所不需要的,所以不用將所有的數(shù)據(jù)鏈路層信息封裝進網(wǎng)絡(luò)數(shù)據(jù)包中。在所述網(wǎng)絡(luò)數(shù)據(jù)的具體封裝過程中,路由器在對接收的網(wǎng)絡(luò)數(shù)據(jù)包進行數(shù)據(jù)鏈路層和傳輸層的封裝前,為了完成對網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)發(fā),需要將數(shù)據(jù)鏈路層信息中的源mac地址信息已經(jīng)更換為路由器的mac地址信息,因此在對所述網(wǎng)絡(luò)數(shù)據(jù)封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)時,根據(jù)路由器中存儲的mac地址表,獲取所述網(wǎng)絡(luò)數(shù)據(jù)包的對應(yīng)的終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息更換為終端mac地址信息,封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)。在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭添加一兩個字節(jié)的字段,該字段的值用于設(shè)置所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度值,用于表示所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度。
通過該技術(shù)方案,網(wǎng)絡(luò)數(shù)據(jù)包中的數(shù)據(jù)鏈路層信息,對網(wǎng)絡(luò)數(shù)據(jù)的分析和用戶行為分析來說,數(shù)據(jù)鏈路層信息的終端mac地址信息使用的最多,而數(shù)據(jù)鏈路層的其他數(shù)據(jù)信息是我們所不需要的,因此在網(wǎng)絡(luò)數(shù)據(jù)解析的過程中,對所述網(wǎng)絡(luò)數(shù)據(jù)包重新進行封裝,去掉不需要的數(shù)據(jù)鏈路層信息,減少待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,增大了收集待解析的網(wǎng)絡(luò)數(shù)據(jù)的容量,減少了數(shù)據(jù)解析對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度。
本發(fā)明的一具體實施例,當(dāng)所述網(wǎng)絡(luò)數(shù)據(jù)封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)時,若所述網(wǎng)絡(luò)數(shù)據(jù)的中應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度大于第一預(yù)設(shè)值時,則在封裝過程中,所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中包含的應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度對應(yīng)為該預(yù)設(shè)值,否則所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中包含的應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度保持不變。比如,該第一預(yù)設(shè)值設(shè)置為512字節(jié),在所述網(wǎng)絡(luò)數(shù)據(jù)包封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)時,若所述網(wǎng)絡(luò)數(shù)據(jù)中應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度大于512字節(jié),則在數(shù)據(jù)封裝過程中,所述應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度保留512字節(jié),如果所述網(wǎng)絡(luò)數(shù)據(jù)中應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度小于或者等于512字節(jié)時,保留原有的應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度。根據(jù)該技術(shù)方案,如果網(wǎng)絡(luò)數(shù)據(jù)中的應(yīng)用層數(shù)據(jù)信息的數(shù)據(jù)長度比較大,而應(yīng)用層的數(shù)據(jù)信息對分析網(wǎng)絡(luò)數(shù)據(jù)的行為的作用不大,因此需要截取部分的應(yīng)用層數(shù)據(jù)信息封裝進待解析的網(wǎng)絡(luò)數(shù)據(jù)中,減少待解析的網(wǎng)絡(luò)數(shù)據(jù)的大小,提高路由器的性能,有利于路由器收集所述待解析的網(wǎng)絡(luò)數(shù)據(jù)。
路由器將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)后,根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。具體地,在每個待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭設(shè)置有兩個字節(jié)的字段,該字段用于表示該待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度。路由器采集待解析的網(wǎng)絡(luò)數(shù)據(jù),每采集到一個待解析的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)該待解析的網(wǎng)絡(luò)數(shù)據(jù)包頭的兩個字節(jié)的字段值,獲取該待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,統(tǒng)計所有采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度,當(dāng)統(tǒng)計到所采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度大于第二預(yù)設(shè)值時,停止數(shù)據(jù)采集,并在該待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭設(shè)置兩個字節(jié)的字段,該字段值表示所收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包長度。當(dāng)停止時間大于第三預(yù)設(shè)值后,繼續(xù)進行待解析的網(wǎng)絡(luò)數(shù)據(jù)采集,重復(fù)進行上述步驟進行數(shù)據(jù)的收集,將收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包,存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中。路由器根據(jù)所收集待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭的兩個字節(jié)的字段值,獲取該待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包長度,并統(tǒng)計所有收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池的數(shù)據(jù)量。當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
根據(jù)該技術(shù)方案,采用數(shù)據(jù)采集停頓時間的機制,也就是說,采集網(wǎng)絡(luò)數(shù)據(jù)超過一預(yù)設(shè)值后停止收集,然后經(jīng)過一預(yù)設(shè)時間后繼續(xù)采集網(wǎng)絡(luò)數(shù)據(jù),所用采集的網(wǎng)絡(luò)數(shù)據(jù)達到一定數(shù)據(jù)后,停止數(shù)據(jù)采集,這樣每隔一段時間或積累達到一定數(shù)量的數(shù)據(jù)包,形成數(shù)據(jù)包文件發(fā)送到服務(wù)器端來進行解析,減小數(shù)據(jù)收集對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度。
服務(wù)端獲取路由器發(fā)送的所述待解析的網(wǎng)絡(luò)數(shù)據(jù),并對待解析的網(wǎng)絡(luò)數(shù)據(jù)進行解析。由于在網(wǎng)絡(luò)數(shù)據(jù)的采集過程中,所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中包含的數(shù)據(jù)鏈路層信息的只保留了終端mac地址信息,因此所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中的各字段位置和數(shù)據(jù)包長度,和標(biāo)準(zhǔn)協(xié)議的網(wǎng)絡(luò)數(shù)據(jù)包結(jié)構(gòu)不一致了,也就是說待解析的網(wǎng)絡(luò)數(shù)據(jù)中的表示數(shù)據(jù)鏈路層信息、傳輸層信息和網(wǎng)絡(luò)層信息的各字段的位置,與標(biāo)準(zhǔn)協(xié)議的各字段的位置不一致了,不能按照標(biāo)準(zhǔn)協(xié)議的結(jié)構(gòu)對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行解析,因此需要重新定位待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,獲取各字段的位置,對所述網(wǎng)絡(luò)數(shù)據(jù)進行解析。
具體地,服務(wù)端獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù),將所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一字段值,標(biāo)識為待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,根據(jù)該字段值獲取數(shù)據(jù)包的包長度,根據(jù)所述包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中的一預(yù)設(shè)位置字段的數(shù)值,若所獲取的數(shù)值符合網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議結(jié)構(gòu)中的同一字段值,則判斷待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始字段值為該待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,進而獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,根據(jù)所述包長度,根據(jù)網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議,比如數(shù)據(jù)鏈路層協(xié)議、傳輸層協(xié)議以及網(wǎng)絡(luò)層協(xié)議,進而獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)中的各字段值,對該網(wǎng)絡(luò)數(shù)據(jù)進行層層解析,進而獲取網(wǎng)絡(luò)數(shù)據(jù)中的mac地址信息、ip地址信息以及url信息等,并根據(jù)這些信息進行分析。若所獲取的數(shù)值不符合網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議結(jié)構(gòu)中的同一字段值,然后重新判定待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始位置,即重新所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,重復(fù)上述步驟,,比如,判定所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的下一個字節(jié)為所述起始位置,直到找到所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始位置,獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,并對待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度進行層層解析。
本發(fā)明的一具體實施例,在數(shù)據(jù)收集過程中,所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)鏈路層信息的保留終端mac地址信息,但是網(wǎng)絡(luò)數(shù)據(jù)包中的網(wǎng)絡(luò)信息沒有改變,因此利用網(wǎng)絡(luò)層協(xié)議的標(biāo)準(zhǔn)數(shù)據(jù)結(jié)構(gòu)的特殊字段值,比如version(版本)字段和protocol(協(xié)議)字段,version指ip協(xié)議的版本,該字段值的十六進制值為4,表示為ipv4,protocol字段是指數(shù)據(jù)報攜帶的數(shù)據(jù)是何協(xié)議,該字段值對應(yīng)的十六進制是6,代表協(xié)議為tcp協(xié)議。本實施例利用這兩個字段值來確定所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度。假設(shè)將所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的前兩個字節(jié)作為待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始位置,獲取所述兩個字節(jié)的字段值,該字段值用以表示所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度。根據(jù)所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)中的version字段值和protocol字段值,若這兩個字段的數(shù)值和網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議結(jié)構(gòu)中的這兩個字段值一致,表明所述待解析的網(wǎng)絡(luò)數(shù)據(jù)起始的兩個字節(jié),用來標(biāo)定待解析的網(wǎng)絡(luò)數(shù)據(jù)的真實長度的值,根據(jù)所述數(shù)據(jù)的包長度,按照網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議結(jié)構(gòu),進而獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的各字段值,進而對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析,比如,獲取數(shù)據(jù)鏈路層消息、傳輸層消息以及網(wǎng)絡(luò)層信息,進而可以獲取網(wǎng)絡(luò)數(shù)據(jù)中的mac地址信息、ip地址信息以及url信息等,并根據(jù)這些信息進行分析。若所述version字段值和protocol字段的數(shù)值和網(wǎng)絡(luò)數(shù)據(jù)的標(biāo)準(zhǔn)協(xié)議結(jié)構(gòu)中的這兩個字段值不一致,則表明所述待解析的網(wǎng)絡(luò)數(shù)據(jù)起始的兩個字節(jié),不能用來標(biāo)定待解析的網(wǎng)絡(luò)數(shù)據(jù)的真實長度的值,還要繼續(xù)繼續(xù)定位待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始位置,獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,依次獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的后面兩個字節(jié)的字段值,重復(fù)上述步驟,直到獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,然后對待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析。
根據(jù)該技術(shù)方案,定位所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的起始位置,并獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,進而對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析,獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)鏈路層消息、傳輸層消息以及網(wǎng)絡(luò)層信息,進而可以獲取網(wǎng)絡(luò)數(shù)據(jù)中的mac地址信息、ip地址信息以及url信息等,并根據(jù)這些信息進行分析,用戶根據(jù)這些信息加以利用,給用戶帶來很大的方便。
本發(fā)明的一具體實施例,對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭協(xié)議進行解析的實施例。所述待解析的網(wǎng)絡(luò)數(shù)據(jù)是以文件形式進行存儲,將所述網(wǎng)絡(luò)數(shù)據(jù)包通過解壓解密轉(zhuǎn)換成數(shù)據(jù)包數(shù)據(jù)集,所述數(shù)據(jù)包數(shù)據(jù)集是以二進制形式進行存儲的。如圖2所示待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)圖,待解析的網(wǎng)絡(luò)數(shù)據(jù)的前4個字節(jié),用以表示所述解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)長度,如表1中的packet內(nèi)容中所示。所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)data是報文內(nèi)容,其中報文內(nèi)容的協(xié)議頭是包含各種協(xié)議頭信息,比如,以太網(wǎng)頭部信息、ip頭部信息以及tcp頭部信息,這些頭部信息都是按照一定編碼格式進行存儲的。將所述文件通過解壓解密轉(zhuǎn)換成真正的數(shù)據(jù)包數(shù)據(jù)集cathpkt文件,然后對數(shù)據(jù)包數(shù)據(jù)集cathpkt文件的進行處理,讀取數(shù)據(jù)包數(shù)據(jù)集的前4個字節(jié),將二進制數(shù)據(jù)轉(zhuǎn)換為時間數(shù)據(jù)作為數(shù)據(jù)包的長度信息l,從cathpkt文件中讀寫l-4個字節(jié)的數(shù)據(jù)即為packet內(nèi)容的數(shù)據(jù)。然后首先獲取packet數(shù)據(jù)的前14個字節(jié)的數(shù)據(jù),通過upack()函數(shù),按照給定格式解析這14個字節(jié)的字節(jié)流string數(shù)據(jù),并返回解析出來的字節(jié)數(shù)組。獲取前6個字節(jié)和中間6字節(jié),采用ord()函數(shù)對字節(jié)流數(shù)據(jù)進行處理,轉(zhuǎn)換成對應(yīng)的ascii值,然后組合成對應(yīng)的用戶mac地址信息和服務(wù)器mac地址信息。具體代碼實現(xiàn)過程如下所示:
defeth_addr(a):
b="%.2x:%.2x:%.2x:%.2x:%.2x:%.2x"%(ord(a[0]),ord(a[1]),ord(a[2]),ord(a[3]),ord(a[4]),ord(a[5]))
returnb;
通過使用上述同樣的設(shè)計方案,對待解析的網(wǎng)絡(luò)數(shù)據(jù)的ip協(xié)議頭部信息進行解析,獲取待解析的網(wǎng)絡(luò)數(shù)據(jù)中的用戶ip信息和服務(wù)器ip信息。
獲取數(shù)據(jù)集cathpkt文件中剩余數(shù)據(jù)包信息進行解析,重復(fù)上述步驟,循環(huán)處理數(shù)據(jù)集cathpkt文件,直到所有待解析的網(wǎng)絡(luò)數(shù)據(jù)解析完成。
本發(fā)明的另一具體實施例,對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)內(nèi)容進行解析的實施例。網(wǎng)絡(luò)數(shù)據(jù)的包頭協(xié)議的頭長度都有其對應(yīng)的規(guī)律,獲取數(shù)據(jù)包頭協(xié)議的長度hl,整個網(wǎng)絡(luò)數(shù)據(jù)的長度信息也存在于網(wǎng)絡(luò)數(shù)據(jù)的包頭協(xié)議部分,網(wǎng)絡(luò)數(shù)據(jù)的總長度為pl,則網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)data長度為dl=pl-hl。從cathpkt數(shù)據(jù)文件中讀取到每個網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)data二進制的數(shù)據(jù)信息,對數(shù)據(jù)data二進制的數(shù)據(jù)信息進行解析。通過對basehttpserver中的basehttprequesthandler功能擴充,解析數(shù)據(jù)data的二進制數(shù)據(jù)信息,并存儲在一個實例屬性集合中。根據(jù)網(wǎng)絡(luò)數(shù)據(jù)的類型不同,采取不同的數(shù)據(jù)data的信息處理方式。比如,從cathpkt文件中獲取一個網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)data信息,然后對數(shù)據(jù)進行解析,存儲到實例屬性集合中。對實力屬性集合的upper項提取,根據(jù)upper項的值對網(wǎng)絡(luò)數(shù)據(jù)的類型進行分類,類型有g(shù)et、post、head、put、delete、options、trace和connect。以post數(shù)據(jù)為例,即
request.command.upper=’post’;
則網(wǎng)絡(luò)數(shù)據(jù)采用post數(shù)據(jù)包的data數(shù)據(jù)信息處理方式。post數(shù)據(jù)包的實例屬性結(jié)合中除去upper外,其他內(nèi)容以字典結(jié)構(gòu)的形式存儲url、user-agent、cookie、refere和date等有效信息。通過對該字典結(jié)構(gòu)信息的鍵值檢索,即可獲取所有post數(shù)據(jù)的內(nèi)容。檢索出屬性實例集合中所有post數(shù)據(jù)包的url、user-agent、cookie、refere和date,獲取數(shù)據(jù)信息中包含的用戶行為數(shù)據(jù)。
如圖3所示,根據(jù)本發(fā)明的一個實施例,一種路由器,包括:
數(shù)據(jù)封裝模塊30,用于將網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息保留終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù);
數(shù)據(jù)收集模塊31,用于根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
優(yōu)選地,所述數(shù)據(jù)封裝模塊30,還用于在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭添加一兩個字節(jié)的字段,該字段的值用于設(shè)置所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度值。
優(yōu)選地,所述數(shù)據(jù)收集模塊具體包括:
統(tǒng)計單元,用于根據(jù)所述待解析的網(wǎng)絡(luò)數(shù)據(jù)包頭的兩個字節(jié)的字段值,獲取所述包長度,并統(tǒng)計所有采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度;
判斷單元,用于當(dāng)所述總包長度大于第二預(yù)設(shè)值時,停止數(shù)據(jù)采集,并在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭設(shè)置兩個字節(jié)的字段,該字段值表示所收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度;
所述判斷單元,還用于當(dāng)停止時間大于第三預(yù)設(shè)值后,繼續(xù)進行采集,并將收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包,存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中。
優(yōu)選地,所述統(tǒng)計單元,還用于統(tǒng)計所有收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池的數(shù)據(jù)量;
所述判斷單元,還用于當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
路由器獲取到上行網(wǎng)絡(luò)數(shù)據(jù)后,需要對網(wǎng)絡(luò)數(shù)據(jù)進行數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層的封裝。在本發(fā)明的技術(shù)方案中,在路由器中有兩條數(shù)據(jù)傳輸路徑,一條數(shù)據(jù)傳輸路徑是對網(wǎng)絡(luò)數(shù)據(jù)進行完整封裝完成后,按照路由器的路徑協(xié)議,將該網(wǎng)絡(luò)數(shù)據(jù)轉(zhuǎn)發(fā)出去,另外一條數(shù)據(jù)傳輸路徑是對網(wǎng)絡(luò)數(shù)據(jù)進行采集和解析所述網(wǎng)絡(luò)數(shù)據(jù),進而對所述網(wǎng)絡(luò)數(shù)據(jù)進行分析。
具體地,在數(shù)據(jù)封裝模塊30中,在對網(wǎng)絡(luò)數(shù)據(jù)進行數(shù)據(jù)鏈路層信息封裝時,對數(shù)據(jù)鏈路層信息來說,我們需要保留終端的mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新進行封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)。因為在實際網(wǎng)絡(luò)數(shù)據(jù)行為分析的過程中,數(shù)據(jù)鏈路層的其他數(shù)據(jù)信息基本上是我們所不需要的,所以不用將所有的數(shù)據(jù)鏈路層信息封裝進網(wǎng)絡(luò)數(shù)據(jù)包中。路由器在對接收的網(wǎng)絡(luò)數(shù)據(jù)包進行數(shù)據(jù)鏈路層和傳輸層的封裝前,為了完成對網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)發(fā),需要將數(shù)據(jù)鏈路層信息中的源mac地址信息已經(jīng)更換為路由器的mac地址信息,因此在數(shù)據(jù)封裝模塊30中,對所述網(wǎng)絡(luò)數(shù)據(jù)封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)時,根據(jù)路由器中存儲的mac地址表,獲取所述網(wǎng)絡(luò)數(shù)據(jù)包的對應(yīng)的終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息更換為終端mac地址信息,封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)。并在所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包頭添加一兩個字節(jié)的字段,該字段的值用于設(shè)置所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度值,用于表示所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度。
通過該技術(shù)方案,網(wǎng)絡(luò)數(shù)據(jù)包中的數(shù)據(jù)鏈路層信息,對網(wǎng)絡(luò)數(shù)據(jù)的分析和用戶行為分析來說,數(shù)據(jù)鏈路層信息的終端mac地址信息使用的最多,而數(shù)據(jù)鏈路層的其他數(shù)據(jù)信息是我們所不需要的,因此在網(wǎng)絡(luò)數(shù)據(jù)解析的過程中,對所述網(wǎng)絡(luò)數(shù)據(jù)包重新進行封裝,去掉不需要的數(shù)據(jù)鏈路層信息,減少待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,增大了收集待解析的網(wǎng)絡(luò)數(shù)據(jù)的容量,減少了數(shù)據(jù)解析對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度。
將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù)后,數(shù)據(jù)收集模塊31根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
具體地,在數(shù)據(jù)收集模塊31的統(tǒng)計單元中,每采集到一個待解析的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)該待解析的網(wǎng)絡(luò)數(shù)據(jù)包頭的兩個字節(jié)的字段值,獲取該待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,統(tǒng)計所有采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度。通過數(shù)據(jù)收集模塊31的判斷單元,當(dāng)統(tǒng)計到所采集到的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的總包長度大于第二預(yù)設(shè)值時,停止數(shù)據(jù)采集,并在該待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭設(shè)置兩個字節(jié)的字段,該字段值表示所收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包長度。在判斷單元中,當(dāng)停止時間大于第三預(yù)設(shè)值后,繼續(xù)進行待解析的網(wǎng)絡(luò)數(shù)據(jù)采集,重復(fù)進行上述步驟進行數(shù)據(jù)的收集,將收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包,存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中。然后通過統(tǒng)計單元,根據(jù)收集待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包頭的兩個字節(jié)的字段值,獲取該待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包長度,并統(tǒng)計所有收集的待解析的網(wǎng)絡(luò)數(shù)據(jù)包的包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池的數(shù)據(jù)量。并通過判斷單元,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集。
根據(jù)該技術(shù)方案,采用數(shù)據(jù)采集停頓時間的機制,也就是說,采集網(wǎng)絡(luò)數(shù)據(jù)超過一預(yù)設(shè)值后停止收集,然后經(jīng)過一預(yù)設(shè)時間后繼續(xù)采集網(wǎng)絡(luò)數(shù)據(jù),所用采集的網(wǎng)絡(luò)數(shù)據(jù)達到一定數(shù)據(jù)后,停止數(shù)據(jù)采集,這樣每隔一段時間或積累達到一定數(shù)量的數(shù)據(jù)包,形成數(shù)據(jù)包文件發(fā)送到服務(wù)器端來進行解析,減小數(shù)據(jù)收集對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度。
如圖4所示,根據(jù)本發(fā)明的一個實施例,一種網(wǎng)絡(luò)數(shù)據(jù)解析裝置,包括:
路由器40,用于將網(wǎng)絡(luò)數(shù)據(jù)中的數(shù)據(jù)鏈路層信息保留終端mac地址信息,并將所述網(wǎng)絡(luò)數(shù)據(jù)重新封裝為待解析的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)一預(yù)設(shè)的數(shù)據(jù)采集機制,持續(xù)采集所述待解析的網(wǎng)絡(luò)數(shù)據(jù),存儲至待解析的網(wǎng)絡(luò)數(shù)據(jù)的數(shù)據(jù)池中,當(dāng)所述數(shù)據(jù)池的數(shù)據(jù)量大于第一預(yù)設(shè)閥值時,或者所述采集時間大于第二預(yù)設(shè)閥值時,停止采集;
服務(wù)端41,用于將所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一字段值標(biāo)識為待解析的網(wǎng)絡(luò)數(shù)據(jù)的包長度,并根據(jù)所述包長度,獲取所述待解析的網(wǎng)絡(luò)數(shù)據(jù)的一預(yù)設(shè)位置字段的數(shù)值,若所述數(shù)值符合標(biāo)準(zhǔn)網(wǎng)絡(luò)數(shù)據(jù)協(xié)議結(jié)構(gòu)中的同一位置的字段值,則判斷所述待解析的網(wǎng)絡(luò)數(shù)據(jù)字段值為所述包長度,并對所述待解析的網(wǎng)絡(luò)數(shù)據(jù)進行層層解析。
本發(fā)明一種網(wǎng)絡(luò)數(shù)據(jù)的解析方法及裝置及路由器,減小數(shù)據(jù)收集對路由器性能的影響,提高了網(wǎng)絡(luò)數(shù)據(jù)的解析速度,獲取網(wǎng)絡(luò)數(shù)據(jù)中的信息,并根據(jù)這些信息進行分析,用戶根據(jù)這些信息加以利用,給用戶帶來很大的方便。
應(yīng)當(dāng)說明的是,上述實施例均可根據(jù)需要自由組合。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。