亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法

文檔序號:7921099閱讀:276來源:國知局
專利名稱:一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法
技術(shù)領(lǐng)域
本發(fā)明涉及互聯(lián)網(wǎng)通信技術(shù)領(lǐng)域,具體涉及一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法。
背景技術(shù)
如今,互聯(lián)網(wǎng)通信發(fā)展十分迅速,用戶數(shù)和應(yīng)用日益增長,網(wǎng)絡(luò)流量也快速增加。 因此為保證準(zhǔn)確地為用戶分配帶寬,為每個用戶提供良好的上網(wǎng)體驗,需要能夠按設(shè)定的帶寬精確地對用戶進(jìn)行限速?,F(xiàn)有技術(shù)的網(wǎng)絡(luò)限速方案采用按限速單位(如用戶)統(tǒng)計流量,設(shè)定一個時間段能使用的流量額度。當(dāng)統(tǒng)計的流量達(dá)到限額時則丟掉報文,等到下一個時間段有流量額度可用時,再繼續(xù)發(fā)送報文。當(dāng)在使用路由器等網(wǎng)絡(luò)設(shè)備管理流量時,因為設(shè)備的實時性比較高,所以采用這種限速策略限速效果沒有問題。但在很多應(yīng)用場景里對流量的管理則是使用主機(jī)系統(tǒng)進(jìn)行的,因為主機(jī)系統(tǒng)的實時性能比較差,使用select函數(shù)和usleep函數(shù)等喚醒機(jī)制的精度只能達(dá)到10ms,因此當(dāng)在這種應(yīng)用場景中采用上述策略實現(xiàn)的網(wǎng)絡(luò)限速在較大時間粒度下(IOms)是均勻的,但是在更小的時間粒度內(nèi)則會很不均勻。例如10ms內(nèi)的流量份額,可能會在IOms內(nèi)的前^is 報文就發(fā)完了,而后面剩余的8ms網(wǎng)絡(luò)便會空閑,這就造成瞬間網(wǎng)絡(luò)帶寬占用很高問題。因此現(xiàn)有技術(shù)的限速方法在這種非實時系統(tǒng)中無法滿足對網(wǎng)絡(luò)帶寬占用精度要求比較高的環(huán)境。本發(fā)明的目的就是解決非實時系統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)發(fā)送精確限速的問題。

發(fā)明內(nèi)容
本發(fā)明的目的在于,為解決現(xiàn)有技術(shù)的網(wǎng)絡(luò)限速方法應(yīng)用在非實時系統(tǒng)中并不能解決精確網(wǎng)絡(luò)限速的問題,從而提供一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法。為了實現(xiàn)上述目的,本發(fā)明提供一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,該方法用于處理非實時系統(tǒng)上的精確網(wǎng)絡(luò)限速問題,所述方法為步驟1,用于創(chuàng)建一個檢查線程的步驟。步驟2,用于利用所述檢查線程檢測非實時系統(tǒng)的時鐘,為數(shù)據(jù)報文發(fā)送線程提供精確控制時鐘的步驟??蛇x的,所述步驟1之前還包含如下步驟設(shè)置檢查非實時系統(tǒng)時鐘的時間間隔和報文發(fā)送速度,并創(chuàng)建一個信號量,該信號量用于觸發(fā)報文發(fā)送線程發(fā)送數(shù)據(jù)。采用上述可選步驟后所述步驟2進(jìn)一步包含如下子步驟啟動檢查線程,當(dāng)所述檢查線程檢查到所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔時,釋放所述信號量。發(fā)送線程被喚醒,計算發(fā)送份額,發(fā)送報文;當(dāng)發(fā)送數(shù)據(jù)份額用完后,再次等待信號量。
當(dāng)檢測到信號量時重復(fù)上述步驟,直至所有數(shù)據(jù)報文發(fā)送結(jié)束。其中,上述步驟所述采用信號量觸發(fā)發(fā)送線程的策略可用采用網(wǎng)絡(luò)通信方式加上系統(tǒng)時鐘檢查方式的策略替換;其中,所述網(wǎng)絡(luò)通信方式加上系統(tǒng)時鐘檢查方式的策略為數(shù)據(jù)報文發(fā)送線程監(jiān)聽一個網(wǎng)絡(luò)端口,當(dāng)檢查線程檢查到所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔時,向數(shù)據(jù)報文報文發(fā)送線程監(jiān)聽的端口發(fā)送一個報文,喚醒該線程,執(zhí)行發(fā)送份額計算及發(fā)送報文。可選的,所述檢查線程采用死循環(huán)的方式循環(huán)檢查所述非實時系統(tǒng)的時鐘;所述非實時系統(tǒng)設(shè)置有多顆CPU ;所述數(shù)據(jù)報文發(fā)送線程為多個。進(jìn)一步優(yōu)化的,當(dāng)所述發(fā)送線程為多個時當(dāng)檢查線程發(fā)現(xiàn)所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔值后逐個釋放發(fā)送線程等待的信號量??蛇x的,所述檢查線程和發(fā)送線程間通過IPC信號量機(jī)制同步。,所述發(fā)送線程根據(jù)所述報文發(fā)送速度和時間間隔計算每個時隙內(nèi)應(yīng)該發(fā)生的數(shù)據(jù)量。所述的份額為本次時間間隔內(nèi)應(yīng)該發(fā)送的數(shù)據(jù)量,所述時間間隔是指當(dāng)前時間與上次發(fā)送數(shù)據(jù)時記錄的時間的差值,其計算公式為份額=(帶寬/8)/(1秒/時間間隔)。與現(xiàn)有技術(shù)相比,本發(fā)明由一個系統(tǒng)時鐘檢查線程為其它數(shù)據(jù)報文發(fā)送線程提供精確的時鐘,精度可以達(dá)到微秒量級,其缺點(diǎn)是一顆CPU的占用率始終是100 %,不過目前的服務(wù)器配置的都是多顆多核CPU,使用該方法后,并不會影響應(yīng)用服務(wù)的性能,因此占用一顆CPU而實現(xiàn)為其他多個報文發(fā)送線程提供精確的時鐘是值得的。此外,本發(fā)明還通過系統(tǒng)信號量的方式喚醒數(shù)據(jù)發(fā)送線程,不會出現(xiàn)延時情況,可以保證數(shù)據(jù)發(fā)送速度控制的精確性。綜上所述,本發(fā)明的優(yōu)勢在于由獨(dú)立的定時線程提供定時服務(wù),精度可以達(dá)到100 微秒,比現(xiàn)有技術(shù)精度提高100倍以上??梢员WC限速更準(zhǔn)確、均勻。


