專利名稱:帶寬占用管理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種帶寬占用管理方法及裝置。
背景技術(shù):
帶寬是指在固定的時間內(nèi)可以傳輸?shù)臄?shù)據(jù)的數(shù)量。在互聯(lián)網(wǎng)領(lǐng)域,帶寬通俗的解釋是用戶的上網(wǎng)速度。通常,用戶通過互聯(lián)網(wǎng)服務(wù)提供商獲得一定帶寬的互聯(lián)網(wǎng)接入服務(wù),從而可以使用計算機等主機設(shè)備訪問互聯(lián)網(wǎng)。而用戶在使用計算機訪問網(wǎng)絡(luò)時,有時會同時打開不止一個需要訪問網(wǎng)絡(luò)的應(yīng)用程序,在互聯(lián)網(wǎng)服務(wù)提供商提供的網(wǎng)絡(luò)帶寬一定的情況下,如果用戶計算機上同時運行的需要訪問網(wǎng)絡(luò)的應(yīng)用程序過多,則可能會因總帶寬不 足造成某些訪問互聯(lián)網(wǎng)的應(yīng)用程序運行不夠流暢,或長時間等待,甚至因等待超時而無法正常獲得數(shù)據(jù)。例如在用戶運行了一些具有下載功能的軟件時,如下載工具軟件、網(wǎng)絡(luò)視頻軟件,其下載功能有的采用了搶占式的工作方式,會造成此類軟件在運行時,對帶寬的占用率過高,從而造成其它的應(yīng)用程序無法獲得正常運行所需的帶寬。有些具有下載功能的軟件為了解決自身運行時帶寬占用率過高的問題,為用戶提供了“限速模式”的設(shè)置接口,以便用戶在使用時,可以對軟件的帶寬占用進行設(shè)置和調(diào)整。然而由于每款軟件是各自提供各自的設(shè)置接口給用戶,然后由用戶按照自己的需要對提供“限速模式”設(shè)置接口的軟件逐個進行網(wǎng)絡(luò)帶寬占用的限制性設(shè)置,因此,如果某款軟件本身不提供“限速模式”的設(shè)置接口,就無法對其進行限速,進而無法達到帶寬調(diào)節(jié)的目的。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的帶寬占用管理方法及裝置。依據(jù)本發(fā)明的一個方面,提供了一種用于帶寬占用管理方法,包括查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息;根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程;至少監(jiān)控所述系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為;如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制;其中,所述進程識別庫中還保存每個保護類進程與至少一個限速類進程之間的對應(yīng)關(guān)系;所述如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制包括如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對與所述保護類進程具有對應(yīng)關(guān)系的限速類進程啟用限速機制??蛇x的,還包括至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況;所述對相應(yīng)的所述限速類進程啟用限速機制包括如果監(jiān)控到所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理??蛇x的,所述通過對相應(yīng)的限速類進程的數(shù)據(jù)包進行丟包處理予以限速包括所述相應(yīng)的限速類進程的超過預(yù)置閾值的下行的數(shù)據(jù)包進行丟棄。可選的,所述至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況包括識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程;統(tǒng)計所述相應(yīng)的限速類進程和/或保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量;根據(jù)所述數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況。可選的,至少通過下述方式識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程根據(jù)探測到的經(jīng)由主機設(shè)備傳輸?shù)妮斎胼敵稣埱蟀麵RP中的文件對象獲知對應(yīng)的進程信息;根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,獲知所述IRP中的數(shù)據(jù)包所屬的進程。可選的,還包括在傳輸驅(qū)動程序接口 TDI層和輔助功能驅(qū)動程序AFD層之間增加 第三方驅(qū)動程序,所述第三方驅(qū)動程序獲得流經(jīng)所述TDI層和AFD層之間的數(shù)據(jù)信息;所述對相應(yīng)的限速類進程啟用限速機制具體包括通過所述TDI層和AFD層之間的第三方驅(qū)動程序,對相應(yīng)的限速類進程啟用限速機制。根據(jù)本發(fā)明的另一方面,提供了一種帶寬占用管理裝置,包括進程查詢單元,用于查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息;進程類別查詢單元,用于根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程;第一監(jiān)控單元,用于至少監(jiān)控所述系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為;限速單元,用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制;其中,所述進程識別庫還保存有每個保護類進程與至少一個限速類進程之間的對應(yīng)關(guān)系;所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對與所述保護類進程具有對應(yīng)關(guān)系的限速類進程啟用限速機制??蛇x的,還包括第二監(jiān)控單元,用于至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況;所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟??蛇x的,所述限速單元具體包括第一限速子單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且所述限速類進程和/保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的超過預(yù)置閾值的下行的數(shù)據(jù)包進行丟棄。可選的,所述第二監(jiān)控單元具體包括識別單元,用于識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程;統(tǒng)計單元,用于統(tǒng)計所述相應(yīng)的限速類進程和/或保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量;帶寬判斷單元,用于根據(jù)所述數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況。可選的,所述識別單元具體包括第一識別子單元,用于根據(jù)探測到的經(jīng)由主機設(shè)備傳輸?shù)腎RP中的文件對象獲知對應(yīng)的進程信息;第二識別子單元,用于根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,獲知所述IRP中數(shù)據(jù)包所屬的進程。
可選的,還包括驅(qū)動單元,用于在傳輸驅(qū)動程序接口 TDI層和輔助功能驅(qū)動程序AFD層之間增加第三方驅(qū)動程序,所述第三方驅(qū)動程序獲得流經(jīng)所述TDI層和AFD層之間的數(shù)據(jù)信息;所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則通過所述第三方驅(qū)動程序?qū)λ鱿鄳?yīng)的所述限速類進程啟用限速機制。根據(jù)本發(fā)明的帶寬占用管理方法,可以查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息;根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程,可以獲取系統(tǒng)中當前運行進程的類別信息,從而區(qū)分出當前系統(tǒng)中運行的進程哪些是需要進行限速的類別,哪些是需要保護的類別;至少監(jiān)控所述系統(tǒng)當前運行的保護類進程的網(wǎng)絡(luò)訪問行為,如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制。
由此可見,在需要管理進程帶寬占用以保證屬于保護類的進程的帶寬時,可以根據(jù)系統(tǒng)當前運行進程中的所述保護類進程是否有網(wǎng)絡(luò)訪問行為,如果有則對相應(yīng)的所述限速類進程啟用限速機制,減少了其對帶寬的占用,從而增加了保護類進程對應(yīng)程序的帶寬占用,從網(wǎng)絡(luò)傳輸?shù)慕嵌缺WC了保護類進程的流暢運行。由此提供的帶寬占用管理方法適用于計算機中的多數(shù)應(yīng)用程序,無需每款軟件各自開發(fā)自身的限速技術(shù),也無需每款軟件都為用戶提供限速模式的設(shè)置接口,即使某個進程沒有提供限速模式的接口設(shè)置,甚至沒有提供限速功能,也可以采用本發(fā)明的技術(shù)方案對其進行限速。上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其它的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖I示出了根據(jù)本發(fā)明一個實施例的帶寬占用管理方法流程圖;圖2示出了根據(jù)本發(fā)明一個實施例的程序?qū)哟问疽鈭D;圖3示出了根據(jù)本發(fā)明一個實施例的帶寬占用管理裝置示意圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。請參閱圖1,其示出了根據(jù)本發(fā)明一個實施例的用于調(diào)節(jié)帶寬占用的方法流程圖。該方法實施例包括以下步驟SlOl :查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息;
一般的在f呆作系統(tǒng)啟動后,都可以通過啟動一系列的進程來執(zhí)彳丁或完成系統(tǒng)或者用戶等發(fā)起的任務(wù),如用戶啟動游戲進程來進行娛樂活動,啟動下載進程來下載互聯(lián)網(wǎng)上的資源??梢詫ο到y(tǒng)當前運行的進程進行查詢,來獲取系統(tǒng)當前運行的進程的進程信息。具體在獲取系統(tǒng)當前運行的進程的進程信息時,可以通過使用系統(tǒng)API函數(shù)對系統(tǒng)當前運行的進程進行查詢,例如在Windows操作系統(tǒng)中,可以使用ZwQuerySystemInformationO函數(shù)來查詢和獲取系統(tǒng)當前運行的進程的進程信息。進一步的還可以將獲取到的系統(tǒng)當前運行的進程的進程信息保存于一定的數(shù)據(jù)結(jié)構(gòu)中,以備使用。S102 :根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程;在系統(tǒng)當前運行進程中,可能存在對網(wǎng)絡(luò)帶寬占用較高的進程,例如下載工具軟件相應(yīng)的進程,或者一些網(wǎng)絡(luò)影音軟件為了實現(xiàn)高速的網(wǎng)絡(luò)傳輸使用了諸如點對點傳輸之類的下載技術(shù),造成這類軟件在運行時其相應(yīng)的進程也會占用較多的網(wǎng)絡(luò)帶寬。這些對網(wǎng)絡(luò)帶寬占用較高的進程在啟動后,會對其他進程的網(wǎng)絡(luò)帶寬形成擠占,造成其他進程無法·獲得足夠的帶寬而無法流暢運行。比如如果一個用戶一邊使用下載工具軟件下載互聯(lián)網(wǎng)資源,一邊瀏覽網(wǎng)頁時,瀏覽器打開網(wǎng)頁的速度可能就會因為下載工具軟件進程占用了過多的帶寬而非常緩慢;又比如,用戶在使用網(wǎng)絡(luò)影音軟件觀看視頻時按下暫停鍵,一部分網(wǎng)絡(luò)影音軟件并不會停止網(wǎng)絡(luò)傳輸,其對應(yīng)的進程依然在下載當前影片,而使得其網(wǎng)絡(luò)帶寬占用依然很高,此時如果用戶又打開了網(wǎng)絡(luò)游戲的進程,就會因網(wǎng)絡(luò)游戲進程得不到所需的網(wǎng)絡(luò)帶寬而無法流暢運行。在本發(fā)明實施例提供的方法中,可以根據(jù)實際需要對程序的進程進行分類,并將進程信息和進程類別的關(guān)系保存在進程識別庫中。具體在對進程進行分類時,可以將進程分為保護類進程和限速類進程兩個類別,比如根據(jù)實際需要希望保護其帶寬(網(wǎng)速)的進程分為保護類進程,如游戲進程、瀏覽器;將可能會占用大量帶寬、造成對其他進程影響的BT等下載類進程分為限速類進程。當然,本領(lǐng)域技術(shù)人員可以理解,哪些進程被分為是保護類進程,哪些進程被分為是限速類進程,可以根據(jù)實際需要靈活分配,本發(fā)明實施例對此并沒有限制。當然在實際應(yīng)用中還可以再增加一個“其他類”便于保存和識別除了上述保護類進程和限速類進程兩個類別之外的進程,例如不訪問網(wǎng)絡(luò),或者對網(wǎng)絡(luò)訪問極少的系統(tǒng)進程都可以保存在其他類進程中,此外還可以將無法識別的進程保存其他類中,如一些新發(fā)布的應(yīng)用程序?qū)?yīng)的進程,可能一定的時期內(nèi)無法及時獲知其網(wǎng)絡(luò)行為是需要保護的還是需要限速的,此時,可以將其暫時保存在其他類中,待進一步分析確定后,再將其移動至保護類進程或限速類進程中。在實際應(yīng)用中,還可以根據(jù)需要進一步增加其他的進程類別,以及定期或不定期的對進程識別庫中的類別信息或每個類別的進程信息進行更新,以收錄新出現(xiàn)的進程信息,或?qū)M程識別庫中的類別或進程進行調(diào)整等,本發(fā)明實施例對此并沒有限制。在將進程信息與其所屬類別的對應(yīng)關(guān)系保存在進程識別庫中時,可以將保護類進程的進程標識,進程名稱,進程說明,進程圖標,進程對應(yīng)的文件路徑等信息保存在進程識別庫中;對于限速類進程可以將限速類進程的進程信息,進程對應(yīng)的文件名稱,進程對應(yīng)的限速參數(shù),進程限速的持續(xù)時間等信息保存在進程識別庫中。例如對于保護類進程中的游戲進程,可以保存的信息有游戲標識、游戲名稱、游戲說明、游戲圖標、文件路徑、需要限速的進程列表等信息;限速類進程可以保存的信息包括進程標識、進程文件名、下載限速閥值、下載限速持續(xù)時間等信息。本領(lǐng)域技術(shù)人員可以理解,進程識別庫中為了使得進程描述更加全面,可以盡量多的保存各種進程信息,比如前述舉例的若干種進程信息,但是,在實際應(yīng)用中,也可以根據(jù)不同的實際需要,對保存的進程信息進行靈活裁剪,比如,在某些情況下,可以只保存進程標識或者進程名稱,即只要能標識出該進程具體是什么進程即可。再比如,進程的限速參數(shù)、限速持續(xù)時間等等,可以保存的進程識別庫,也可以保存在其他數(shù)據(jù)庫中,本發(fā)明實施例對此并沒有限制??蛇x的,考慮到一些保護類進程在一些特定的限速類進程運行時,會因為這些特定的限速類進程占用大量的帶寬而無法流暢運行,而其他的限速類進程對這些保護類進程的影響可能較小,甚至可以忽略不計。因此,在進程識別庫中,還可以保存保護類與限速類進程的對應(yīng)關(guān)系,這種對應(yīng)關(guān)系可以是一對一的,即一個保護類進程對應(yīng)一個限速類進程,比如保護類進程I對應(yīng)限速類進程1,保護類進程2對應(yīng)限速類進程2等等;也可以是一對
多的關(guān)系,即一個保護類進程可以對應(yīng)多個限速類進程,比如保護類進程I對應(yīng)于限速類進程2和限速類進程3,保護類進程2對應(yīng)于限速類進程4、5、6等。還可能多個保護類進程都應(yīng)用于相同的一個或多個限速類進程。當然,可選的,在進程識別庫中還可以只保存進程信息與進程所屬類別的對應(yīng)關(guān)系,而沒有具體保存哪個保護類進程對應(yīng)著哪個限速類進程,這種情況下,可以認為所有保護類進程對應(yīng)的是所有限速類進程,進而,只要需要對限速類進程啟用限速機制時,對所有限速類進程都啟用限速機制即可。進程識別庫可以保存在計算機設(shè)備的存儲設(shè)備上,比如物理硬盤中,由于計算機內(nèi)存設(shè)備有著相對其他存儲設(shè)備較快的訪問速度,可以將進程識別庫由其他存儲設(shè)備加載到內(nèi)存設(shè)備中預(yù)設(shè)的緩沖區(qū)中,以實現(xiàn)更快地識別進程所屬的類別。例如,可以在系統(tǒng)啟動時將進程識別庫加載到內(nèi)存中。在根據(jù)步驟SlOl獲得系統(tǒng)當前運行的進程信息之后,可以根據(jù)獲取到的系統(tǒng)當前運行的進程的進程信息查詢進程識別庫,獲知系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程。具體實現(xiàn)時,可以將獲取到的系統(tǒng)當前運行的進程的進程信息在進程識別庫中一一查詢,確定系統(tǒng)當前運行的進程是否屬于進程識別庫中的保護類進程或限速類進程,進而獲知系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程。如前文所述,在進程識別庫中還可以保存其他進程類別的信息,因此在進程識別庫中保存有其他進程類別信息時,也可以通過查詢進程識別庫,獲知系統(tǒng)當前運行的進程是否屬于其他的進程類別。S103 :至少監(jiān)控所述系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為;如果系統(tǒng)當前運行的進程中存在保護類進程,可以對系統(tǒng)當前運行的保護類進程的網(wǎng)絡(luò)行為進行監(jiān)控。參見圖2,具體實現(xiàn)對系統(tǒng)當前運行的保護類進程的網(wǎng)絡(luò)行為進行監(jiān)控時,可以通過在TDI (Transport Driver Interface,傳輸驅(qū)動程序接口)層和AFD(Ancillary functions driver,輔助功能驅(qū)動程序)層加入的第三方驅(qū)動程序來實現(xiàn)。AFD層驅(qū)動程序是系統(tǒng)提供的用于根據(jù)應(yīng)用程序的請求來實現(xiàn)網(wǎng)路數(shù)據(jù)的收發(fā)的驅(qū)動程序,提供了創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(Listen)等網(wǎng)絡(luò)接口,這些接口供應(yīng)用程序使用,同時TDI層程序相對應(yīng)也提供創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(Listen)等處理接口,應(yīng)用程序調(diào)用AFD層程序的創(chuàng)建(Create)、鏈接(Connect)、監(jiān)聽(Listen)后,具體生成TCP, UDP, IP數(shù)據(jù)由TCP/IP層程序負責。在本實施例提供的方法中,可以將第三方驅(qū)動程序加入到AFD層和TDI層之間,這樣,系統(tǒng)中運行的進程一旦網(wǎng)絡(luò)訪問行為,原本經(jīng)過AFD層和TDI層的數(shù)據(jù),就會自行經(jīng)過此第三方驅(qū)動程序,進而就可以實現(xiàn)第三方驅(qū)動程序?qū)?shù)據(jù)的處理。比如,通過TDI_Creat例程,就可以對TDI層創(chuàng)建網(wǎng)絡(luò)連接的行為進行監(jiān)控,查詢到當前系統(tǒng)中具有網(wǎng)絡(luò)連接的進程信息;又攔截windows網(wǎng)絡(luò)系統(tǒng)的Connect例程,當有程序聯(lián)網(wǎng)時進行進程監(jiān)控。從而,可以通過所述第三方驅(qū)動程序,來實現(xiàn)對系統(tǒng)中運行的進程的網(wǎng)絡(luò)訪問行為的監(jiān)控,包括對系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為的監(jiān)控??蛇x的,除了可以監(jiān)控到保護類進程是否有網(wǎng)絡(luò)行為外,還可以監(jiān)控到保護類進程對網(wǎng)絡(luò)帶寬的具體占用情況,比如具體在監(jiān)控時,可以先識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包(比如,所有上傳和下載的socket數(shù)據(jù)包)所屬的進程,進而統(tǒng)計相應(yīng)的保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量,根據(jù)相應(yīng)的保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定保·護類進程對網(wǎng)絡(luò)帶寬的占用情況。可選的,通過上述方式,除了可以對保護類進程的網(wǎng)絡(luò)訪問行為進行監(jiān)控外,采用雷同的技術(shù)方案也可以實現(xiàn)對限速類進程的網(wǎng)絡(luò)訪問行為進行監(jiān)控。例如,對限速類進程的網(wǎng)絡(luò)訪問行為進行監(jiān)控,一方面可以是對限速類進程是否發(fā)生網(wǎng)絡(luò)訪問進行監(jiān)控,另一方面可以更具體地對限速類進程對網(wǎng)絡(luò)帶寬的占用情況進行監(jiān)控。具體在監(jiān)控時,可以先識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程,進而統(tǒng)計相應(yīng)的限速類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量,根據(jù)相應(yīng)的限速類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定限速類進程對網(wǎng)絡(luò)帶寬的占用情況。在具體實現(xiàn)時,可以通過將第三方驅(qū)動程序加入到AFD層和TDI層之間,原本經(jīng)過AFD層和TDI層的數(shù)據(jù),就會自行經(jīng)過此第三方驅(qū)動程序,進而由第三方驅(qū)動程序來統(tǒng)計相應(yīng)的限速類進程或保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量以及連接時間,通過對數(shù)據(jù)包的數(shù)量以及相應(yīng)的限速類進程或保護類進程的連接時間來確定一定的時間段中,相應(yīng)的限速類進程或保護類進程對網(wǎng)絡(luò)帶寬的占用情況。至于究竟是統(tǒng)計限速類進程對網(wǎng)絡(luò)帶寬的占用情況,還是統(tǒng)計保護類進程對網(wǎng)絡(luò)帶寬的占用情況,則可以根據(jù)實際需要(如步驟S104的需要)靈活處理,可以只統(tǒng)計其中之一,也可以兩者都統(tǒng)計。網(wǎng)絡(luò)帶寬通常是指特定時間內(nèi)(通常是I秒)網(wǎng)絡(luò)能通過的最大位數(shù)據(jù),例如某個網(wǎng)絡(luò)I秒內(nèi)最大能夠通過100萬位的數(shù)據(jù),則此網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬為1000000bps,為了計數(shù)方便,通常也用kBps為單位來描述網(wǎng)絡(luò)帶寬,上述的1000000bps經(jīng)過換算后等于125kBps。進程占用的網(wǎng)絡(luò)帶寬,也可以這樣來描述,例如在10秒內(nèi)統(tǒng)計到一個限速類進程發(fā)送了 IOOkB數(shù)據(jù),則可以確定相應(yīng)的限速類進程對上行網(wǎng)絡(luò)帶寬占用了 100/10=10kBps,又如在10秒內(nèi)統(tǒng)計到一個限速類進程接收了1500kB數(shù)據(jù),則可以確定相應(yīng)的限速類進程對下行行網(wǎng)絡(luò)帶寬占用了 1500/10=150kBps。為了識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程,可以通過這樣的方式根據(jù)探測到的經(jīng)由主機設(shè)備傳輸?shù)妮斎胼敵稣埱蟀麵RP中的文件對象獲知對應(yīng)的進程信息,根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,獲知IRP中的數(shù)據(jù)包所屬的進程。文件對象File Object是一種邏輯上的對象,它并不僅僅可以代表文件,也可以代表許許多多不同的物理設(shè)備,如鍵盤、打印機、屏.等等,文件對象提供的是一種基于內(nèi)存共享的物理資源表示法。每個文件對象可以對應(yīng)一個句柄,應(yīng)用程序可以通過這個句柄實現(xiàn)各種輸入輸出I/o操作。而IRP是輸入輸出I/O系統(tǒng)為了處理一個I/O請求而用來存儲必要信息的地方。操作系統(tǒng)通過發(fā)送IRP (I/O Request Packet, I/O請求包)來進行與驅(qū)動程序的通訊。用來封裝IRP的數(shù)據(jù)結(jié)構(gòu)不僅僅用來描述一個I/O操作的請求本身的內(nèi)容,還要用來維護這一請求在一系列驅(qū)動程序中傳遞的過程中的相關(guān)狀態(tài)信息,而文件對象同時也可以看作是不同IRP的標識信息,IRP的標識即相當于IRP的特征,用以對不同的IRP加以區(qū)分。同時在進程進行網(wǎng)絡(luò)傳輸時,為了保證數(shù)據(jù)包能夠準確的被對應(yīng)的應(yīng)用程序發(fā)送或者接收,系統(tǒng)在創(chuàng)建網(wǎng)絡(luò)數(shù)據(jù)收發(fā)請求IRP時,還會記錄應(yīng)用程序相應(yīng)的進程信息,因此可以通過探測到的經(jīng)由主機設(shè)備傳輸?shù)腎PR中的文件對象來確定當前IRP,進一步通過IRP獲知對應(yīng)的進程信息。然后可以根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,將IRP與相應(yīng)的進程對應(yīng)起來,進而獲知IRP中的數(shù)據(jù)包所屬的進程。上述過程可以由加入到AFD層和TDI層之間的第三方驅(qū)動程序來實現(xiàn),具體獲取IRP與進程之間的關(guān)聯(lián)關(guān)系可以通過NDLE PsGetCurrentProcessIdO函數(shù)獲取進程的標識ID,再將IRP與當前進程ID相關(guān)聯(lián),即實現(xiàn)了獲取IRP與進程之間的關(guān)聯(lián)關(guān)系。 S104:如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制。當監(jiān)控到系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為時,可以對相應(yīng)的限速類進程啟用限速機制,限速的對象是可以是全部限速類進程,即當系統(tǒng)中存在保護類進程,并且監(jiān)控到保護類進程有網(wǎng)絡(luò)訪問行為時,對查詢到的所有屬于限速類進程的系統(tǒng)當前運行的進程啟用限速機制,對其進行限速,這種情況下,可以理解為進程識別庫中的保護類進程對應(yīng)的就是全部限速類進程,即也相當于是對當前運行的保護類進程相應(yīng)的限速類進程啟用限速機制。此外,也可以根據(jù)前面所述的進程識別庫中保存的保護類進程與限速類進程的一對一,或一對多的關(guān)系,對系統(tǒng)當前運行進程中的保護類進程所對應(yīng)的限速類進程啟用限速機制。例如,如果系統(tǒng)當前運行的是保護類進程1,而根據(jù)進程識別庫可知,保護類進程I對應(yīng)的限速類進程是限速類進程4和6,于是相應(yīng)的,就可以只對保護類進程I相應(yīng)的限速類進程4和6啟用限速機制,而對進程識別庫中與所述保護類進程I沒有對應(yīng)關(guān)系的其他限速類進程不啟用限速機制。對系統(tǒng)當前運行進程中的保護類進程所對應(yīng)的限速類進程進行速度限制,可以調(diào)節(jié)保護類進程與限速類進程的網(wǎng)絡(luò)帶寬占用。限速機制有多種具體實現(xiàn)方式,無法一一窮盡,在此僅示例性的介紹幾種(一)如果監(jiān)控到系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理。即一旦監(jiān)控到系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,就對相應(yīng)的限速類進程的相關(guān)數(shù)據(jù)包進行丟棄處理,這樣可以對限速類進程實施較為嚴格的限制,在主機設(shè)備的總帶寬較小,或者保護類進程對帶寬的需求較高時,可以采用這種方案來保證保護類進程的流暢運行。(二)如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且監(jiān)控到限速類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理。這種具體實現(xiàn)方案是結(jié)合對限速類進程的帶寬占用情況進行監(jiān)控,并根據(jù)限速類進程的帶寬占用情況是否達到預(yù)置條件,來確定是否啟用限速機制,這樣的限速方案,可以在保證限速類進程不會因限速而異常斷開的情況下,又實現(xiàn)對保護類進程的網(wǎng)絡(luò)帶寬保護,進而實現(xiàn)了更加靈活的進程帶寬管理。預(yù)置條件可以是限速類進程對網(wǎng)絡(luò)帶寬占用情況達到某個閾值,或者是,限速類進程對網(wǎng)絡(luò)帶寬占用情況超過某個閾值,此兩者可以根據(jù)實際需要選擇其中之一作為啟用限速機制的預(yù)置條件,也可以將兩者結(jié)合共同作為啟用限速機制的預(yù)置條件。具體是何種閾值則有多種實現(xiàn)方式,例如,該閾值可以是允許限速類進程對上行帶寬占用的上限,具體可以用數(shù)值或百分比等多種形式表示;也可以是允許限速類進程對下行帶寬占用的上限。這兩種預(yù)置條件可以單獨使用,也可以組合為一種組合預(yù)置條件使用。比如既設(shè)置保護類進程對網(wǎng)絡(luò)上行帶寬占用的條件,又設(shè)置保護類進程對網(wǎng)絡(luò)下行帶寬占用的條件,只要其中一種不滿足就觸發(fā)對相應(yīng)的限速類進程限速機制的啟用,或者是兩者都不滿足時才觸發(fā)對相應(yīng)的限速類進程限速機制的啟用。例如某主機設(shè)備的總網(wǎng)絡(luò)帶寬為200kBps,可以設(shè)置限速類進程的網(wǎng)絡(luò)帶寬占用上限為IOkBps,作為限速類進程觸發(fā)限速方案的閾值,當監(jiān)控到限速類進程的網(wǎng)絡(luò)帶寬占用達到了 IOkBps或以上時,則對限速類進程進行限速,對相應(yīng)的限速類進程的相關(guān)數(shù)據(jù)包 進行丟棄。前述閾值可以在程序中預(yù)先根據(jù)實際需要配置,也可以為主機設(shè)備的訪問方提供設(shè)置接口,通過設(shè)置接口由用戶定制相關(guān)的各種閾值甚至預(yù)置條件,以實現(xiàn)符合用戶個體需求的帶寬調(diào)節(jié)技術(shù)方案。(三)如果監(jiān)控到系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且監(jiān)控到所述保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟棄。本實現(xiàn)是優(yōu)先參考保護類進程對網(wǎng)絡(luò)帶寬占用情況,來決定是否對相應(yīng)的限速類進程的相關(guān)數(shù)據(jù)包進行丟包處理的。即在監(jiān)控到系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,對保護類進程的網(wǎng)絡(luò)帶寬占用情況進行監(jiān)控,預(yù)置條件是足以保障保護類進程流暢運行所需的相關(guān)帶寬條件,比如是保護類進程當前對網(wǎng)絡(luò)帶寬占用情況是否達到某個閾值,或者是低于某個閾值等等。所述閾值也有多種具體實現(xiàn),比如所述閾值可以是使保護類進程能夠流暢運行所需的其對網(wǎng)絡(luò)上行帶寬需要占用的下限;或者是其對網(wǎng)絡(luò)下行帶寬需要占用的下限。同理,這兩種預(yù)置條件也可以結(jié)合使用,比如既設(shè)置保護類進程對網(wǎng)絡(luò)上行帶寬占用的條件,又設(shè)置保護類進程對網(wǎng)絡(luò)下行帶寬占用的條件,只要其中一種不滿足就觸發(fā)對相應(yīng)的限速類進程限速機制的啟用,或者是兩者都不滿足時才觸發(fā)對相應(yīng)的限速類進程限速機制的啟用。前述閾值可以在程序中預(yù)先根據(jù)實際需要設(shè)置后,也可以為主機設(shè)備的訪問方提供設(shè)置接口,通過設(shè)置接口由用戶定制相關(guān)的各種閾值甚至預(yù)置條件,以實現(xiàn)符合用戶個體需求的帶寬調(diào)節(jié)。(四)如果監(jiān)控到系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且監(jiān)控到所述保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到第一預(yù)置條件,所述限速類進程對網(wǎng)絡(luò)帶寬的占用情況達到第二預(yù)置條件,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理。這是結(jié)合使用前述實現(xiàn)(三)和實現(xiàn)(四)的一種方案,即需要同時滿足兩個閾值條件才能對相應(yīng)的限速類進程啟用限速機制。其中,第一預(yù)置條件可以是保護類進程對帶寬占用達到或低于第一閾值,第二預(yù)置條件可以是限速類進程對帶寬占用達到或超過第二閾值,第一閾值和第二閾值可以不同,也可以相同。具體的限速方案可以結(jié)合參考實現(xiàn)(三)和實現(xiàn)(四)中的具體實現(xiàn),在此就不再贅述了。同樣,前述閾值可以在程序中預(yù)先根據(jù)實際需要設(shè)置后,也可以為主機設(shè)備的訪問方提供設(shè)置接口,通過設(shè)置接口由用戶定制相關(guān)的各種閾值甚至預(yù)置條件,以實現(xiàn)符合用戶個體需求的帶寬調(diào)節(jié)。除了前述幾種限速機制的具體實現(xiàn)外,還有其他幾種可行的具體實現(xiàn)方案。比如還可以將限速類進程的網(wǎng)絡(luò)連接個數(shù)是否達到預(yù)置數(shù)目作為預(yù)置條件,來確定是否對限速類進程進行丟包處理。這是因為在一些操作系統(tǒng)中,對并發(fā)的網(wǎng)絡(luò)連接的總數(shù)目是有一定限制的,某些限速類進程對應(yīng)的軟件,如下載工具軟件,為了更快的下載資源,可能同時發(fā)起多個鏈接,導(dǎo)致接近甚至突破操作系統(tǒng)的并發(fā)連接數(shù)目上限,這樣,當保護類進程需要建立網(wǎng)絡(luò)連接時,就會被操作系統(tǒng)掛起甚至拒絕。因此,也可以通過監(jiān)控限速類進程的網(wǎng)絡(luò)連接數(shù)目是否達到預(yù)置條件,來判斷是否需要對限速類進程進行丟包處理。再比如,還可以設(shè)置諸如限速類進程相關(guān)的數(shù)據(jù)包傳輸時間過長這一預(yù)置條件,來判斷是否需要對限速類進程相關(guān)的數(shù)據(jù)包進行丟包。 由此可見,本發(fā)明實施例對限速類進程丟棄數(shù)據(jù)包的前提條件,即預(yù)置條件可以根據(jù)實際需要靈活配置,本發(fā)明實施例對此并沒有限制,而且多種預(yù)置條件可以單獨使用,也可以組合使用,比如在多種預(yù)置條件同時滿足的情況下,再對限速類進程進行丟包處理。從上述多種限速機制的具體實現(xiàn)方案可以看出,本發(fā)明實施例中所述的限速機制,本質(zhì)而言,就是直接對限速類進程進行丟包處理,或者是滿足某種預(yù)置條件的情況下再對限速類進程進行丟包處理。具體對限速類進程進行丟包處理也有多種具體實現(xiàn)比如,可以是丟棄相應(yīng)的限速類進程的下行的數(shù)據(jù)包??蛇x的,可以是對相應(yīng)的限速類進程的超過預(yù)置閾值的下行的數(shù)據(jù)包進行丟棄,所述預(yù)置閾值可以是網(wǎng)速類的閾值,即當限速類進程對下行帶寬占用的情況(如網(wǎng)速)超過了預(yù)置閾值,就開始對限速類進程的下行數(shù)據(jù)包進行丟棄,直到其網(wǎng)速低于或等于所述預(yù)置閾值時停止丟包,即通過丟棄限速類進程的下行的數(shù)據(jù)包使限速類進程對網(wǎng)絡(luò)帶寬的占用被限制在一定范圍內(nèi);或者是在一定的連續(xù)時間內(nèi)對相應(yīng)的限速類進程的下行的數(shù)據(jù)包進行丟棄,超過這段連續(xù)的時間,則停止丟包,同樣,通過這種方式,也可以使限速類進程對網(wǎng)絡(luò)帶寬的占用被限制在一定范圍內(nèi)。通過上述這兩種丟棄下行的數(shù)據(jù)包的方式,可以使相應(yīng)的限速類進程的下行帶寬占用保持在一定范圍內(nèi)但又不至于使其完全斷開網(wǎng)絡(luò)、無法正常工作,可以達到在保證保護類進程獲得足以流暢運行的帶寬的同時,還能夠使相應(yīng)的限速類進程對應(yīng)的程序不會斷開網(wǎng)絡(luò),也能基本運行正常。當然,也不排除某種應(yīng)用場景下,可以不考慮相應(yīng)的限速類進行是否由于長時間或者大量丟棄數(shù)據(jù)包可能導(dǎo)致完全無法正常運行的情況,即只要對限速類進程啟用限速機制,就對限速類進程的下行數(shù)據(jù)包丟包,而不考慮只丟棄超過預(yù)置閾值的下行的數(shù)據(jù)包,也不考慮只在一定時間內(nèi)丟棄下行的數(shù)據(jù)包。在對相應(yīng)的限速類進程的下行的數(shù)據(jù)包進行丟棄后,由于限速類進程對應(yīng)的應(yīng)用程序接收不到相應(yīng)的下行的數(shù)據(jù)包,于是就會基于自身的收發(fā)數(shù)據(jù)包調(diào)節(jié)機制,降低上傳速度,或者降低其向目標計算機設(shè)備請求數(shù)據(jù)的速度,進而,目標計算機設(shè)備也會相應(yīng)的減緩或不再傳輸數(shù)據(jù)給相應(yīng)的限速類進程,從而達到對限速類進程的帶寬占用進行限制,進而對保護類進程和限速類進程進行帶寬占用調(diào)節(jié)的目的。再比 如,還可以是丟棄相應(yīng)的限速類進程的上行的數(shù)據(jù)包。與前述丟棄限速類進程的下行的數(shù)據(jù)包的幾種方式類似,也可以是只丟棄超過預(yù)置閾值的上行的數(shù)據(jù)包,或者只是在一段連續(xù)時間內(nèi)丟棄上行的數(shù)據(jù)包,再或者不考慮前述有條件的丟包、直接丟棄全部上行的數(shù)據(jù)包。在丟棄相應(yīng)的限速類進程的上行的數(shù)據(jù)包后,相應(yīng)的限速類進程的數(shù)據(jù)請求就不會再被傳送到相應(yīng)的數(shù)據(jù)請求的目標計算機設(shè)備,進而數(shù)據(jù)請求的目標計算機設(shè)備也會相應(yīng)的減緩或不再傳輸數(shù)據(jù)給相應(yīng)的限速類進程,也就達到了對限速類進程的帶寬占用進行限制,進而對保護類進程和限速類進程進行帶寬占用調(diào)節(jié)的目的。在通過對相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理來實現(xiàn)對限速類進程進行限速時,也可以通過在AFD層和TDI層之間加入的第三方驅(qū)動程序來實現(xiàn)。如前文所述,在AFD層和TDI層之間加入第三方驅(qū)動程序后,原本流經(jīng)AFD層和TDI層的數(shù)據(jù)時,還會經(jīng)過所述的第三方驅(qū)動,此時,可以通過所述第三方驅(qū)動,來實現(xiàn)對相應(yīng)的限速類進程的上行和/或下行的數(shù)據(jù)包進行攔截,并在需要時對限速類進程的相關(guān)數(shù)據(jù)包進行丟包處理,這里的丟包處理,可以是對限速類進程的上行的數(shù)據(jù)包進行丟包處理,也可以是對限速類進程的下行的數(shù)據(jù)包進行丟包處理,也可以是對上行的數(shù)據(jù)包和下行的數(shù)據(jù)包丟都進行丟棄。如果是在AFD層和TDI層之間加入的第三方驅(qū)動層(即第三方驅(qū)動程序所在的層)丟棄相應(yīng)的限速類進程的下行的數(shù)據(jù)包,那么,由于該第三方驅(qū)動層位于應(yīng)用層之下,因此限速類進程所對應(yīng)的應(yīng)用程序在應(yīng)用層并不知道限速類進程的下行的數(shù)據(jù)包是被第三方驅(qū)動層丟棄了,而是誤以為由于網(wǎng)絡(luò)原因?qū)е挛茨艹晒哪繕擞嬎銠C設(shè)備接收到相應(yīng)的下行的數(shù)據(jù)包,基于應(yīng)用程序自身收發(fā)數(shù)據(jù)包的調(diào)節(jié)機制,就會相應(yīng)的減緩向目標計算機設(shè)備請求數(shù)據(jù)的速度,進而目標計算機設(shè)備也會相應(yīng)的減緩傳輸數(shù)據(jù)給相應(yīng)的限速類進程,從而達到對限速類進程的帶寬占用進行限制,進而對保護類進程和限速類進程進行帶寬占用調(diào)節(jié)的目的。如果直接在應(yīng)用層丟棄限速類進程的上行的數(shù)據(jù)包或者下行的數(shù)據(jù)包,那么很容易導(dǎo)致限速類進程停止響應(yīng)甚至崩潰,采取這種手段對保護類進程的帶寬予以保護,是以完全犧牲限速類進程為代價的,因此在實際應(yīng)用中并不可取。而在本發(fā)明的一個實施例中,通過在AFD層和TDI層之間加入的第三方驅(qū)動層(即第三方驅(qū)動程序所在的層)丟棄限速類進程的下行的數(shù)據(jù)包,能夠使限速類進程的上行數(shù)據(jù)包正常發(fā)出去,只是在限速時應(yīng)用層接收到的下行的數(shù)據(jù)包較少,而且應(yīng)用層并不知道下行的數(shù)據(jù)包被丟棄,只是誤以為因為網(wǎng)絡(luò)原因未成功傳輸?shù)街鳈C設(shè)備,進而限速類進程基于自身收發(fā)數(shù)據(jù)包的調(diào)節(jié)機制,會減緩向目標計算機設(shè)備請求數(shù)據(jù)的速度,由于是基于限速類進程對應(yīng)的應(yīng)用程序自身的調(diào)節(jié)機制減少后續(xù)收發(fā)數(shù)據(jù)包的速度,因此相對不容易導(dǎo)致限速類進程停止響應(yīng)或者崩潰。與本發(fā)明實施例提供的一種帶寬占用管理方法相對應(yīng),本發(fā)明實施例還提供了一種帶寬占用管理裝置,參見圖3,該裝置可以包括進程查詢單元301,用于查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息;進程類別查詢單元302,用于根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程;第一監(jiān)控單元303,用于至少監(jiān)控所述系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為;限速單元304,用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制。另外該裝置還可以包括第二監(jiān)控單元,用于至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況;所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理??梢栽诒WC限速類進程不會因限 速而異常斷開的情況下,實現(xiàn)對保護類進程的網(wǎng)絡(luò)帶寬保護,進而實現(xiàn)了更加靈活的進程
帶寬管理。限速單元304具體可以包括第一限速子單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的超過預(yù)置閾值的下行的數(shù)據(jù)包進行丟棄。這種方案,可以使限速類進程的網(wǎng)絡(luò)帶寬占用保持在預(yù)置閾值以內(nèi),實現(xiàn)了在保證限速類進程不會因限速而異常斷開的情況下,實現(xiàn)對保護類進程的網(wǎng)絡(luò)帶寬保護,進而實現(xiàn)了更加靈活的進程帶寬管理。第二監(jiān)控單元具體可以包括識別單元,用于識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程;統(tǒng)計單元,用于統(tǒng)計所述相應(yīng)的限速類進程和/或保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量;以及,帶寬判斷單元,用于根據(jù)所述數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況??蛇x的,識別單元具體可以用于根據(jù)探測到的經(jīng)由主機設(shè)備傳輸?shù)腎RP中的文件對象獲知對應(yīng)的進程信息;以及根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,獲知所述IRP中數(shù)據(jù)包所屬的進程。上述帶寬占用管理裝置,還可以包括驅(qū)動單元,用于在傳輸驅(qū)動程序接口 TDI層和輔助功能驅(qū)動程序AFD層之間增加第三方驅(qū)動程序,所述第三方驅(qū)動程序獲得流經(jīng)所述TDI層和AFD層之間的數(shù)據(jù)信息;所述第一監(jiān)控單元,具體用于通過所述第三方驅(qū)動程序監(jiān)控所述系統(tǒng)當前運行的保護類進程的網(wǎng)絡(luò)訪問行為;所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則通過所述第三方驅(qū)動程序?qū)λ鱿鄳?yīng)的所述限速類進程啟用限速機制。具體實現(xiàn)時,進程識別庫還可以保存有每個保護類進程與至少一個限速類進程之間的對應(yīng)關(guān)系;
所述限速單元304,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對與所述保護類進程具有對應(yīng)關(guān)系的限速類進程啟用限速機制。總之,通過本發(fā)明實施例提供的帶寬占用管理方法及裝置,根據(jù)系統(tǒng)當前運行進程中的所述保護類進程是否具有網(wǎng)絡(luò)訪問行為,如果有則對相應(yīng)的所述限速類進程啟用限速機制,減少了其對帶寬的占用,從而增加了保護類進程對應(yīng)程序的帶寬占用,從網(wǎng)絡(luò)傳輸?shù)慕嵌缺WC了保護類進程的流暢運行。由此提供的帶寬占用管理方法適用于計算機設(shè)備中的多數(shù)應(yīng)用程序,而且無需每款軟件各自開發(fā)自身的限速技術(shù),也無需每款軟件都為用戶提供限速模式的設(shè)置接口,即使某個進程沒有提供限速模式的接口設(shè)置,甚至沒有提供限速功能,也可以采用本發(fā)明的技術(shù)方案對其進行限速。進一步的,還可以在對限速類進程進行帶寬占用限制時,使其帶寬占用保持在預(yù)設(shè)的閾值以內(nèi),在保證了保護類進程獲得足夠的帶寬以流暢運行的同時,也能夠使限速類進程不會因限速發(fā)生異常斷開網(wǎng)絡(luò)的情況。另外,本發(fā)明實施例提供的在限速類進程和/或保護類進程達到預(yù)置條件啟用對限速類進程的丟包處理時,提供了多種預(yù)置條件的實現(xiàn),從而使本發(fā)明能夠靈活的適應(yīng)多種對進程帶寬占用進行管理的場景。再者,如果通過在 AFD層和TDI層之間加入的第三方驅(qū)動層(即第三方驅(qū)動程序所在的層)丟棄限速類進程的下行的數(shù)據(jù)包,可以觸發(fā)限速類進程的自身調(diào)節(jié)機制,達到對限速類進程進行一定限制,從而保證保護類進程的帶寬,但又不容易導(dǎo)致限速類進程停止響應(yīng)或者崩潰,最終達到在保證保護類進程所需帶寬的同時,也能盡量保證相應(yīng)的限速類進程的正常運行。本申請可以應(yīng)用于計算機系統(tǒng)/服務(wù)器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置一起操作。適于與計算機系統(tǒng)/服務(wù)器一起使用的眾所周知的計算系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個人計算機系統(tǒng)、服務(wù)器計算機系統(tǒng)、瘦客戶機、厚客戶機、手持或膝上設(shè)備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡(luò)個人電腦、小型計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任何系統(tǒng)的分布式云計算技術(shù)環(huán)境,等等。計算機系統(tǒng)/服務(wù)器可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一般語境下描述。通常,程序模塊可以包括例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等等,它們執(zhí)行特定的任務(wù)或者實現(xiàn)特定的抽象數(shù)據(jù)類型。計算機系統(tǒng)/服務(wù)器可以在分布式云計算環(huán)境中實施,分布式云計算環(huán)境中,任務(wù)是由通過通信網(wǎng)絡(luò)鏈接的遠程處理設(shè)備執(zhí)行的。在分布式云計算環(huán)境中,程序模塊可以位于包括存儲設(shè)備的本地或遠程計算系統(tǒng)存儲介質(zhì)上。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。類似地,應(yīng)當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權(quán)利要求書由此明確地并入該具體實施方式
,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。 此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP )來實現(xiàn)根據(jù)本發(fā)明實施例的帶寬占用管理方法及裝置中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其它形式提供。應(yīng)該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權(quán)利要求
1.一種帶寬占用管理方法,包括 查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息; 根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程; 至少監(jiān)控所述系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為; 如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制; 其中,所述進程識別庫中還保存每個保護類進程與至少一個限速類進程之間的對應(yīng)關(guān)系; 所述如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制包括 如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對與所述保護類進程具有對應(yīng)關(guān)系的限速類進程啟用限速機制。
2.根據(jù)權(quán)利要求I所述的方法,還包括至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況;所述對相應(yīng)的所述限速類進程啟用限速機制包括 如果監(jiān)控到所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟包處理。
3.根據(jù)權(quán)利要求2所述的方法,所述通過對相應(yīng)的限速類進程的數(shù)據(jù)包進行丟包處理予以限速包括 對所述相應(yīng)的限速類進程的超過預(yù)置閾值的下行的數(shù)據(jù)包進行丟棄。
4.根據(jù)權(quán)利要求2所述的方法,所述至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況包括 識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程; 統(tǒng)計所述相應(yīng)的限速類進程和/或保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量; 根據(jù)所述數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況。
5.根據(jù)權(quán)利要求4所述的方法,至少通過下述方式識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程 根據(jù)探測到的經(jīng)由主機設(shè)備傳輸?shù)妮斎胼敵稣埱蟀麵RP中的文件對象獲知對應(yīng)的進程 目息; 根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,獲知所述IRP中的數(shù)據(jù)包所屬的進程。
6.根據(jù)權(quán)利要求I至5中任一項所述的方法,還包括在傳輸驅(qū)動程序接口TDI層和輔助功能驅(qū)動程序AFD層之間增加第三方驅(qū)動程序,所述第三方驅(qū)動程序獲得流經(jīng)所述TDI層和AFD層之間的數(shù)據(jù)信息; 所述對相應(yīng)的限速類進程啟用限速機制具體包括 通過所述TDI層和AFD層之間的第三方驅(qū)動程序,對相應(yīng)的限速類進程啟用限速機制。
7.一種帶寬占用管理裝置,包括 進程查詢單元,用于查詢系統(tǒng)當前運行的進程,獲取所述系統(tǒng)當前運行的進程的進程信息; 進程類別查詢單元,用于根據(jù)所述系統(tǒng)當前運行的進程的進程信息查詢預(yù)置的進程識別庫,獲知所述系統(tǒng)當前運行的進程中是否存在保護類進程和限速類進程,所述進程識別庫中保存有進程信息與所述進程所屬類別的對應(yīng)關(guān)系,所述類別至少包括保護類進程和限速類進程; 第一監(jiān)控單元,用于至少監(jiān)控所述系統(tǒng)當前運行的保護類進程是否具有網(wǎng)絡(luò)訪問行為; 限速單元,用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對相應(yīng)的所述限速類進程啟用限速機制; 其中,所述進程識別庫還保存有每個保護類進程與至少一個限速類進程之間的對應(yīng)關(guān)系; 所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對與所述保護類進程具有對應(yīng)關(guān)系的限速類進程啟用限速機制。
8.根據(jù)權(quán)利要求7所述的裝置,還包括第二監(jiān)控單元,用于至少監(jiān)控所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況; 所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的相關(guān)的數(shù)據(jù)包進行丟。
9.根據(jù)權(quán)利要求8所述的裝置,所述限速單元具體包括 第一限速子單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,并且所述限速類進程和/保護類進程對網(wǎng)絡(luò)帶寬的占用情況達到預(yù)置條件,則對所述相應(yīng)的限速類進程的超過預(yù)置閾值的下行的數(shù)據(jù)包進行丟棄。
10.根據(jù)權(quán)利要求8所述的裝置,所述第二監(jiān)控單元具體包括 識別單元,用于識別探測到的經(jīng)由主機設(shè)備傳輸?shù)臄?shù)據(jù)包所屬的進程; 統(tǒng)計單元,用于統(tǒng)計所述相應(yīng)的限速類進程和/或保護類進程相關(guān)的數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量; 帶寬判斷單元,用于根據(jù)所述數(shù)據(jù)包占據(jù)的網(wǎng)絡(luò)流量確定所述限速類進程和/或保護類進程對網(wǎng)絡(luò)帶寬的占用情況。
11.根據(jù)權(quán)利要求10所述的裝置,所述識別單元具體包括 第一識別子單元,用于根據(jù)探測到的經(jīng)由主機設(shè)備傳輸?shù)腎RP中的文件對象獲知對應(yīng)的進程信息; 第二識別子單元,用于根據(jù)所述IRP與進程之間的關(guān)聯(lián)關(guān)系,獲知所述IRP中數(shù)據(jù)包所屬的進程。
12.根據(jù)權(quán)利要求7至11中任一項所述的裝置,還包括 驅(qū)動單元,用于在傳輸驅(qū)動程序接口 TDI層和輔助功能驅(qū)動程序AFD層之間增加第三方驅(qū)動程序,所述第三方驅(qū)動程序獲得流經(jīng)所述TDI層和AFD層之間的數(shù)據(jù)信息; 所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則通過所述第三方驅(qū)動程序?qū)λ鱿鄳?yīng)的所述限速類進程啟用限速機制。
全文摘要
本發(fā)明公開了一種帶寬占用管理方法及裝置,所述裝置包括進程查詢單元;進程類別查詢單元;第一監(jiān)控單元;限速單元;其中,所述進程識別庫還保存有每個保護類進程與至少一個限速類進程之間的對應(yīng)關(guān)系;所述限速單元,具體用于如果監(jiān)控到所述系統(tǒng)當前運行的保護類進程具有網(wǎng)絡(luò)訪問行為,則對與所述保護類進程具有對應(yīng)關(guān)系的限速類進程啟用限速機制。通過本發(fā)明提供的方案,能夠?qū)π枰Wo的進程和需要限速的進程進行帶寬管理。
文檔編號H04L12/24GK102946322SQ20121039473
公開日2013年2月27日 申請日期2012年10月17日 優(yōu)先權(quán)日2012年10月17日
發(fā)明者潘全新, 丁振, 向明, 邊陸 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司