專利名稱:一種在客戶端控制網絡帶寬的方法及裝置的制作方法
技術領域:
本發明涉及網絡連接,更具體地說,涉及一種在客戶端控制網絡帶寬的方法及裝置。
背景技術:
通常而言,在進行遠程數據傳輸時,雖然有較多的方式可以選擇,但是,由方便使用和成本較低的角度來考慮,網絡傳輸具有極大的優勢。所以,通過網絡在各節點之間進行數據傳輸在近年來得到極大的發展。在金融數據的傳輸中,通常是通過一個或多個服務器分別與其連接的多個客戶端之間進行數據傳輸。由于服務器的資源是有限的,也就是服務器通過網絡與各個客戶端之間的傳輸帶寬是有限的,對各客戶端進行數據傳輸時的帶寬管理就非常有必要。如果不加管理,可能出現一些客戶端占用了所有帶寬而使得其他客戶端不能與服務器進行數據傳輸的情況出現。通常可以通過網絡層或應用層對上述帶寬加以控制;但是,目前在網絡層的帶寬控制技術,主要通過不同協議來限制網速,無法對具體應用的可用帶寬進行詳盡的控制,當應用發送較大規模的數據時可能對使用相同協議的其他高優先級應用造成沖擊;通過硬件網絡層的配置較復雜,需要在多個網絡節點進行配置才能實現全路徑的帶寬控制,并且難以分時間段進行控制,不夠靈活;應用層網絡限速只提供單一的限速值,不能根據具體業務情況不同時段使用不同的限速值。
發明內容
本發明要解決的技術問題在于,針對現有技術的上述不靈活、難以分時控制的缺陷,提供一種靈活、可以分時控制的在客戶端控制網絡帶寬的方法及裝置。本發明解決其技術問題所采用的技術方案是構造一種在客戶端控制網絡帶寬的方法,包括如下步驟
A)取得帶有時間基點的帶寬數據,所述帶寬數據包括由所述時間基點開始到設定時間的時間段劃分以及所述各時間段內該客戶端的限制帶寬值;
B)取得當前時間,并確定當前時間在由所述時間基點開始的時間段;
C)依據所述當前時間所處時間段,取得該時間段的限制帶寬值;
D)取得當前客戶端網絡帶寬值,并判斷其是否大于所述取得的限制帶寬值,如是,使所述當前網絡帶寬值等于當前時段的限制帶寬值并執行步驟E);否則,直接執行步驟E);
E)等待設定時間并返回步驟B)。在本發明所述的在客戶端控制網絡帶寬的方法中,所述步驟A)中的帶寬數據中包括多個時間段,每個時間段包括一個起始時間和一個結束時間,所述起始時間和所述結束時間均以所述時間基點作為起點;所述每個時段均設置有本時段的限制帶寬值。在本發明所述的在客戶端控制網絡帶寬的方法中,所述帶寬數據中還包括用于限定當前時間不在所述各時間段內時所述客戶端的網絡帶寬的缺省帶寬值。在本發明所述的在客戶端控制網絡帶寬的方法中,所述步驟B)進一步包括BI)判斷當前時間是否大于一取得其數據的時間段的起始時間,如是,執行下一步驟,否則,執行步驟B4);
B2)判斷當前時間是否小于所述時間段的結束時間,如是,執行下一步驟;否則,執行步驟 B4);
B3)讀取所述時間段的限制帶寬值并返回;
B4)帶寬數據中所有時間段是否均已比較,如是執行步驟B5);否則,取得下一時間段數據并返回步驟BI);
B5)讀取并返回缺省帶寬值。在本發明所述的在客戶端控制網絡帶寬的方法中,所述帶寬數據中還設置有例外時段及例外時段的網絡帶寬值;所述步驟B)中還包括
B0)判斷當前時間是否處于所述例如時段,如是,返回所述例外時段的例外時段帶寬值;否則,執行步驟BI)。在本發明所述的在客戶端控制網絡帶寬的方法中,還包括如下步驟
M)所述客戶端登陸與其連接的服務器,所述服務器定時或不定時地發送存儲在所述服務器上的、與所述客戶端地址對應的帶寬數據到所述客戶端。本發明還涉及一種實現上述方法的裝置,包括
帶寬數據存儲單元用于存儲取得帶有時間基點的帶寬數據,所述帶寬數據包括由所述時間基點開始到設定時間的時間段劃分以及所述各時間段內該客戶端的限制帶寬值;當前時間取得及判斷單元用于取得當前時間,并確定當前時間在由所述時間基點開始的時間段;
當前限制帶寬值取得單元用于依據所述當前時間所處時間段,取得該時間段的限制帶寬值;
當前帶寬取得及調節單元用于取得當前客戶端網絡帶寬值,并判斷其是否大于所述取得的限制帶寬值,如是,使所述當前網絡帶寬值等于當前時段的限制帶寬值;
等待時間單元用于在調節或未調節當前帶寬后等待設定時間再進入下一次帶寬調節。在本發明所述的裝置中,所述當前時間取得及判斷單元進一步包括
起始時間判斷模塊用于判斷當前時間是否大于一取得其數據的時間段的起始時間; 結束時間判斷模塊用于判斷當前時間是否小于所述時間段的結束時間;
當前時間段網絡帶寬取得模塊用于讀取所述時間段的限制帶寬值并返回;
時間段遍歷判斷模塊用于判斷帶寬數據中所有時間段是否均已比較,并在未遍歷所述時間段時取得下一時間段數據;
缺省帶寬值取得模塊用于在當前時間不在所述帶寬數據中任意一個時間段中是讀取并返回缺省帶寬值。在本發明所述的裝置中,所述當前時間取得及判斷單元還包括
例外時段判斷模塊用于判斷當前時間是否處于例外時段,如是,返回所述例外時段的例外時段帶寬值。在本發明所述的裝置中,還包括
帶寬數據取得單元用于使所述客戶端登陸與其連接的服務器,接收所述服務器定時或不定時地發送存儲在所述服務器上的、與所述客戶端地址對應的帶寬數據。實施本發明的在客戶端控制網絡帶寬的方法及裝置,具有以下有益效果由于使用帶寬數據,且該帶寬數據將客戶端的帶寬由時間基點開始劃分為多個時間段,客戶端按照當前時間取得其最大帶寬(限制帶寬值),并與當前帶寬比較,從而達到限制帶寬的目的;同時,改變帶寬數據就可以任意配置客戶端進行數據傳輸的時段帶寬。所以,其靈活、可以分時控制客戶端的網絡帶寬。
圖 I是本發明在客戶端控制網絡帶寬的方法及裝置實施例中方法流程圖;圖2是所述實施例中判斷當前時間所處時段的流程 圖3是所述實施例中裝置的結構示意 圖4是所述實施例中當前時間取得及判斷單元的結構示意圖。
具體實施例方式下面將結合附圖對本發明實施例作進一步說明。如圖I所示,在本發明的在客戶端控制網絡帶寬的方法及裝置實施例中,其方法包括
步驟Sll取得帶寬數據在本實施例中,帶寬數據表示了該客戶端的帶寬數據,具體來講,就是該客戶端在一段時間內的每個時間段上應該使用的網絡連接帶寬,是管理者對該客戶端的帶寬設置或要求。由于在本實施例中,一個服務器可以通過網絡與多個客戶端連接,對于每個客戶端,都存在這樣的一個帶寬數據(也就是帶寬數據);當然,根據具體情況,上述每個客戶端的帶寬數據可以是相同的,也可以是不相同的;而且具體到一個帶寬數據來講,其中的內容也是可以由管理者事先設置的;如果將上述針對一個客戶端的帶寬數據作為一個子集的話,分別針對多個客戶端的多個帶寬數據組合得到一個集合;在本實施例中,上述集合被存放在服務器中,當與服務器通過網絡連接的任意一個客戶端登陸服務器時,服務器依據登陸的客戶端的地址,找到對應的子集,并將其發送到客戶端。這樣,客戶端就取得了其自身的帶寬數據。當然,在一些情況下,帶寬數據的取得也可以不是這樣,例如,可以由管理者通過別的方式獲得并導入上述客戶端中。這樣的操作雖然也可以實現對不同的客戶端的控制,但是由于遠程數據傳輸的特定,會帶來一定的不便。在本實施例中,帶寬數據制定了一個客戶端由一個時間基點開始到一個設定時間內的所有時間點上該客戶端與服務器連接時被允許的最大帶寬(限制帶寬值),例如由一個時間基點開始到一周或一天內的所有時間的帶寬值;對于針對一個客戶端的帶寬數據而言,其包括了由一個時間基點開始到設定時間的時間段劃分以及所述各時間段內該客戶端的被允許與網絡連接的最大帶寬值,每個時間段都有一個帶寬值,這些帶寬值可以相同,也可以不同;但都是可以分別設置的;同樣,每一個時間段的長度也可以相同或不同,但其起始時間和結束時間也是可以單獨地、分別地設置的;在本實施例中,上述時間段覆蓋了由時間基點到設定時間的所有區域。在本步驟中,就是通過上述方法得到針對該客戶端的帶寬數據,并將其存儲在上述客戶端中。值得一提的是,在開始或帶寬數據更新時,才執行步驟Sll ;—旦帶寬數據獲得且沒有更新,例如,在等待設定時間后再次開始判斷當前帶寬值是否超出限制帶寬時,將直接由步驟S12開始執行。同理,如果服務器上的帶寬數據更新,服務器將通知各客戶端,并重新分發帶寬數據,在這種情況下,步驟Sll見會被再次執行。 步驟S12取得當前時間,并判斷當前時間所處時間段,得到限制帶寬值由于客戶端已經得到上述帶寬數據,在本步驟中,客戶端取得其自身上的當前時間,該時間就是客戶端的系統時間;取得該時間后,客戶端判斷對于當前時間而言,其處于以上述時間基點為基點劃分出來的各個時間段中的哪一個;一旦當前時間所處的時間段確定,就可以由上述帶寬數據中得到該客戶端當前網絡帶寬的最大值。關于在本實施例中如何具體地判斷當前時間所處時間段,請參見圖2,稍后也會加以描述。步驟S13取得當前帶寬值在本步驟中,客戶端取得當前其與網絡連接的帶寬(即與服務器交換數據的速度),該速度或帶寬可以通過檢測網絡接口上的數據流量而取得。步驟S14當前帶寬值大于限制帶寬值?如是,執行步驟S15,否則,執行步驟S16 ;在本步驟中,比較上面不同步驟中取得的兩個帶寬值,并判斷客戶端實際進行網絡連接或數據交換的帶寬值是否大于當前時間所處時段所允許的最大帶寬值,如大于,則執行步驟S15,調節實際的帶寬值使其不大于或等于該時段允許的最大帶寬值;如不大于,則不用調節帶寬值,直接執行步驟S16。步驟S15調節當前帶寬值為上述限制帶寬值在本步驟中,對實際帶寬值進行調節,也就是限制該客戶端的網絡連接速度,使其不至于占用過多的帶寬而造成其他客戶端的訪問困難。值得一提的是,執行本步驟后,將執行步驟S16。步驟S16等待設定時間由于上述判斷過程需要在客戶端連接網絡期間不斷地進行,以保證客戶端的網絡帶寬不至于對其他客戶端帶來影響;但是,如果一直不停地進行上述判斷則會給客戶端的處理器帶來較大的負擔;所以,既滿足對帶寬的監控,又兼顧減少客戶端處理器的負擔的情況下,在本實施例中,客戶端將等待一段時間,再開始下一次的判斷過程。這一等待時間是事先設定的;在本實施例中,通常是1-10秒。對于本實施例而言,上述當前時間的取得及所處時間段的判斷步驟具體如圖2所示,其包括
步驟S21當前時間大于時段起始時間?如是,執行下一步驟;否則,跳轉到步驟S24;在本步驟中,首先是在上述帶寬數據中取出一個時間段的數據,這些數據就包括了該時間段的起始時間和結束時間;在本實施例中,如果首次執行本步驟,則由上述帶寬數據的第一個時間段開始,如果不是首次執行本步驟,則由上次取得數據的時間段順序向后取得下一個時間段的數據。步驟S22當前時間小于時段結束時間?如是,執行步驟S23,否則,跳轉到步驟S24執行;在本步驟中,如果判斷當前時間大于一個時間段的起始時間而小于其結束時間,則可以認定該當前時間就處于該時間段內。步驟S23取得該時段限定帶寬并返回在本步驟中,由于當前時間處于該時間段內,所以,改時間段對應的最大帶寬值就是當前連接的最大允許帶寬值,將該值取出并返回。步驟S24所有時段遍歷?如是,執行步驟S26 ;否則,執行步驟S25。步驟S25取得下一時段數據當仍有時段(時間段)未與當前時間比較時(即時段未遍歷),由于通過上述步驟S21-22判斷了當前時間并不在已經比較過的時間段內,所以,需要再取出一個時間段的數據與當前時間比較;在本步驟中,取出之前已經比較的時間段后的下一個時間段數據,并返回步驟S21,將該下一個時間段與當前時間進行比較。步驟S26取得缺省帶寬并返回在本步驟中,由于遍歷帶寬數據中所有的時間段均為發現當前時間所處的時間段,所以使用該帶寬數據的缺省帶寬作為當前時間允許的最大帶寬值。這種情況在上述帶寬數據的時間段并沒有完整地覆蓋整個由時間基點到設定時間是可能會出現,這也是一種減少帶寬數據的設置數據量或降低帶寬數據的設置的復雜程度的方法。此外,為了降低帶寬數據設置的復雜程度或減少判斷當前時間所處的時間段所用的時間或開銷,在本實施例中,帶寬數據內還可以設置例外時段,例外時段對應有例外時段的網絡帶寬值;在判斷當前時間所處時段時,首先判斷當前時間是否處于例外時段,如當前時間處于例外時段,則直接返回所述例外時段的網絡帶寬值,不再進行上述步驟S21-26的判斷;如當前時間不處于例外時段,則再進行上述步驟S21-S26的判斷。雖然在比較時多了一個步驟,但是,在許多情況下,例外時段的設置可以使得客戶端不再進行步驟S21-S26的判斷,極大地節省了當前時間所處時間段的判斷時間和消耗。本發明還涉及一種實現上述方法的裝置,其結構示意圖如圖2所示,包括帶寬數據存儲單元I、當前時間取得及判斷單元2、當前限制帶寬值取得單元3、當前帶寬取得及調節單元4、等待時間單元5以及帶寬數據取得單元6 ;其中,帶寬數據存儲單元I用于存儲取得帶有時間基點的帶寬數據,該帶寬數據包括由時間基點開始到設定時間的時間段劃分以及上述各時間段內該客戶端的限制帶寬值;當前時間取得及判斷單元2用于取得當前時間,并確定當前時間在由時間基點開始的時間段;當前限制帶寬值取得單元3用于依據當前時間所處時間段,取得該時間段的限制帶寬值;當前帶寬取得及調節單元4用于取得當前客戶端網絡帶寬值,并判斷其是否大于上述取得的限制帶寬值,如是,使所述當前網絡帶寬值等于當前時段限制帶寬值;等待時間單元5用于在調節或未調節當前帶寬后等待設定時間再進入下一次帶寬調節;帶寬數據取得單元6用于使客戶端登陸與其連接的服務器,接收服務器定時或不定時地發送存儲在該服務器上的、與該客戶端地址對應的帶寬數據。值得一提的是,在本實施例中,帶寬數據的設置也是在上述服務器上完成的;用戶也可以調出上述帶寬數據并在服務器上修改后存入,該服務器定時或不定時將修改后的帶寬數據發送到客戶端。如圖4所示,在本實施例中,當前時間取得及判斷單元2進一步包括起始時間判斷模塊21、結束時間判斷模塊22、當前時間段網絡帶寬取得模塊23、時間段遍歷判斷模塊24、缺省帶寬值取得模塊25以及例外時段判斷模塊26 ;其中起始時間判斷模塊21用于判斷當前時間是否大于一取得其數據的時間段的起始時間;結束時間判斷模塊22用于判斷當前時間是否小于所述時間段的結束時間;當前時間段網絡帶寬取得模塊23用于讀取所述時間段的帶寬值并返回;時間段遍歷判斷模塊24用于判斷帶寬數據中所有時間段是否均已比較,并在未遍歷所述時間段時取得下一時間段數據;缺省帶寬值取得模塊25用于在當前時間不在所述帶寬數據中任意一個時間段中是讀取并返回缺省帶寬值;例外時段判斷模塊26用于判斷當前時間是否處于例外時段,如是,返回所述例外時段的網絡帶寬值。 總之,在本實施例中,首先,在服務端對各個客戶進行帶寬數據設置。根據各個用戶的各條線路的實際業務情況,每個客戶可以使用自己私有帶寬數據也可以使用系統默認的帶寬數據,帶寬數據由按時間(例如星期)分組的一系列限速值(即限制帶寬值)構成的,用戶可以詳細定義一天中任意時間段的限速值,為簡化帶寬數據的配置增加了默認限速值,例外限速值兩個配置項,其中默認限速值用于確定線路策略中所有未指定時間段的速度值;例外限速值用于例外情況,它有比普通限速項更高的優先級。客戶端啟動后,登錄服務器,驗證完成后從服務端獲取該用戶的最新的帶寬數據。客戶端以I秒的間隔從帶寬數據中獲取當前時點的速度值(對帶寬數據進行了封裝,設置一個時間基點, 返回這個時間點在帶寬數據中的限速值),之后用當前限速值調用通信組件中的限速接口,對網絡進行限速,使其不大于限制帶寬。當服務端的帶寬數據改變后,服務器主動向當前在線的客戶端發送新的帶寬數據,客戶端使用接收到的新的帶寬數據替代舊的執行限速行為。以上所述實施例僅表達了本發明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發明專利范圍的限制。應當指出的是,對于本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。因此,本發明專利的保護范圍應以所附權利要求為準。
權利要求
1.一種在客戶端控制網絡帶寬的方法,其特征在于,包括如下步驟 A)取得帶有時間基點的帶寬數據,所述帶寬數據包括由所述時間基點開始到設定時間的時間段劃分以及所述各時間段內該客戶端的限制帶寬值; B)取得當前時間,并確定當前時間在由所述時間基點開始的時間段; C)依據所述當前時間所處時間段,取得該時間段的限制帶寬值; D)取得當前客戶端網絡帶寬值,并判斷其是否大于所述取得的限制帶寬值,如是,使所述當前網絡帶寬值等于當前時段限制帶寬值并執行步驟E);否則,直接執行步驟E); E)等待設定時間并返回步驟B)。
2.根據權利要求I所述的在客戶端控制網絡帶寬的方法,其特征在于,所述步驟A)中的帶寬數據中包括多個時間段,每個時間段包括一個起始時間和一個結束時間,所述起始時間和所述結束時間均以所述時間基點作為起點;所述每個時段均設置有本時段允許的限制帶寬值。
3.根據權利要求2所述的在客戶端控制網絡帶寬的方法,其特征在于,所述帶寬數據中還包括用于限定當前時間不處于所述各時間段內時所述客戶端限制帶寬的缺省帶寬值。
4.根據權利要求3所述的在客戶端控制網絡帶寬的方法,其特征在于,所述步驟B)進一步包括 BI)判斷當前時間是否大于一取得其數據的時間段的起始時間,如是,執行下一步驟,否則,執行步驟B4); B2)判斷當前時間是否小于所述時間段的結束時間,如是,執行下一步驟;否則,執行步驟 B4); B3)讀取所述時間段的限制帶寬值并返回; B4)帶寬數據中所有時間段是否均已比較,如是執行步驟B5);否則,取得下一時間段數據并返回步驟BI); B5)讀取并返回缺省帶寬值。
5.根據權利要求4所述的在客戶端控制網絡帶寬的方法,其特征在于,所述帶寬數據中還設置有例外時段及例外時段的例外時段帶寬值;所述步驟B)中還包括 BO)判斷當前時間是否處于所述例外時段,如是,返回所述例外時段的例外時段帶寬值;否則,執行步驟BI)。
6.根據權利要求1-5任意一項所述的在客戶端控制網絡帶寬的方法,其特征在于,還包括如下步驟 M)所述客戶端登陸與其連接的服務器,所述服務器定時或不定時地發送存儲在所述服務器上的、與所述客戶端地址對應的帶寬數據到所述客戶端。
7.一種實現如權利要求I所述的在客戶端控制網絡帶寬方法的裝置,其特征在于,包括 帶寬數據存儲單元用于存儲取得帶有時間基點的帶寬數據,所述帶寬數據包括由所述時間基點開始到設定時間的時間段劃分以及所述各時間段內該客戶端的限制帶寬值; 當前時間取得及判斷單元用于取得當前時間,并確定當前時間在由所述時間基點開始的時間段; 當前限制帶寬值取得單元用于依據所述當前時間所處時間段,取得該時間段的限制帶寬值; 當前帶寬取得及調節單元用于取得當前客戶端網絡帶寬值,并判斷其是否大于所述取得的限制帶寬值,如是,使所述當前網絡帶寬值等于當前時段的限制帶寬值; 等待時間單元用于在調節或未調節當前帶寬后等待設定時間再進入下一次帶寬調節。
8.根據權利要求7所述的裝置,其特征在于,所述當前時間取得及判斷單元進一步包括 起始時間判斷模塊用于判斷當前時間是否大于一取得其數據的時間段的起始時間; 結束時間判斷模塊用于判斷當前時間是否小于所述時間段的結束時間; 當前時間段網絡帶寬取得模塊用于讀取所述時間段的限制帶寬值并返回; 時間段遍歷判斷模塊用于判斷帶寬數據中所有時間段是否均已比較,并在未遍歷所述時間段時取得下一時間段數據; 缺省帶寬值取得模塊用于在當前時間不在所述帶寬數據中任意一個時間段中是讀取并返回缺省帶寬值。
9.根據權利要求8所述的裝置,其特征在于,所述當前時間取得及判斷單元還包括 例外時段判斷模塊用于判斷當前時間是否處于例外時段,如是,返回所述例外時段的例外時段帶寬值。
10.根據權利要求8所述的裝置,其特征在于,還包括 帶寬數據取得單元用于使所述客戶端登陸與其連接的服務器,接收所述服務器定時或不定時地發送存儲在所述服務器上的、與所述客戶端地址對應的帶寬數據。
全文摘要
本發明涉及一種在客戶端控制網絡帶寬的方法,包括如下步驟取得帶有時間基點的帶寬數據;取得當前時間,并確定當前時間在由所述時間基點開始的時間段;依據所述當前時間所處時間段,取得該時間段的限制帶寬值;取得當前客戶端網絡帶寬值,并判斷其是否大于所述取得的限制帶寬值,如是,使所述當前網絡帶寬值等于當前時段限速值;等待設定時間并取得當前時間開始下一次控制。本發明還涉及一種實現上述方法的裝置。實施本發明的在客戶端控制網絡帶寬的方法及裝置,具有以下有益效果靈活、可以分時控制客戶端的網絡帶寬。
文檔編號H04L29/08GK102624634SQ201210104800
公開日2012年8月1日 申請日期2012年4月11日 優先權日2012年4月11日
發明者強慶華, 彭剛 申請人:深圳證券通信有限公司