以對接收到的數(shù)據(jù)進(jìn)行分析等處理,并將處理結(jié)果(例如反饋信息)發(fā)送給終端設(shè)備。
[0034]需要說明的是,本申請實(shí)施例所提供的流量監(jiān)控的方法一般由終端設(shè)備101、102、103執(zhí)行,相應(yīng)地,流量監(jiān)控裝置一般設(shè)置于終端設(shè)備101、102、103中。
[0035]應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實(shí)現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
[0036]繼續(xù)參考圖2,示出了根據(jù)本申請的流量監(jiān)控的方法的一個實(shí)施例的流程200。所述的流量監(jiān)控方法,包括以下步驟:
[0037]步驟201,調(diào)用數(shù)據(jù)包捕獲函數(shù)庫到系統(tǒng)操作平臺,將利用所述數(shù)據(jù)包捕獲函數(shù)庫抓取到的數(shù)據(jù)傳遞給監(jiān)控管理平臺。
[0038]在本實(shí)施例中,流量監(jiān)控方法運(yùn)行于其上的終端設(shè)備(例如圖1所示的終端設(shè)備101、102、103)。首先需要安裝監(jiān)控APP,再配置被監(jiān)控APP的信息,如包名。同時,監(jiān)控APP需要通過技術(shù)手段獲取需要監(jiān)控APP的網(wǎng)絡(luò)交互的所有信息,即經(jīng)過手機(jī)網(wǎng)卡的所有網(wǎng)絡(luò)交互數(shù)據(jù)。最后通過監(jiān)控APP過濾篩選網(wǎng)絡(luò)交互的屬性信息,丟棄具體的交互內(nèi)容等無關(guān)數(shù)據(jù)。如獲取基本屬性IP地址,端口號等。如果是HTTP請求,獲取RequestURL,ResponseURL,ContentLength等。如果是WebSocekt請求,獲取內(nèi)容區(qū)中CMD命令號(具體的不同實(shí)現(xiàn)方式,內(nèi)容區(qū)會有差別),是否壓縮等。
[0039]在將利用所述數(shù)據(jù)包捕獲函數(shù)庫抓取到的數(shù)據(jù)傳遞給監(jiān)控管理平臺時,可以以自定義協(xié)議的方式將利用所述數(shù)據(jù)包捕獲函數(shù)庫抓取到的數(shù)據(jù)傳遞給監(jiān)控管理平臺。
[0040]步驟202,利用所述監(jiān)控管理平臺中的解析工具對所述數(shù)據(jù)進(jìn)行解析,分析得到的特征屬性信息;其中,所述數(shù)據(jù)特征屬性信息包括網(wǎng)絡(luò)交互數(shù)據(jù)。
[0041]在本實(shí)施例中,監(jiān)控App獲取到的數(shù)據(jù)中通過分析自定義協(xié)議中的contentlength字段,確定當(dāng)前條目監(jiān)控?cái)?shù)據(jù)是否讀取完畢,如果沒有讀取完畢,將數(shù)據(jù)保存在緩存中繼續(xù)讀取。如果已經(jīng)讀取完畢,則將數(shù)據(jù)送入?yún)f(xié)議解析器中。清空緩存數(shù)據(jù),繼續(xù)下一條數(shù)據(jù)讀取。解析器根據(jù)傳入的數(shù)據(jù)分析頭字段確定是否是TCP,UDP等協(xié)議,如果是則進(jìn)行相應(yīng)的解析操作。獲取請求返回的IP地址,端口號等頭字段。根據(jù)協(xié)議頭字段中的SYN, ACK等字段確定是否某一條請求的開始,如果是則創(chuàng)建一個mysocket數(shù)據(jù)結(jié)構(gòu),內(nèi)部封裝請求和應(yīng)到的IP地址、端口號和byte數(shù)組的內(nèi)容。在某一個協(xié)議連接的過程中解析到相應(yīng)的頭字段的IP地址和端口號,找到相應(yīng)的mysocket數(shù)據(jù)結(jié)構(gòu),向里面添加請求或者返回的byte數(shù)組內(nèi)容。根據(jù)協(xié)議頭字段中的FIN,ACK等字段確定某一條連接斷開。在mysocket列表中刪除匹配到的mysocket數(shù)據(jù)結(jié)構(gòu)。將刪除的mysocket中的數(shù)據(jù)表示信息如協(xié)議類別,端口號等信息做本地持久化存儲。將mysocket中的內(nèi)容數(shù)據(jù)content數(shù)組做上層協(xié)議解析,如HTTP等,將應(yīng)用層的數(shù)據(jù)信息做相應(yīng)的持久化存儲。
[0042]需要說明的是,上述數(shù)據(jù)分析方式的各種方法是目前廣泛研究和應(yīng)用的公知技術(shù),在此不再贅述。
[0043]步驟203,可以將所分析得到的特征屬性信息進(jìn)行持久化存儲。
[0044]在本實(shí)施例中,通過分析本地持久化存儲的數(shù)據(jù)協(xié)議信息可以分析相應(yīng)的數(shù)據(jù)是否存在異常。由于任意一次請求的信息都做了相應(yīng)的持久化存儲,只要定好分析的規(guī)則,實(shí)現(xiàn)分析是非常容易的事情。在這里,需要說明的是,步驟203的將所分析得到的特征屬性信息進(jìn)行持久化存儲為本實(shí)施例的流量監(jiān)控的方法中的可選步驟。
[0045]步驟204,根據(jù)設(shè)定的異常特征信息對存儲的所述特征屬性信息進(jìn)行數(shù)據(jù)分析。
[0046]在本實(shí)施例中,將分析后的報(bào)表數(shù)據(jù)上傳后臺服務(wù)器。后臺服務(wù)器判斷其中是否有異常數(shù)據(jù)項(xiàng),如果存在異常數(shù)據(jù)項(xiàng),發(fā)送郵件給提前配置好的郵件接收者,通知接收者異常數(shù)據(jù)的來源,以便接收者改進(jìn)APP使用。提供報(bào)表數(shù)據(jù)的網(wǎng)頁查看地址,按天分頁,即一頁為某一天的所有報(bào)表數(shù)據(jù)列表并提供搜索功能,可以精準(zhǔn)搜索到某一次上傳報(bào)表。
[0047]在一些可選的實(shí)現(xiàn)方式中,本實(shí)施例的流量監(jiān)控的方法還可以包括:步驟205,通過網(wǎng)絡(luò)交互將分析得到的數(shù)據(jù)傳遞給報(bào)表后臺,其中,所述報(bào)表后臺包括了數(shù)據(jù)存儲和報(bào)表展現(xiàn)功能。
[0048]在實(shí)施例中,將流量分析完的數(shù)據(jù)通過后臺接口實(shí)現(xiàn)上傳,在計(jì)算機(jī)上面通過網(wǎng)頁的方式展現(xiàn),生成報(bào)表,便于觀察。可以編輯發(fā)送郵件組數(shù)據(jù)。如果分析數(shù)據(jù)中存在異常數(shù)據(jù),則發(fā)郵件給郵件組中的接收者,便于及時得到消息。
[0049]繼續(xù)參考圖3,示出了根據(jù)本申請的流量監(jiān)控的方法的另一個實(shí)施例的流程300。所述的流量監(jiān)控方法,包括以下步驟:
[0050]步驟301,將數(shù)據(jù)包捕獲函數(shù)庫編譯為普通的Linux平臺可執(zhí)行文件。
[0051]在本實(shí)施例中,數(shù)據(jù)包捕獲函數(shù)庫是Unix/Linux平臺下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫。它是一個獨(dú)立于系統(tǒng)的用戶層包捕獲的API接口,為底層網(wǎng)絡(luò)監(jiān)測提供了一個可移植的框架。
[0052]步驟302,監(jiān)控工具APP,通過執(zhí)行普通Linux可執(zhí)行文件的方式啟動數(shù)據(jù)包捕獲函數(shù)庫應(yīng)用。
[0053]步驟303,監(jiān)控工具APP和數(shù)據(jù)包捕獲函數(shù)庫應(yīng)用通過socket+自定義協(xié)議的方式通信。
[0054]步驟304,監(jiān)控APP應(yīng)用通過自定義協(xié)議傳遞參數(shù)給抓包庫應(yīng)用數(shù)據(jù)包捕獲函數(shù)庫,關(guān)閉數(shù)據(jù)包捕獲函數(shù)庫。
[0055]作為示例,請參見圖4,圖4是用于流量監(jiān)控的功能相互調(diào)用的示意圖400。
[0056]在本實(shí)施例中,大多數(shù)網(wǎng)絡(luò)監(jiān)控軟件都以Unix/Linux平臺下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫為基礎(chǔ)。網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫提供了系統(tǒng)獨(dú)立的用戶級別網(wǎng)絡(luò)數(shù)據(jù)包捕獲接口,并充分考慮到應(yīng)用程序的可移植性。網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫可以在絕大多數(shù)類Unix平臺下工作。
[0057]進(jìn)一步參考圖5,作為對上述各圖所示方法的實(shí)現(xiàn),本申請?zhí)峁┝擞糜诹髁勘O(jiān)控裝置的一個實(shí)施例的結(jié)構(gòu)示意圖;該系統(tǒng)實(shí)施例與圖2所示的方法實(shí)施例相對應(yīng),該系統(tǒng)具體可以應(yīng)用于各種電子設(shè)備中。
[0058]如圖5所示,本實(shí)施例所述的流量監(jiān)控裝置500包括:解析網(wǎng)絡(luò)模塊501、數(shù)據(jù)存儲模塊502、異常分析模塊503、數(shù)據(jù)傳輸模塊504、監(jiān)控引擎模塊505。其中,監(jiān)控引擎模塊505,配置用于調(diào)用數(shù)據(jù)包捕獲函數(shù)庫到系統(tǒng)操作平臺,將利用上述數(shù)據(jù)包捕獲函數(shù)庫抓取到的數(shù)據(jù)以自定義協(xié)議的方式傳遞給監(jiān)控管理平臺;解析網(wǎng)絡(luò)模塊501,配置用于利用上述監(jiān)控管理平臺中的解析工具對上述數(shù)據(jù)進(jìn)行解析,分析得到請求或者返回的特征屬性信息;數(shù)據(jù)存儲模塊502,配置用于將所分析得到的特征屬性信息進(jìn)行持久化存儲;異常分析模塊503,配置用于根據(jù)設(shè)定的異常特征信息對存儲的所述特征屬性信息進(jìn)行數(shù)據(jù)分析;數(shù)據(jù)傳輸模塊504,配置用于通過網(wǎng)絡(luò)交互將分析得到的數(shù)據(jù)傳遞給報(bào)表后臺。另外,還包括連接件,用于實(shí)現(xiàn)與監(jiān)控管理模塊之間的通信;還有報(bào)表后臺,用于實(shí)現(xiàn)將監(jiān)控客戶端分析后的流量分布情況和異常流量記錄情況進(jìn)行存儲,以及按日查看監(jiān)控提交記錄,并針對某一條記錄的詳情提供支持搜索功能。
[0059]本領(lǐng)域技術(shù)人員可以理解,上述流量監(jiān)控裝置還包括一些其他公知結(jié)構(gòu),例如處理器、數(shù)據(jù)分析器等,為了不必要地模糊本公開的實(shí)施例,這些公知的結(jié)構(gòu)在圖5中未示出。
[0060]下面參考圖6,其示出了適于用來實(shí)現(xiàn)本申請實(shí)施例的終端設(shè)備或服務(wù)器的計(jì)算機(jī)系統(tǒng)600的結(jié)構(gòu)示意圖。
[0061]如圖6所示,計(jì)算機(jī)系統(tǒng)600包括中央處理單元(CPU)601,其可以根據(jù)存儲在只讀存儲器(ROM) 602中的程序或者從存儲部分608加載到隨機(jī)訪問存儲器(RAM) 603中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在RAM 603中,還存儲有系統(tǒng)600操作所需的各種程序和數(shù)據(jù)。CPU 60KROM 602以及RAM 603通過總線604彼此