一種限制網(wǎng)速的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開一種限制網(wǎng)速的方法及系統(tǒng),涉及計算機網(wǎng)絡(luò)通訊領(lǐng)域,能夠解決現(xiàn)有技術(shù)中網(wǎng)絡(luò)限速不太準確和限速后的網(wǎng)速不夠平滑的問題。所述限制網(wǎng)速的方法包括:獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np;獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp;將Np與Sp進行比較;若Np<Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。本發(fā)明適用于能夠準確限制網(wǎng)速的場合。
【專利說明】—種限制網(wǎng)速的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機網(wǎng)絡(luò)通訊領(lǐng)域,尤其涉及一種限制網(wǎng)速的方法及系統(tǒng)。
【背景技術(shù)】
[0002]許多網(wǎng)絡(luò)管理工具和一些路由器都會有一些網(wǎng)速限制功能,以滿足用戶對于某臺設(shè)備或某個進程的網(wǎng)速限制,基本的思路是通過限制單位時間內(nèi)的流量大小,再結(jié)合丟包等方法來實現(xiàn)網(wǎng)速限制。目前主流的限速方案主要是在發(fā)送或接收網(wǎng)絡(luò)網(wǎng)絡(luò)數(shù)據(jù)包時,根據(jù)設(shè)定的網(wǎng)絡(luò)流量限定值,計算出不可以發(fā)送或接收的具體時間(比如秒、毫秒、納秒)的時間窗口,來實現(xiàn)對網(wǎng)速的限制。
[0003]使用具體時間(比如秒、毫秒、納秒)作為時間窗口值存在的最大問題是精度問題,由于在一些設(shè)備上很難獲取到高精度的具體時間值,所以計算出的時間窗口值精度也不高,這樣實際的網(wǎng)絡(luò)限速就會不太準確。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明實施例提供一種限制網(wǎng)速的方法及系統(tǒng),能夠解決現(xiàn)有技術(shù)中網(wǎng)絡(luò)限速不太準確的問題。
[0005]為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0006]一方面,本發(fā)明實施例提供一種限制網(wǎng)速的方法,包括:
[0007]獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np ;
[0008]獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;
[0009]將所述Np與所述Sp進行比較;若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
[0010]本發(fā)明實施例提供的限制網(wǎng)速的方法,通過將獲取到的設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np和當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp進行比較:若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否貝U,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包;能夠根據(jù)系統(tǒng)中精度最高的CPU時鐘周期,判斷出當前是否能夠發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,從而達到準確進行網(wǎng)絡(luò)限速的目的。
[0011]另一方面,本發(fā)明實施例提供一種限制網(wǎng)速的系統(tǒng),包括:
[0012]第一獲取單元,用于獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np ;
[0013]第二獲取單元,用于獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;
[0014]比較單元,用于將所述第一獲取單元獲取的Np與所述第二獲取單元獲取的Sp進行比較;若恥< Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
[0015]本發(fā)明實施例提供的限制網(wǎng)速的系統(tǒng),通過將獲取到的設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np和當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp進行比較:若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否貝U,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包;能夠根據(jù)系統(tǒng)中精度最高的CPU時鐘周期,判斷出當前是否能夠發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,從而達到準確進行網(wǎng)絡(luò)限速的目的。
【專利附圖】
【附圖說明】
[0016]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0017]圖1為本發(fā)明一種限制網(wǎng)速的方法一實施例的流程示意圖;
[0018]圖2為本發(fā)明一種限制網(wǎng)速的方法另一實施例中預先確定當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp的步驟一實施例的流程示意圖;
[0019]圖3為本發(fā)明一種限制網(wǎng)速的方法另一實施例中在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn一實施例的流程示意圖;
[0020]圖4為本發(fā)明一種限制網(wǎng)速的方法另一實施例中確定所述發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO的步驟一實施例的流程示意圖;
[0021]圖5為本發(fā)明一種限制網(wǎng)速的系統(tǒng)一實施例的方框結(jié)構(gòu)示意圖;
[0022]圖6為本發(fā)明一種限制網(wǎng)速的系統(tǒng)一實施例的方框結(jié)構(gòu)示意圖;
[0023]圖7為圖6中確定單元一實施例的方框結(jié)構(gòu)示意圖;
[0024]圖8為本發(fā)明一種限制網(wǎng)速的系統(tǒng)另一實施例的方框結(jié)構(gòu)示意圖;
[0025]圖9為圖8中計算單元一實施例的方框結(jié)構(gòu)示意圖;
[0026]圖10為圖6中確定單元另一實施例的方框結(jié)構(gòu)示意圖;
[0027]圖11為圖10中確定子單元一實施例的方框結(jié)構(gòu)示意圖;
圖12為模板生成單元的方框結(jié)構(gòu)示意圖;
圖13為填充模塊的方框結(jié)構(gòu)示意圖。
【具體實施方式】
[0028]下面結(jié)合附圖對本發(fā)明實施例一種限制網(wǎng)速的方法及系統(tǒng)進行詳細描述。
[0029]應(yīng)當明確,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0030]參看圖1,本發(fā)明的實施例提供一種限制網(wǎng)速的方法,包括:
[0031]S1、獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np ;
[0032]S2、獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;
[0033]S3、將所述Np與所述Sp進行比較;若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
[0034]本實施例中,所述的CPU時鐘周期是指節(jié)拍脈沖或T周期,它是處理操作的最基本的單位,亦即CPU內(nèi)核工作的時鐘頻率的倒數(shù)。
[0035]所述時間窗口用來描述一個時間范圍,包含一個時間范圍的開始和結(jié)束。所述CPU時鐘周期數(shù)的時間窗口是利用CPU時鐘周期數(shù)來表示一個時間范圍,比如用第10個CPU時鐘周期到第15個CPU時鐘周期來表示一個具有5個CPU時鐘周期數(shù)的時間窗口,其中,第15個CPU時鐘周期為該時間窗口的最大值。
[0036]本實施例中,不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的單位為數(shù)量,其取值范圍為(0,η),其中η表示發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包完成后經(jīng)歷過的CPU時鐘周期數(shù)。
[0037]本發(fā)明實施例提供的限制網(wǎng)速的方法,通過將獲取到的設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np和當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp進行比較:若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否貝U,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包;能夠根據(jù)系統(tǒng)中精度最高的數(shù)值CPU時鐘周期判斷出當前是否能夠發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,從而達到準確進行網(wǎng)絡(luò)限速的目的。
[0038]可選地,在本發(fā)明限制網(wǎng)速的方法的另一實施例中,所述Sp的初始值為0,以確保網(wǎng)絡(luò)數(shù)據(jù)包在首次發(fā)送或接收時能夠正常的發(fā)送或接收。
[0039]可選地,參看圖2,在本發(fā)明限制網(wǎng)速的方法的另一實施例中,在所述獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp之前,還可以包括:預先確定當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;其中,
[0040]預先確定當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp的步驟可以包括:
[0041]S40、獲取上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時,所述設(shè)備自開機后到上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時所經(jīng)歷的CPU時鐘周期數(shù)NI ;
[0042]S41、獲取上次發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Ml ;
[0043]S42、獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO;
[0044]S43、按如下的公式,計算出當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp:
[0045]Sp = Ml*N0+Nl。
[0046]本實施例中,M1*N0為上次發(fā)送或者接收Ml字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包需要經(jīng)歷的CPU時鐘周期數(shù)量,M1*N0+N1為所述設(shè)備自開機后到上次完成發(fā)送或者接收Ml字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包時,所經(jīng)歷過的CPU時鐘周期數(shù)量,即為當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值。
[0047]本實施例中,確保了只有等上次發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包完成后,才能進行當前的網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送或者接收,從而能夠準確地對網(wǎng)速進行限制。
[0048]可選地,在本發(fā)明限制網(wǎng)速的方法的另一實施例中,還可以包括:在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn。
[0049]本實施例中,每次成功發(fā)送或者接收數(shù)據(jù)包,就會計算下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值,能夠便于根據(jù)計算出的下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值,來判斷下次何時能夠發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
[0050]可選地,參看圖3,在本發(fā)明限制網(wǎng)速的方法的另一實施例中,所述在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn,可以包括:
[0051]S50、在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,獲取當前發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Mp ;
[0052]S51、獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO;
[0053]S52、按如下的公式,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn:
[0054]Sn = Μρ*Ν0+Νρ。
[0055]本實施例中,Μρ*Ν0為當前發(fā)送或者接收Mp字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包需要經(jīng)歷的CPU時鐘周期數(shù)量,Μρ*Ν0+Νρ為所述設(shè)備自開機后到當前完成發(fā)送或者接收Mp字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包所經(jīng)歷過的CPU時鐘周期數(shù)量,即為下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值:等當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包完成,才能進行下次的網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送或者接收,從而能夠準確地對網(wǎng)速進行限制。
[0056]可選地,參看圖4,在本發(fā)明限制網(wǎng)速的方法的另一實施例中,在所述獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO之前,還可以包括:確定所述發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ;
[0057]其中,所述確定所述發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO的步驟,可以包括:
[0058]S440、獲取所述設(shè)備的CPU時鐘頻率f ;
[0059]S441、按如下公式,計算出發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包需要消耗的CPU時鐘周期數(shù)量NO:
[0060]NO = f/MO ;
[0061]其中,所述MO為預先設(shè)定的網(wǎng)絡(luò)流量閾值,即每秒可以發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)。
[0062]參看圖5,本發(fā)明的實施例提供一種限制網(wǎng)速的系統(tǒng),包括:第一獲取單元1,用于獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np ;第二獲取單元2,用于獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;比較單元3,用于將所述第一獲取單元I獲取的Np與所述第二獲取單元獲取的Sp進行比較;若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
[0063]本發(fā)明實施例提供的限制網(wǎng)速的系統(tǒng),通過將獲取到的設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np和當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp進行比較:若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否貝U,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包;能夠根據(jù)系統(tǒng)中精度最高的數(shù)值CPU時鐘周期判斷出當前是否能夠發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,從而達到準確進行網(wǎng)絡(luò)限速的目的。
[0064]可選地,在本發(fā)明限制網(wǎng)速的系統(tǒng)的另一實施例中,所述Sp的初始值為O以確保網(wǎng)絡(luò)數(shù)據(jù)包在首次發(fā)送或接收時能夠正常的發(fā)送或接收。
[0065]可選地,參看圖6和圖7,在本發(fā)明限制網(wǎng)速的系統(tǒng)的另一實施例中,還可以包括:確定單元4,用于在所述第二獲取單元2獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp之前,預先確定出當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;其中
[0066]所述確定單元4,可以包括:第一獲取子單元40,用于獲取上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時,所述設(shè)備自開機后到上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時所經(jīng)歷的CPU時鐘周期數(shù)NI ;第二獲取子單元41,用于獲取上次發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Ml ;第三獲取子單元42,用于獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ;第一計算子單元43,用于按如下的公式,計算出當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp = M1*N0+N1。
[0067]本實施例中,M1*N0為上次發(fā)送或者接收Ml字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包需要經(jīng)歷的CPU時鐘周期數(shù)量,M1*N0+N1為所述設(shè)備自開機后到上次完成發(fā)送或者接收Ml字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包時,所經(jīng)歷過的CPU時鐘周期數(shù)量,即為當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值。
[0068]本實施例中,確保了只有上次發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包完成后,才能進行當前的網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送或者接收,從而能夠準確地對網(wǎng)速進行限制。
[0069]可選地,參看圖8,在本發(fā)明限制網(wǎng)速的系統(tǒng)的另一實施例中,還可以包括:
[0070]計算單元5,用于在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn。
[0071]本實施例中,每次成功發(fā)送或者接收數(shù)據(jù)包,就會計算下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值,能夠便于根據(jù)計算出的下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值,來判斷下次何時能夠發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
[0072]可選地,參看圖9,在本發(fā)明限制網(wǎng)速的系統(tǒng)的另一實施例中,所述計算單元5,可以包括:第四獲取子單元50,用于在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,獲取當前發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Mp ;第五獲取子單元51,用于獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ;第二計算子單元52,用于按如下的公式,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn=Mp^NO+Np。
[0073]本實施例中,Μρ*Ν0為當前發(fā)送或者接收Mp字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包需要經(jīng)歷的CPU時鐘周期數(shù)量,Μρ*Ν0+Νρ為所述設(shè)備自開機后到當前完成發(fā)送或者接收Mp字節(jié)數(shù)流量的網(wǎng)絡(luò)數(shù)據(jù)包所經(jīng)歷過的CPU時鐘周期數(shù)量,即為下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值。
[0074]本實施例中,只有等當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包完成后,才能進行下次的網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送或者接收,從而能夠準確地對網(wǎng)速進行限制。
[0075]可選地,參看圖10和圖11,在本發(fā)明限制網(wǎng)速的系統(tǒng)的另一實施例中,還可以包括:確定子單元44,用于在所述第三獲取子單元42和第五獲取子單元51獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO之前,確定出發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO,其中,所述確定子單元44,可以包括:第一獲取模塊440,用于獲取所述設(shè)備的CPU時鐘頻率f ;計算模塊441,用于按如下公式,計算出發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包需要消耗的CPU時鐘周期數(shù)量NO = f/MO ;其中,所述MO為預先設(shè)定的網(wǎng)絡(luò)流量閾值,即為每秒可以發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)。
[0076]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機存儲記憶體(RandomAccessMemory, RAM)等。
[0077]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準。
【權(quán)利要求】
1.一種限制網(wǎng)速的方法,其特征在于,包括: 獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np ; 獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;將所述Np與所述Sp進行比較;若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的限制網(wǎng)速的方法,其特征在于,所述Sp的初始值為O。
3.根據(jù)權(quán)利要求1或2所述的限制網(wǎng)速的方法,其特征在于,在所述獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp之前,還包括:預先確定當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;其中 預先確定當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp的步驟包括: 獲取上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時,所述設(shè)備自開機后到上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時所經(jīng)歷的CPU時鐘周期數(shù)NI ; 獲取上次發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Ml ; 獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ; 按如下的公式,計算出當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp:
Sp = M1*N0+N1。
4.根據(jù)權(quán)利要求1所述的限制網(wǎng)速的方法,其特征在于,還包括: 在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn。
5.根據(jù)權(quán)利要求4所述的限制網(wǎng)速的方法,其特征在于,所述在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn,包括: 在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,獲取當前發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Mp ; 獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ; 按如下的公式,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn:
Sn = Mp*NO+Np。
6.根據(jù)權(quán)利要求3或5所述的限制網(wǎng)速的方法,其特征在于,確定所述發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO的步驟,包括: 獲取所述設(shè)備的CPU時鐘頻率f ; 按如下公式,計算出發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包需要消耗的CPU時鐘周期數(shù)量NO:
NO = f/MO ; 其中,所述MO為預先設(shè)定的網(wǎng)絡(luò)流量閾值。
7.一種限制網(wǎng)速的系統(tǒng),其特征在于,包括: 第一獲取單元,用于獲取設(shè)備自開機后到當前所經(jīng)歷的CPU時鐘周期數(shù)Np ; 第二獲取單元,用于獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ; 比較單元,用于將所述第一獲取單元獲取的Np與所述第二獲取單元獲取的Sp進行比較;若Np < Sp,則禁止所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包,否則,允許所述設(shè)備當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包。
8.根據(jù)權(quán)利要求7所述的限制網(wǎng)速的系統(tǒng),其特征在于,所述Sp的初始值為O。
9.根據(jù)權(quán)利要求7或8所述的限制網(wǎng)速的系統(tǒng),其特征在于,還包括:確定單元,用于在所述第二獲取單元獲取當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp之前,預先確定出當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp ;其中 所述確定單元,包括: 第一獲取子單元,用于獲取上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時,所述設(shè)備自開機后到上次開始發(fā)送或者開始接收網(wǎng)絡(luò)數(shù)據(jù)包時所經(jīng)歷的CPU時鐘周期數(shù)NI ; 第二獲取子單元,用于獲取上次發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Ml ; 第三獲取子單元,用于獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ; 第一計算子單元,用于按如下的公式,計算出當前不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sp:
Sp = M1*N0+N1。
10.根據(jù)權(quán)利要求7所述的限制網(wǎng)速的系統(tǒng),其特征在于,還包括: 計算單元,用于在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn。
11.根據(jù)權(quán)利要求10所述的限制網(wǎng)速的系統(tǒng),其特征在于,所述計算單元,包括: 第四獲取子單元,用于在當前發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包時,獲取當前發(fā)送或者接收的網(wǎng)絡(luò)數(shù)據(jù)包的字節(jié)數(shù)Mp ; 第五獲取子單元,用于獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO ; 第二計算子單元,用于按如下的公式,計算出下次不能發(fā)送或者接收網(wǎng)絡(luò)數(shù)據(jù)包的CPU時鐘周期數(shù)的時間窗口的最大值Sn:
Sn = Μρ*Ν0+Νρ。
12.根據(jù)權(quán)利要求9或11所述的限制網(wǎng)速的系統(tǒng),其特征在于,還包括:確定子單元,用于在所述第三獲取子單元和第五獲取子單元獲取預先確定的發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO之前,確定出發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包流量需要消耗的CPU時鐘周期數(shù)量NO,其中,所述確定子單元,包括: 第一獲取模塊,用于獲取所述設(shè)備的CPU時鐘頻率f ; 計算模塊,用于按如下公式,計算出發(fā)送或者接收I字節(jié)網(wǎng)絡(luò)數(shù)據(jù)包需要消耗的CPU時鐘周期數(shù)量NO:NO = f/MO ;其中,所述MO為預先設(shè)定的網(wǎng)絡(luò)流量閾值。
【文檔編號】H04L12/813GK104348748SQ201410281094
【公開日】2015年2月11日 申請日期:2014年6月20日 優(yōu)先權(quán)日:2014年6月20日
【發(fā)明者】楊軍, 徐建新, 危文, 黃小源, 林宗良 申請人:珠海市君天電子科技有限公司