圖1是本發(fā)明的非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法檢查線程(即實施例的定時線程)流程示意圖;圖2是本發(fā)明的數(shù)據(jù)報文發(fā)送線程流程示意圖。
具體實施例方式下面結(jié)合附圖和具體的實施方式對本發(fā)明的內(nèi)容進(jìn)一步詳細(xì)描述。為了保證精確、均勻地發(fā)送報文,本發(fā)明提供了在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,包括以下步驟步驟1,系統(tǒng)中有一個或多個線程處理數(shù)據(jù)報文發(fā)送(以下稱發(fā)送線程),用一個系統(tǒng)時鐘檢查線程為發(fā)包線程提供精確的定時;檢查線程和發(fā)送線程間通過IPC信號量機(jī)制同步。檢查的時間間隔根據(jù)報文發(fā)送的精度要求預(yù)先設(shè)定(如500微秒)。步驟2,檢查線程循環(huán)檢查系統(tǒng)時鐘,到設(shè)定時間間隔后,釋放信號量;(因為一直循環(huán)運(yùn)行,所以稱做忙等方式)。步驟3,發(fā)送線程在有可用流量份額時,循環(huán)發(fā)送報文,發(fā)送份額用光后,等待信號量。
步驟4,檢查線程釋放信號量后,發(fā)送線程被喚醒,根據(jù)當(dāng)前系統(tǒng)時間重新計算發(fā)送份額,發(fā)送報文。所述的步驟⑵具體為定時線程循環(huán)檢測系統(tǒng)時鐘,當(dāng)發(fā)現(xiàn)系統(tǒng)時鐘到達(dá)預(yù)先設(shè)定時間間隔值后逐個釋放發(fā)包線程等待的信號量。所述的步驟(4)具體為發(fā)包線程被喚醒后,按預(yù)先設(shè)定的帶寬和已經(jīng)流逝時間計算本次數(shù)據(jù)發(fā)送可用份額,按計算的份額量發(fā)送報文。所謂的流逝時間是指當(dāng)前時間與上次發(fā)送數(shù)據(jù)時記錄的時間的差值。發(fā)送份額計算公式為份額=(帶寬/8)/(1秒/時間間隔)。本發(fā)明技術(shù)方案的實施具體步驟如下實施例1如圖1所示,具體描述如下。步驟101,提供數(shù)據(jù)下載服務(wù)的緩存系統(tǒng),對每個連接限制帶寬10M。步驟102,系統(tǒng)為每個連接建立報文發(fā)送線程(以下稱發(fā)送線程)發(fā)送用戶下載的內(nèi)容,用一個系統(tǒng)時鐘檢查線程為發(fā)包線程提供精確的定時(以下稱定時線程);定時(檢查)線程和發(fā)包線程間通過網(wǎng)絡(luò)通信方式進(jìn)行同步,每個發(fā)送線程監(jiān)聽一個網(wǎng)絡(luò)端口。定時的時間間隔根據(jù)報文發(fā)送的精度要求預(yù)先設(shè)定(本實例為2毫秒)。步驟103,定時線程,線程循環(huán)檢查系統(tǒng)時鐘,每到1毫秒,設(shè)置下次超時時標(biāo),同時向發(fā)送線程發(fā)送一個網(wǎng)絡(luò)報文。步驟104,發(fā)包線程計算本次時間間隔內(nèi)應(yīng)該發(fā)送的數(shù)據(jù)量,循環(huán)發(fā)送報文,然后從IOM額度中減去本次已經(jīng)發(fā)送的數(shù)據(jù)量,當(dāng)本次應(yīng)發(fā)送的份額用完后,等待接收網(wǎng)絡(luò)端口上的數(shù)據(jù)。其中,所述的份額為本次時間間隔內(nèi)應(yīng)該發(fā)送的數(shù)據(jù)量,這里的時間間隔是指當(dāng)前時間與上次發(fā)送數(shù)據(jù)時記錄的時間的差值。其計算公式為份額=(帶寬/8)/(1秒/時間間隔)。例如帶寬為10Mbps,距離上次發(fā)送數(shù)據(jù)的時間間隔為500微秒,那么本次時間間隔內(nèi)發(fā)送的份額為(10*1024*1024/8)/(1000000/500) = 655字節(jié)。當(dāng)剩余數(shù)據(jù)不足655 字節(jié)時,按照實際字節(jié)數(shù)發(fā)送。步驟105,定時線程釋放發(fā)送網(wǎng)絡(luò)報文后,發(fā)包線程接收到數(shù)據(jù)被喚醒,根據(jù)當(dāng)前系統(tǒng)時間重新計算本次應(yīng)發(fā)送的數(shù)據(jù)份額,然后執(zhí)行數(shù)據(jù)發(fā)送。實施例2:采用本發(fā)明的技術(shù)方案并采用信號量觸發(fā)發(fā)送流程的步驟如下步驟201,HFC加速系統(tǒng),從有線網(wǎng)絡(luò)向用戶下推數(shù)據(jù),對IPQAM限制下行帶寬38M ; 步驟202,系統(tǒng)為每個IPQAM建立線程通過IPQAM向用戶下推數(shù)據(jù)(以下稱發(fā)包線程)。用一個系統(tǒng)時鐘檢查線程為發(fā)包線程提供精確的定時(以下稱定時線程);定時線程和發(fā)包線程間通過IPC信號量機(jī)制同步。定時的時間間隔根據(jù)報文發(fā)送的精度要求預(yù)先設(shè)定(本實例為500微秒)。步驟203,定時線程,線程循環(huán)檢查系統(tǒng)時鐘,每到500微秒,設(shè)置下次超時時標(biāo), 同時釋放信號量。步驟204,發(fā)包線程每個時隙應(yīng)該發(fā)送的數(shù)據(jù)量,循環(huán)發(fā)送報文,然后從38M額度中減去本次發(fā)包數(shù)據(jù)量,當(dāng)本次應(yīng)發(fā)送份額用完后,等待信號量。步驟205,定時線程釋放信號量后,發(fā)包線程被喚醒,根據(jù)當(dāng)前系統(tǒng)時間重新計算本次應(yīng)發(fā)送的數(shù)據(jù)份額,執(zhí)行報文發(fā)送。其中,所述的份額為本次時間間隔內(nèi)應(yīng)該發(fā)送的數(shù)據(jù)量,這里的時間間隔是指當(dāng)前時間與上次發(fā)送數(shù)據(jù)時記錄的時間的差值。其計算公式為份額=(帶寬/8)/(1秒/時間間隔)。例如帶寬為10Mbps,距離上次發(fā)送數(shù)據(jù)的時間間隔為500微秒,那么本次時間間隔內(nèi)發(fā)送的份額為(10*1024*1024/8)/(1000000/500) =655字節(jié)。當(dāng)剩余數(shù)據(jù)不足655字節(jié)時,按照實際字節(jié)數(shù)發(fā)送。上述兩個實施例所述的發(fā)包線程執(zhí)行報文發(fā)送的詳細(xì)流程如圖2所示,當(dāng)發(fā)送線程計算本次發(fā)送份額后,根據(jù)情況判斷是否可以發(fā)送數(shù)據(jù)。當(dāng)判斷條件成立時,按照計算的份額發(fā)送數(shù)據(jù);當(dāng)判斷條件不成立時,記錄本次計算的份額,并繼續(xù)等待喚醒,在下次被喚醒后,如果滿足發(fā)送條件,將當(dāng)前份額與上次份額累加后一起發(fā)送。本發(fā)明的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,也可以用在其它需要精確定時的環(huán)境。最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管參照實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,該方法用于處理非實時系統(tǒng)上的精確網(wǎng)絡(luò)限速問題,所述方法為步驟1,用于創(chuàng)建一個檢查線程的步驟;步驟2,用于利用所述檢查線程檢測非實時系統(tǒng)的時鐘,為數(shù)據(jù)報文發(fā)送線程提供精確控制時鐘的步驟。
2.根據(jù)權(quán)利要求1所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述步驟1之前還包含如下步驟設(shè)置檢查非實時系統(tǒng)時鐘的時間間隔和報文發(fā)送速度,并創(chuàng)建一個信號量,該信號量用于觸發(fā)報文發(fā)送線程發(fā)送數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述步驟2進(jìn)一步包含如下子步驟啟動檢查線程,當(dāng)所述檢查線程檢查到所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔時, 釋放所述信號量;發(fā)送線程被喚醒,計算發(fā)送份額,發(fā)送報文;當(dāng)發(fā)送數(shù)據(jù)份額用完后,再次等待信號量;當(dāng)檢測到信號量時重復(fù)上述步驟,直至所有數(shù)據(jù)報文發(fā)送結(jié)束。
4.根據(jù)權(quán)利要求3所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述采用信號量觸發(fā)發(fā)送線程的策略可用采用網(wǎng)絡(luò)通信方式加上系統(tǒng)時鐘檢查方式的策略替換;其中,所述網(wǎng)絡(luò)通信方式加上系統(tǒng)時鐘檢查方式的策略為數(shù)據(jù)報文發(fā)送線程監(jiān)聽一個網(wǎng)絡(luò)端口,當(dāng)檢查線程檢查到所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔時,向數(shù)據(jù)報文報文發(fā)送線程監(jiān)聽的端口發(fā)送一個報文,喚醒該線程,執(zhí)行發(fā)送份額計算及發(fā)送報文。
5.根據(jù)權(quán)利要求3所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述檢查線程采用死循環(huán)的方式循環(huán)檢查所述非實時系統(tǒng)的時鐘。
6.根據(jù)權(quán)利要求1或3所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述非實時系統(tǒng)設(shè)置有多顆CPU ;所述發(fā)送線程為多個。
7.根據(jù)權(quán)利要求6所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述發(fā)送線程為多個時當(dāng)檢查線程發(fā)現(xiàn)所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔值后逐個釋放發(fā)送線程等待的信號量。
8.根據(jù)權(quán)利要求2或3所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述檢查線程和發(fā)送線程間通過IPC信號量機(jī)制同步;所述的時間間隔根據(jù)報文發(fā)送的精度要求進(jìn)行設(shè)定。
9.根據(jù)權(quán)利要求3所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述發(fā)送線程根據(jù)所述報文發(fā)送速度和時間間隔計算每個時隙內(nèi)應(yīng)該發(fā)生的數(shù)據(jù)量。
10.根據(jù)權(quán)利要求3所述的在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,其特征在于,所述的份額為本次時間間隔內(nèi)應(yīng)該發(fā)送的數(shù)據(jù)量,所述時間間隔是指當(dāng)前時間與上次發(fā)送數(shù)據(jù)時記錄的時間的差值,其計算公式為份額=(帶寬/8)/(1秒/時間間隔)。
全文摘要
本發(fā)明提供了一種在非實時系統(tǒng)上精確網(wǎng)絡(luò)限速的方法,用于處理非實時系統(tǒng)上的精確網(wǎng)絡(luò)限速,所述方法為步驟1,創(chuàng)建一個檢查線程;步驟2,利用所述檢查線程檢測非實時系統(tǒng)的時鐘,為數(shù)據(jù)報文發(fā)送線程提供精確控制時鐘。所述步驟1之前還包含如下步驟設(shè)置檢查非實時系統(tǒng)時鐘的時間間隔和報文發(fā)送速度,并創(chuàng)建一個信號量,該信號量用于觸發(fā)報文發(fā)送線程發(fā)送數(shù)據(jù)。所述步驟2為啟動檢查線程,當(dāng)所述檢查線程檢查到所述非實時系統(tǒng)的時鐘到達(dá)所述時間間隔時,釋放所述信號量;發(fā)送線程被喚醒,計算發(fā)送份額,發(fā)送報文;當(dāng)發(fā)送數(shù)據(jù)份額用完后,再次等待信號量;當(dāng)檢測到信號量時重復(fù)上述步驟。本發(fā)明的網(wǎng)速控制精度可以達(dá)到100微秒。
文檔編號H04L12/56GK102368729SQ20111028699
公開日2012年3月7日 申請日期2011年9月23日 優(yōu)先權(quán)日2011年9月23日
發(fā)明者王超峰, 陳海濤 申請人:北京東方網(wǎng)信科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1