蔣日健 周麗 江達鑫 馮志偉 張文勇
摘要;該文研究了一個多模式流量監(jiān)控系統(tǒng)的設(shè)計和實現(xiàn),該系統(tǒng)可監(jiān)控PC上各個進程的網(wǎng)速情況,根據(jù)用戶需求對流量進行控制。系統(tǒng)具有默認、安全、智能三種模式,普通模式是根據(jù)大眾使用網(wǎng)絡(luò)應(yīng)用習(xí)慣來分配網(wǎng)絡(luò)流量,安全模式是根據(jù)黑白名單列表來控制網(wǎng)絡(luò)流量,杜絕網(wǎng)絡(luò)流量的浪費和惡意軟件的非法行為,智能模式根據(jù)用戶使用應(yīng)用軟件頻率列表智能識別出軟件優(yōu)先級再分配網(wǎng)絡(luò)流量。本系統(tǒng)利用winpcap成功實現(xiàn)了設(shè)計要求。
關(guān)鍵詞:流量監(jiān)控;winpcap;多模式
中圖分類號:TP393.07 文獻標(biāo)識碼:A 文章編號:1009-3044(2017)07-0032-02
1背景
當(dāng)前社會,Internet技術(shù)的飛速發(fā)展,各種各樣的網(wǎng)絡(luò)應(yīng)用快速普及,使得用戶對于網(wǎng)絡(luò)資源的需求量呈現(xiàn)猛烈增長。作為信息承載工具的網(wǎng)絡(luò),人們對其要求變得越來越高,合理利用流量能讓用戶在不增加網(wǎng)絡(luò)帶寬的情況下提高對流量的使用效率。雖然當(dāng)前市場上流量監(jiān)控系統(tǒng)很多,功能也很強大;但是能夠靈活地適用于各個場合的流量系統(tǒng)卻并不多見,甚至某些流量監(jiān)控系統(tǒng)功能過于泛濫,并不適合日常所需。為此,本文研究了一個具有多模式的,適用于多場合的,簡單易用的流量監(jiān)控系統(tǒng)。
2多模式定義及算法
系統(tǒng)包含了默認模式、安全模式和智能模式,默認模式可以用于大多數(shù)普通網(wǎng)民對網(wǎng)絡(luò)帶寬沒有多大限制和使用的情況;安全模式則用于固定流量的監(jiān)控以及控制惡意軟件的入侵等情況;智能模式有很強的用戶個性化,可以幫助用戶合理的使用網(wǎng)絡(luò)帶寬。不同模式在不同場合下的使用,使得系統(tǒng)可以輕松應(yīng)對日常所需。
2.1默認模式
默認模式是根據(jù)大眾習(xí)慣上使用各類網(wǎng)絡(luò)應(yīng)用的頻率來分配網(wǎng)絡(luò)帶寬的—種模式,此模式也為該軟件的缺省模式。據(jù)各大應(yīng)用下載中心的熱門軟件下載排行榜顯示:聊天應(yīng)用軟件首居榜首,往后依次為音樂軟件、視頻軟件、游戲和工作應(yīng)用軟件。在用戶對于網(wǎng)絡(luò)沒有明確要求的時候,默認模式按照下表優(yōu)先級進行帶寬的分配,以便滿足大眾對于網(wǎng)絡(luò)流量的上網(wǎng)需求。
在該模式下,對各個應(yīng)用軟件沒有設(shè)置流量閾值,獲取流量的多少取決于應(yīng)用需求大小,嚴格按照優(yōu)先級順序來使流量優(yōu)先滿足優(yōu)先級高的應(yīng)用軟件。用戶在該模式下可以查看每個應(yīng)用的流量使用狀態(tài)和占用的端口等信息,若想對網(wǎng)絡(luò)流量有更高的要求,可以選擇安全模式或智能模式。
2.2安全模式
安全模式是基于黑白名單規(guī)則來控制網(wǎng)絡(luò)流量的一種模式,該模式適用于每月流量固定的學(xué)生人群。黑名單是除明確禁止的應(yīng)用軟件以外,其余應(yīng)用軟件都可以共享網(wǎng)絡(luò)流量[r。相反白名單即除明確允許的應(yīng)用軟件以外,其余的應(yīng)用軟件不能分到網(wǎng)絡(luò)流量。面對現(xiàn)如今惡意耗費網(wǎng)絡(luò)流量的應(yīng)用軟件俯拾皆是的現(xiàn)狀,黑白名單杜絕了網(wǎng)絡(luò)流量的浪費和惡意軟件盜取流量的狀況,給用戶一個安全可靠的網(wǎng)絡(luò)環(huán)境。在該模式下,用戶需要先自行選擇黑白名單并向列表里添加規(guī)則條目以適應(yīng)不同人群對網(wǎng)絡(luò)應(yīng)用的不同要求,在使用過程中也可自行增減黑白名單里的規(guī)則,還能實時統(tǒng)計用戶所耗費的流量使用情況,超過當(dāng)月設(shè)置的流量閾值,會彈窗提醒用戶流量告急,以便用戶做出節(jié)省流量或是增加流量的舉動。
2.3智能模式
智能模式是根據(jù)用戶使用網(wǎng)絡(luò)習(xí)慣來分配網(wǎng)絡(luò)帶寬的一種模式。該模式使用配置文件記錄近一個月用戶使用各種網(wǎng)絡(luò)應(yīng)用的頻率,按下表給出各個應(yīng)用軟件的優(yōu)先級。
在該模式下,用戶隨意開啟一個應(yīng)用軟件后,智能識別出用戶所開應(yīng)用軟件在用戶使用軟件頻率列表里的優(yōu)先級,如若當(dāng)前環(huán)境中此優(yōu)先級最高,則立即給予此應(yīng)用軟件所需的帶寬;如若當(dāng)前環(huán)境中還有比此優(yōu)先級更高的優(yōu)先級存在,則先-滿足擁有最高優(yōu)先級的應(yīng)用軟件帶寬,剩余的帶寬再分給此應(yīng)用軟件。智能模式的個性化特別適用于用戶無暇顧及流量使用情況以及對于流量默認設(shè)置不符合實際使用等情況時使用。
3系統(tǒng)設(shè)計
系統(tǒng)分為抓包分析、更新、監(jiān)控等3個模塊,每個模塊使用一個線程執(zhí)行。模塊之間的關(guān)系如圖1所示,系統(tǒng)通過主線程抓包并分析,將原始數(shù)據(jù)記錄到臨時內(nèi)存中,然后利用更新線程,將主線程存儲的數(shù)據(jù)進行整理,并更新到界面上。監(jiān)控模塊則主要用于監(jiān)控是否有新程序加入,并且根據(jù)新程序的程序類型重新分配網(wǎng)絡(luò)帶寬。
3.1抓包分析模塊
抓包分析模塊的初始化參數(shù)是本主機抓取到的原始數(shù)據(jù)包的分析結(jié)果,并將其數(shù)據(jù)記錄到臨時內(nèi)存中,然后繼續(xù)對全網(wǎng)數(shù)據(jù)包進行抓包,抓包后判斷其是否為與其本機通信的ip數(shù)據(jù)包,若是,則將其數(shù)據(jù)記錄到臨時內(nèi)存里,具體流程圖如圖2。
3.2更新模塊
更新模塊負責(zé)對抓包模塊記錄的數(shù)據(jù)包數(shù)據(jù)進行統(tǒng)計并按程序進行顯示在系統(tǒng)界面上,每隔一個時間戳將系統(tǒng)界面上的數(shù)據(jù)清理刪除后,重新將抓包分析的數(shù)據(jù)顯示在系統(tǒng)界面上。
3.3監(jiān)控模塊
監(jiān)控模塊類似于守護線程,在系統(tǒng)模式的啟動過程中,每隔1秒鐘進行一次運行程序分析,根據(jù)運行的程序選擇當(dāng)前模式下相應(yīng)程序類型的優(yōu)先級,再給程序分配網(wǎng)絡(luò)帶寬。在系統(tǒng)模式啟動成功以后,監(jiān)控模塊就負責(zé)一直監(jiān)控主機是否有新程序的加入,當(dāng)有新程序加入的時候,再判斷新程序的程序類型并給他分配網(wǎng)絡(luò)帶寬。
4設(shè)計實現(xiàn)
設(shè)計基于winpcap和Java多線程,實現(xiàn)了一個能夠適應(yīng)多場合的多模式系統(tǒng)。系統(tǒng)利用winpcap可以在windows下進行抓包的特點和java多線程并發(fā)的優(yōu)勢,以及jpcap能讓java對winpcap的完美支持的能力對數(shù)據(jù)包進行抓取,分析并顯示。
4.1開發(fā)采用的技術(shù)
1)Jpcap和winpcap
Jpcap是一個能捕獲和發(fā)送網(wǎng)絡(luò)數(shù)據(jù)包的Java類庫,它為網(wǎng)絡(luò)數(shù)據(jù)包的捕獲提供接口和系統(tǒng)支持,用于Java應(yīng)用程序?qū)W(wǎng)絡(luò)數(shù)據(jù)包的捕獲、分析及處理。jpcap作為一個中間件,它調(diào)用winPcap和libcap庫來給Java提供一個公共的接口,以實現(xiàn)數(shù)據(jù)流量的捕獲。Jpcap與winpcap的完美結(jié)合,使得網(wǎng)絡(luò)流量監(jiān)控一類應(yīng)用的開發(fā)變得更加輕松、靈活。
2)Java和多線程
根據(jù)設(shè)計需要在抓包的同時進行對抓獲的數(shù)據(jù)包進行處理并顯示,以及對模式的實時切換,因此開發(fā)者使用了Java和多線程編程來實現(xiàn)抓包、處理顯示以及模式切換。
4.2系統(tǒng)功能界面
系統(tǒng)初始化界面如圖3,顯示主機運行的進程名,端口以及上下行速度,以及是否對進程設(shè)置了速度保護,還可手動選擇適合自己的模式以及做相應(yīng)的限速管理等。
5結(jié)束語
基于場合的多模式流量監(jiān)控系統(tǒng)實現(xiàn)了對本地應(yīng)用程序的監(jiān)控,達到了預(yù)期的目的。設(shè)計實現(xiàn)了多模式在多場合下的自動適應(yīng),通過測試,無論是普通模式,還是智能模式,系統(tǒng)都能夠良好地支持。
系統(tǒng)在測試當(dāng)中,發(fā)現(xiàn)了以下兩點不足;1)系統(tǒng)在超過一定數(shù)量的應(yīng)用程序同時工作下,更新速度變得緩慢;2)由于系統(tǒng)根據(jù)端口區(qū)分程序,使得系統(tǒng)界面同時顯示多個名字相同程序。后期開發(fā)人員可以通過把名字相同而端口不同的程序進行合并來解決以上兩個問題。