專(zhuān)利名稱(chēng):基于進(jìn)程的流量統(tǒng)計(jì)方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請(qǐng)涉及計(jì)算機(jī)數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種基于進(jìn)程的流量統(tǒng)計(jì)方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的高速發(fā)展,人們?cè)絹?lái)越多的運(yùn)用互聯(lián)網(wǎng)進(jìn)行工作、學(xué)習(xí)、娛樂(lè),在使用互聯(lián)網(wǎng)過(guò)程中,為了獲得更好的使用效果,往往需要把網(wǎng)絡(luò)資源交給最需要的應(yīng)用程序,這時(shí)操作系統(tǒng)中每個(gè)應(yīng)用程序的網(wǎng)絡(luò)流量成了人們關(guān)注的焦點(diǎn)。目前,一般的操作系統(tǒng)中會(huì)顯示整體流量,例如整體發(fā)送的數(shù)據(jù)和接收的數(shù)據(jù)。但是,對(duì)于每個(gè)應(yīng)用程序占用的流量并不能提供詳細(xì)的信息,這樣,用戶(hù)往往很難去區(qū)分究竟是哪個(gè)程序占用了網(wǎng)絡(luò)流量,無(wú)法直觀(guān)的了解網(wǎng)絡(luò)的使用情況,也就無(wú)法對(duì)帶寬進(jìn)行合理的分配和利用。
發(fā)明內(nèi)容
本申請(qǐng)?zhí)峁┮环N基于進(jìn)程的流量統(tǒng)計(jì)方法及系統(tǒng),能夠解決無(wú)法獲取單個(gè)進(jìn)程流量的問(wèn)題。為了解決上述問(wèn)題,本申請(qǐng)公開(kāi)了一種基于進(jìn)程的流量統(tǒng)計(jì)方法,包括以下步驟監(jiān)聽(tīng)操作系統(tǒng)中創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求;獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí)以及所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息;建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中;統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度;將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流
量數(shù)據(jù)。為了解決上述問(wèn)題,本申請(qǐng)還公開(kāi)了一種基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),包括監(jiān)聽(tīng)模塊,用于監(jiān)聽(tīng)操作系統(tǒng)創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求;信息獲取模塊,用于獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí)以及所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息;關(guān)聯(lián)表建立模塊,用于建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中;長(zhǎng)度統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度;和長(zhǎng)度關(guān)聯(lián)模塊,將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流量數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本申請(qǐng)包括以下優(yōu)點(diǎn)本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)通過(guò)將自身加入到網(wǎng)絡(luò)數(shù)據(jù)經(jīng)過(guò)的路徑中,暫時(shí)攔截網(wǎng)絡(luò)數(shù)據(jù),對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理,將每一段網(wǎng)絡(luò)數(shù)據(jù)與所對(duì)應(yīng)的進(jìn)程信息關(guān)聯(lián),并對(duì)每一段網(wǎng)絡(luò)數(shù)據(jù)的長(zhǎng)度進(jìn)行統(tǒng)計(jì),從而能夠?qū)崿F(xiàn)對(duì)單個(gè)進(jìn)程流量的統(tǒng)計(jì)。
圖I是本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)方法實(shí)施例一的流程圖;圖2是本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)方法實(shí)施例二的流程圖;圖3是本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)實(shí)例的系統(tǒng)架構(gòu)圖;圖4是本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;圖5是本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖。
具體實(shí)施例方式為使本申請(qǐng)的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)的說(shuō)明。參照?qǐng)D1,示出本申請(qǐng)的一種基于進(jìn)程的流量統(tǒng)計(jì)方法實(shí)施例一,包括以下步驟步驟101,監(jiān)聽(tīng)操作系統(tǒng)中創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求。當(dāng)每個(gè)應(yīng)用程序請(qǐng)求網(wǎng)絡(luò)數(shù)據(jù)收發(fā)時(shí),會(huì)向操作系統(tǒng)發(fā)送請(qǐng)求,操作系統(tǒng)在收到該請(qǐng)求時(shí),會(huì)首先創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求,本申請(qǐng)通過(guò)設(shè)置監(jiān)聽(tīng)程序,實(shí)時(shí)監(jiān)聽(tīng)系統(tǒng)創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求。例如,通過(guò)監(jiān)聽(tīng)系統(tǒng)對(duì)應(yīng)的操作系統(tǒng)接口,從接口獲取數(shù)據(jù),從而實(shí)現(xiàn)監(jiān)聽(tīng)等等。網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求的次數(shù)根據(jù)請(qǐng)求數(shù)據(jù)量以及單次請(qǐng)求數(shù)據(jù)量來(lái)確定,其中,單次請(qǐng)求數(shù)據(jù)量由網(wǎng)絡(luò)質(zhì)量決定。比如,需要下載一個(gè)IOMB大小的數(shù)據(jù),可以10次請(qǐng)求,每次請(qǐng)求IMB數(shù)據(jù),也可以是5次請(qǐng)求每次請(qǐng)求2MB數(shù)據(jù)。步驟102,獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí)以及所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息。為了區(qū)分不同應(yīng)用程序發(fā)送的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求,保證數(shù)據(jù)收發(fā)的準(zhǔn)確性,系統(tǒng)會(huì)為每一次網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求都創(chuàng)建一個(gè)數(shù)據(jù)包,其中,數(shù)據(jù)包包含真實(shí)數(shù)據(jù)和數(shù)據(jù)包標(biāo)識(shí)。數(shù)據(jù)包標(biāo)識(shí)即相當(dāng)于數(shù)據(jù)包的特征信息,用于進(jìn)行數(shù)據(jù)的區(qū)分。同時(shí),為了保證數(shù)據(jù)包能夠準(zhǔn)確的被對(duì)應(yīng)的應(yīng)用程序接收或者發(fā)送,系統(tǒng)在創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求的時(shí)候,也會(huì)記錄應(yīng)用程序的進(jìn)程信息。網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息的獲取可以采用如下方式獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程標(biāo)識(shí);基于所述進(jìn)程標(biāo)識(shí)查詢(xún)與所述進(jìn)程標(biāo)識(shí)對(duì)應(yīng)的進(jìn)程信息。操作系統(tǒng)在創(chuàng)建進(jìn)程時(shí),便會(huì)給每一個(gè)進(jìn)程分配進(jìn)程標(biāo)識(shí),例如進(jìn)程ID或其他用于唯一識(shí)別一個(gè)進(jìn)程的標(biāo)識(shí)信息,以區(qū)分各個(gè)進(jìn)程,同時(shí)便于查詢(xún)進(jìn)程信息。在創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求時(shí),也會(huì)加入進(jìn)程標(biāo)識(shí)等信息,從而能夠通過(guò)進(jìn)程標(biāo)識(shí)獲取相關(guān)的進(jìn)程信息。步驟103,建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中。 將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中可以通過(guò)將數(shù)據(jù)包標(biāo)識(shí)和進(jìn)程ID相關(guān)聯(lián)的方式實(shí)現(xiàn),也可以通過(guò)將數(shù)據(jù)包標(biāo)識(shí)作為該進(jìn)程的新進(jìn)程信息,并添加到該進(jìn)程原有的進(jìn)程信息中的方式實(shí)現(xiàn)。具體的,關(guān)聯(lián)兩個(gè)數(shù)據(jù)的方式還有很多種,本申請(qǐng)對(duì)此并不限制。
步驟104,統(tǒng)計(jì) 所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度。本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)預(yù)先對(duì)操作系統(tǒng)的數(shù)據(jù)包收發(fā)路徑進(jìn)行改變,將本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)添加在路徑中,也即數(shù)據(jù)包會(huì)經(jīng)過(guò)本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),此時(shí),便可以對(duì)數(shù)據(jù)包長(zhǎng)度(即進(jìn)程流量)進(jìn)行實(shí)時(shí)統(tǒng)計(jì),只要是經(jīng)過(guò)本系統(tǒng)的數(shù)據(jù)便會(huì)進(jìn)行累加。若只有一個(gè)數(shù)據(jù)包,則直接記錄該數(shù)據(jù)包長(zhǎng)度即可,若有多個(gè)數(shù)據(jù)包,可以分別記錄,也可以采用累加的方式記錄。即統(tǒng)計(jì)完一個(gè)數(shù)據(jù)包長(zhǎng)度后,后續(xù)統(tǒng)計(jì)都在原有基礎(chǔ)上進(jìn)行累加,則可以統(tǒng)計(jì)出所有與該進(jìn)程相關(guān)的數(shù)據(jù)包的總長(zhǎng)度。可以理解,因?yàn)橄到y(tǒng)在創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)發(fā)送請(qǐng)求時(shí),會(huì)預(yù)先統(tǒng)計(jì)需要發(fā)送的數(shù)據(jù)包長(zhǎng)度,此時(shí),本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)也可以通過(guò)直接讀取相關(guān)信息的方式來(lái)實(shí)現(xiàn)統(tǒng)計(jì)。但是,對(duì)于網(wǎng)絡(luò)數(shù)據(jù)接收請(qǐng)求時(shí),系統(tǒng)無(wú)法準(zhǔn)確知道需要接收的數(shù)據(jù)包長(zhǎng)度,只能根據(jù)預(yù)期創(chuàng)建容器,給出一個(gè)大體的數(shù)據(jù)包長(zhǎng)度值,此時(shí),可以通過(guò)直接讀取相關(guān)信息的方式來(lái)實(shí)現(xiàn)統(tǒng)計(jì)。當(dāng)然,為了保證數(shù)據(jù)包長(zhǎng)度統(tǒng)計(jì)的準(zhǔn)確性,優(yōu)選前述的實(shí)時(shí)統(tǒng)計(jì)方式,即統(tǒng)計(jì)經(jīng)過(guò)本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)的數(shù)據(jù)包長(zhǎng)度。步驟105,將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流量數(shù)據(jù)。將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián)可以為將當(dāng)前數(shù)據(jù)包長(zhǎng)度作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中。具體可以采用如下方法獲取所述數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識(shí);將該數(shù)據(jù)包長(zhǎng)度信息添加到關(guān)聯(lián)表中具有相同數(shù)據(jù)包標(biāo)識(shí)的進(jìn)程信息中。若前述統(tǒng)計(jì)數(shù)據(jù)包長(zhǎng)度時(shí),統(tǒng)計(jì)的是單個(gè)數(shù)據(jù)包的長(zhǎng)度,此時(shí)在將數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中時(shí)可以采用累加的方式,即,將本次統(tǒng)計(jì)的單個(gè)數(shù)據(jù)包長(zhǎng)度和關(guān)聯(lián)表中原本記錄的數(shù)據(jù)包長(zhǎng)度進(jìn)行累加。若前述統(tǒng)計(jì)數(shù)據(jù)包長(zhǎng)度時(shí),已經(jīng)對(duì)所有經(jīng)過(guò)的數(shù)據(jù)包長(zhǎng)度進(jìn)行過(guò)累加,則可以用得到的數(shù)據(jù)包總長(zhǎng)度直接替換關(guān)聯(lián)表中現(xiàn)有的記錄??梢岳斫?,流量數(shù)據(jù)可以是該進(jìn)程自創(chuàng)建開(kāi)始后的總流量數(shù)據(jù),也可以是預(yù)定時(shí)間內(nèi)的流量數(shù)據(jù),數(shù)據(jù)包長(zhǎng)度的累加也可以采用其他的方式來(lái)進(jìn)行,只要能夠得到需要的流量統(tǒng)計(jì)數(shù)據(jù)。參照?qǐng)D2,示出本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)方法實(shí)施例二,在實(shí)施例一的步驟104之后,還包括以下步驟步驟201,展示所述單個(gè)進(jìn)程流量數(shù)據(jù)。當(dāng)獲取到單個(gè)進(jìn)程流量數(shù)據(jù)后,本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)會(huì)對(duì)流量數(shù)據(jù)進(jìn)行展示。展示的信息包括進(jìn)程名稱(chēng)、流量數(shù)據(jù)(接收和發(fā)送)等等。具體的,展示可以通過(guò)如下方式來(lái)實(shí)現(xiàn)通過(guò)函數(shù),例如OpenProcess、GetModuleFileNameEx>QueryFullProcessImageNameff等從操作系統(tǒng)中獲取進(jìn)程名稱(chēng),并在后臺(tái)服務(wù)器執(zhí)行深度掃描從而獲取進(jìn)程描述信息,進(jìn)程安全信息,下載速度,上傳速度,已下載流量,已上傳流量,連接數(shù)等,并將這些進(jìn)程流量數(shù)據(jù)信息展示在客戶(hù)端。優(yōu)選地,可以根據(jù)用戶(hù)選取其中部分信息進(jìn)行展示,也可以將所有信息都進(jìn)行展示,本申請(qǐng)對(duì)此并不限制。展示的形式可以是浮動(dòng)框、懸浮窗等方式,可以根據(jù)需要設(shè)定。通過(guò)單個(gè)進(jìn)程流量數(shù)據(jù)的展示,可以提示用戶(hù),用戶(hù)可以根據(jù)需要限制或者關(guān)閉某些進(jìn)程網(wǎng)絡(luò)數(shù)據(jù)的獲取。下面以windows操作系統(tǒng)為具體實(shí)例進(jìn)行詳細(xì)說(shuō)明。參照?qǐng)D3,本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)加載在系統(tǒng)AFD (Ancillaryfunctions driver,輔助功能驅(qū)動(dòng)程序)層和 TDI (Transport Driver Interface,傳輸驅(qū)動(dòng)程序接口)層之間。其中,AFD層用于根據(jù)應(yīng)用程序的請(qǐng)求來(lái)實(shí)現(xiàn)網(wǎng)路數(shù)據(jù)的收發(fā)。AFD層提供了創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(tīng)(Listen)等網(wǎng)絡(luò)接口,這些接口供應(yīng)用程序使用,同時(shí)TDI層程序相對(duì)應(yīng)也提供創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(tīng)(Listen)等處理接口,應(yīng)用程序調(diào)用AFD層程序的創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(tīng)(Listen)后,具體生成TCP、UDP、IP數(shù)據(jù)由TCP/IP層程序負(fù)責(zé)。為此,本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)通過(guò)設(shè)置與AFD層和TDI層對(duì)應(yīng)的接口,例如創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(tīng)(Listen)等接口,并將自身插入AFD層和TDI層之間來(lái)獲取具體的流量數(shù)據(jù)。具體的做法為,本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)在被加載后,會(huì)調(diào)用操作系統(tǒng)中的加載函數(shù),例如IoAttachDeviceToDeviceStackSafe函數(shù)。將基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)本身加入到AFD和TDI層之間,從而攔截AFD層傳給TDI層的網(wǎng)絡(luò)數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行處理,然后再傳輸給TDI層。此處的加載可以是系統(tǒng)自動(dòng)加載,也可以由人為控制。當(dāng)本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)后,會(huì)向AFD層提供Create、Close、InternalControl等接口,AFD層的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求以及收發(fā)數(shù)據(jù)包等數(shù)據(jù)則會(huì)通過(guò)這些接口經(jīng)過(guò)本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)。因此,本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)便可以根據(jù)數(shù)據(jù)包標(biāo)識(shí)等信息來(lái)確定進(jìn)程ID,從而將數(shù)據(jù)包標(biāo)識(shí)添加到對(duì)應(yīng)的進(jìn)程信息中,當(dāng)數(shù)據(jù)包經(jīng)過(guò)本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)時(shí),便可以實(shí)現(xiàn)實(shí)時(shí)統(tǒng)計(jì),從而確定單個(gè)進(jìn)程的流量數(shù)據(jù)。優(yōu)選地,在得到單個(gè)進(jìn)程的流量數(shù)據(jù)后,基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)可以將這些流量數(shù)據(jù)傳送到應(yīng)用程序界面展現(xiàn)給用戶(hù)。為了保證數(shù)據(jù)收發(fā)的連續(xù)性,最后,基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)會(huì)將網(wǎng)絡(luò)數(shù)據(jù)繼續(xù)傳送給TDI層繼續(xù)處理。本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)通過(guò)將自身加入到網(wǎng)絡(luò)數(shù)據(jù)經(jīng)過(guò)的路徑中,暫時(shí)攔截網(wǎng)絡(luò)數(shù)據(jù),對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理,將每一段網(wǎng)絡(luò)數(shù)據(jù)與所對(duì)應(yīng)的進(jìn)程信息關(guān)聯(lián),并對(duì)每一段網(wǎng)絡(luò)數(shù)據(jù)的長(zhǎng)度進(jìn)行統(tǒng)計(jì),從而能夠?qū)崿F(xiàn)對(duì)單個(gè)進(jìn)程流量的統(tǒng)計(jì)。另外,在操作系統(tǒng)中,通過(guò)將本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)加入AFD層和TDI層的方式,通過(guò)暫時(shí)攔截AFD層的網(wǎng)絡(luò)數(shù)據(jù),并將進(jìn)程信息加入,然后再放行的方式,可以快速的獲取到單個(gè)進(jìn)程流量,并不會(huì)影響操作系統(tǒng)的正常工作。參照?qǐng)D4,示出本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)實(shí)施例一,包括監(jiān)聽(tīng)模塊10、信息獲取模塊20、關(guān)聯(lián)表建立模塊30、長(zhǎng)度統(tǒng)計(jì)模塊40和長(zhǎng)度關(guān)聯(lián)模塊50。監(jiān)聽(tīng)模塊10,用于監(jiān)聽(tīng)系統(tǒng)創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求。
進(jìn)程信息獲取模塊20,用于獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí),基于所述數(shù)據(jù)包標(biāo)識(shí)獲取所述數(shù)據(jù)包對(duì)應(yīng)的進(jìn)程信息。優(yōu)選地,進(jìn)程信息獲取模塊20包括進(jìn)標(biāo)識(shí)獲取單元和進(jìn)程信息獲取單元。進(jìn)程標(biāo)識(shí)獲取單元,用于獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程標(biāo)識(shí)。進(jìn)程信息獲取單元,用于基于所述進(jìn)程標(biāo)識(shí)查詢(xún)與所述進(jìn)程標(biāo)識(shí)對(duì)應(yīng)的進(jìn)程信息。關(guān)聯(lián)表建立 模塊30,用于建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中。優(yōu)選地,關(guān)聯(lián)表建立模塊30包括進(jìn)程信息添加單元或關(guān)聯(lián)單元。進(jìn)程信息添加單元,用于將數(shù)據(jù)包標(biāo)識(shí)作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中。關(guān)聯(lián)單元,用于將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的進(jìn)程標(biāo)識(shí)關(guān)聯(lián)。長(zhǎng)度統(tǒng)計(jì)模塊40,用于統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度。優(yōu)選地,長(zhǎng)度統(tǒng)計(jì)模塊40包括讀取單元或?qū)崟r(shí)統(tǒng)計(jì)單元。讀取單元,用于從系統(tǒng)中讀取長(zhǎng)度信息。實(shí)時(shí)統(tǒng)計(jì)單元,用于統(tǒng)計(jì)實(shí)時(shí)經(jīng)過(guò)的數(shù)據(jù)包長(zhǎng)度。長(zhǎng)度關(guān)聯(lián)模塊50,用于長(zhǎng)度關(guān)聯(lián)模塊,將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流量數(shù)據(jù)。優(yōu)選地,長(zhǎng)度關(guān)聯(lián)模塊50包括長(zhǎng)度信息添加單元,用于將當(dāng)前數(shù)據(jù)包長(zhǎng)度作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中??梢岳斫?,長(zhǎng)度關(guān)聯(lián)模塊還可以包括數(shù)據(jù)包標(biāo)識(shí)獲取單元和長(zhǎng)度信息添加單元。數(shù)據(jù)包標(biāo)識(shí)獲取單元,用于獲取當(dāng)前數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識(shí)。長(zhǎng)度信息添加單元,用于將當(dāng)前數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中具有相同數(shù)據(jù)包標(biāo)識(shí)的進(jìn)程信息中。優(yōu)選地,網(wǎng)絡(luò)數(shù)據(jù)獲取模塊從windows操作系統(tǒng)的AFD層監(jiān)聽(tīng)其創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求的操作。優(yōu)選地,系統(tǒng)還包括數(shù)據(jù)傳輸模塊,用于將關(guān)聯(lián)后的數(shù)據(jù)包長(zhǎng)度和對(duì)應(yīng)的進(jìn)程信息傳輸給TDI層進(jìn)行后續(xù)處理。參照?qǐng)D5,示出本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)實(shí)施例二,該系統(tǒng)還包括展示模塊60,用于展示所述單個(gè)進(jìn)程流量數(shù)據(jù)。具體的,展示可以通過(guò)如下方式來(lái)實(shí)現(xiàn)通過(guò)函數(shù),例如OpenProcess、GetModuleFileNameEx^QueryFullProcessImageNameff 等從操作系統(tǒng)中獲取進(jìn)程名稱(chēng),并在后臺(tái)服務(wù)器執(zhí)行深度掃描從而獲取進(jìn)程描述信息,進(jìn)程安全信息,下載速度,上傳速度,已下載流量,已上傳流量,連接數(shù)等,并將這些進(jìn)程流量數(shù)據(jù)展示在客戶(hù)端。優(yōu)選地,可以根據(jù)用戶(hù)選取其中部分信息進(jìn)行展示,也可以將所有信息都進(jìn)行展示,本申請(qǐng)對(duì)此并不限制。展示的形式可以是浮動(dòng)框、懸浮窗等方式,可以根據(jù)需要設(shè)定本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)可以作為獨(dú)立的應(yīng)用程序,也可以作為插件或者某一應(yīng)用程序的功能模塊安裝在客戶(hù)端(電腦或手機(jī)等),通過(guò)與客戶(hù)端中的操作系統(tǒng)的交互來(lái)實(shí)現(xiàn)流量數(shù)據(jù)統(tǒng)計(jì)。本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)通過(guò)將自身加入到網(wǎng)絡(luò)數(shù)據(jù)經(jīng)過(guò)的路徑中,暫時(shí)攔截網(wǎng)絡(luò)數(shù)據(jù),對(duì)網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行處理,將每一段網(wǎng)絡(luò)數(shù)據(jù)與所對(duì)應(yīng)的進(jìn)程信息關(guān)聯(lián),并對(duì)每一段網(wǎng)絡(luò)數(shù)據(jù)的長(zhǎng)度進(jìn)行統(tǒng)計(jì),從而能夠?qū)崿F(xiàn)對(duì)單個(gè)進(jìn)程流量的統(tǒng)計(jì)。本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見(jiàn)即可。對(duì)于系統(tǒng)實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上對(duì)本申請(qǐng)所提供的基于進(jìn)程的流量統(tǒng)計(jì)方法及系統(tǒng)進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本申請(qǐng)的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本申請(qǐng)的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請(qǐng)的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本 申請(qǐng)的限制。
權(quán)利要求
1.一種基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,包括以下步驟監(jiān)聽(tīng)操作系統(tǒng)中創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求;獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí)以及所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息;建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中;統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度; 將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流量數(shù)據(jù)。
2.如權(quán)利要求I所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述獲取網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息包括獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程標(biāo)識(shí);基于所述進(jìn)程標(biāo)識(shí)查詢(xún)與所述進(jìn)程標(biāo)識(shí)對(duì)應(yīng)的進(jìn)程信息。
3.如權(quán)利要求2所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中包括將數(shù)據(jù)包標(biāo)識(shí)作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中;或?qū)?shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的進(jìn)程標(biāo)識(shí)關(guān)聯(lián)。
4.如權(quán)利要求I所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián)包括將當(dāng)前數(shù)據(jù)包長(zhǎng)度作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中。
5.如權(quán)利要求I所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián)包括獲取當(dāng)前數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識(shí);將當(dāng)前數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中具有相同數(shù)據(jù)包標(biāo)識(shí)的進(jìn)程信息中。
6.如權(quán)利要求I所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述監(jiān)聽(tīng)系統(tǒng)創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求包括從操作系統(tǒng)的輔助功能驅(qū)動(dòng)程序?qū)颖O(jiān)聽(tīng)其創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求的操作。
7.如權(quán)利要求6所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述方法還包括 將包含有數(shù)據(jù)包長(zhǎng)度的進(jìn)程信息傳輸給傳輸驅(qū)動(dòng)程序接口層。
8.如權(quán)利要求I所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度包括從系統(tǒng)中讀取長(zhǎng)度信息;或統(tǒng)計(jì)實(shí)時(shí)經(jīng)過(guò)的數(shù)據(jù)包長(zhǎng)度。
9.如權(quán)利要求I至8任一項(xiàng)所述的基于進(jìn)程的流量統(tǒng)計(jì)方法,其特征在于,所述方法還包括展示所述單個(gè)進(jìn)程流量數(shù)據(jù)。
10.一種基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,包括監(jiān)聽(tīng)模塊,用于監(jiān)聽(tīng)操作系統(tǒng)創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求;信息獲取模塊,用于獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí)以及所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息;關(guān)聯(lián)表建立模塊,用于建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中;長(zhǎng)度統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度;和長(zhǎng)度關(guān)聯(lián)模塊,將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流量數(shù)據(jù)。
11.如權(quán)利要求10所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述信息獲取模塊包括進(jìn)程標(biāo)識(shí)獲取單元,用于獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程標(biāo)識(shí);和進(jìn)程信息獲取單元,用于基于所述進(jìn)程標(biāo)識(shí)查詢(xún)與所述進(jìn)程標(biāo)識(shí)對(duì)應(yīng)的進(jìn)程信息。
12.如權(quán)利要求10所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述關(guān)聯(lián)表建立模塊包括進(jìn)程信息添加單元,用于將數(shù)據(jù)包標(biāo)識(shí)作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中;或關(guān)聯(lián)單元,用于將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的進(jìn)程標(biāo)識(shí)關(guān)聯(lián)。
13.如權(quán)利要求10所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述長(zhǎng)度關(guān)聯(lián)模塊包括長(zhǎng)度信息添加單元,用于將當(dāng)前數(shù)據(jù)包長(zhǎng)度作為對(duì)應(yīng)進(jìn)程的新進(jìn)程信息添加到關(guān)聯(lián)表中對(duì)應(yīng)進(jìn)程原有的進(jìn)程信息中。
14.如權(quán)利要求10所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述長(zhǎng)度關(guān)聯(lián)模塊包括數(shù)據(jù)包標(biāo)識(shí)獲取單元,用于獲取當(dāng)前數(shù)據(jù)包的數(shù)據(jù)包標(biāo)識(shí);長(zhǎng)度信息添加單元,用于將當(dāng)前數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中具有相同數(shù)據(jù)包標(biāo)識(shí)的進(jìn)程息中。
15.如權(quán)利要求10所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述監(jiān)聽(tīng)模塊從操作系統(tǒng)的輔助功能驅(qū)動(dòng)程序?qū)颖O(jiān)聽(tīng)其創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求的操作。
16.如權(quán)利要求15所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述系統(tǒng)還包括 數(shù)據(jù)傳輸模塊,用于將包含有數(shù)據(jù)包長(zhǎng)度的進(jìn)程信息傳輸給傳輸驅(qū)動(dòng)程序接口層。
17.如權(quán)利要求10所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述長(zhǎng)度統(tǒng)計(jì)模塊包括讀取單元,用于從系統(tǒng)中讀取長(zhǎng)度信息;或?qū)崟r(shí)統(tǒng)計(jì)單元,用于統(tǒng)計(jì)實(shí)時(shí)經(jīng)過(guò)的數(shù)據(jù)包長(zhǎng)度。
18.如權(quán)利要求10至17任一項(xiàng)所述的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng),其特征在于,所述系統(tǒng)還包括展示模塊,用于展示所述單個(gè)進(jìn)程流量數(shù)據(jù)。
全文摘要
本申請(qǐng)?zhí)峁┝艘环N基于進(jìn)程的流量統(tǒng)計(jì)方法,包括以下步驟監(jiān)聽(tīng)操作系統(tǒng)中創(chuàng)建的網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求;獲取所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包標(biāo)識(shí)以及所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求對(duì)應(yīng)的進(jìn)程信息;建立數(shù)據(jù)包和所述進(jìn)程的關(guān)聯(lián)表,將數(shù)據(jù)包標(biāo)識(shí)和對(duì)應(yīng)進(jìn)程的關(guān)聯(lián)關(guān)系添加到關(guān)聯(lián)表中;統(tǒng)計(jì)所述網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請(qǐng)求中的數(shù)據(jù)包長(zhǎng)度;將統(tǒng)計(jì)的數(shù)據(jù)包長(zhǎng)度添加到關(guān)聯(lián)表中,并與對(duì)應(yīng)進(jìn)程相關(guān)聯(lián),得到所述進(jìn)程的流量數(shù)據(jù)。本申請(qǐng)還提供了一種實(shí)現(xiàn)前述方法的基于進(jìn)程的流量統(tǒng)計(jì)系統(tǒng)。本申請(qǐng)的基于進(jìn)程的流量統(tǒng)計(jì)方法及系統(tǒng),能夠基于進(jìn)程進(jìn)行流量統(tǒng)計(jì),得到單個(gè)進(jìn)程的流量統(tǒng)計(jì)數(shù)據(jù)。
文檔編號(hào)H04L12/26GK102629909SQ20121009118
公開(kāi)日2012年8月8日 申請(qǐng)日期2012年3月30日 優(yōu)先權(quán)日2012年3月30日
發(fā)明者丁振, 邊陸, 雷宇 申請(qǐng)人:奇智軟件(北京)有限公司