在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例公開(kāi)了一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置。所述方法包括:監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率;當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),和/或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值;當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),和/或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。根據(jù)本發(fā)明實(shí)施例,可以滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率的要求。
【專(zhuān)利說(shuō)明】在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,特別是涉及在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置?!颈尘凹夹g(shù)】
[0002]Linux TCP/IP(傳輸控制協(xié)議 / 網(wǎng)絡(luò)協(xié)議,Transfer Control Protocol/InternetProtocol)棧由于其安全性、高效性和開(kāi)源的性質(zhì),被廣泛地應(yīng)用于網(wǎng)絡(luò)設(shè)備的開(kāi)發(fā)。LinuxTCP/IP棧作為一種路由轉(zhuǎn)發(fā)設(shè)備,具有路由轉(zhuǎn)發(fā)功能,該路由轉(zhuǎn)發(fā)功能就是將從A網(wǎng)口進(jìn)入TCP/IP棧的數(shù)據(jù)包,通過(guò)一定的路由算法從B網(wǎng)口出TCP/IP棧,以達(dá)到數(shù)據(jù)中轉(zhuǎn)分發(fā)的功能,實(shí)現(xiàn)數(shù)據(jù)從A網(wǎng)絡(luò)進(jìn)入到B網(wǎng)絡(luò)的目的。
[0003]在Linux TCP/IP棧中,TCP數(shù)據(jù)傳輸是一種采用滑動(dòng)窗口機(jī)制和確認(rèn)機(jī)制的數(shù)據(jù)傳輸方式,其具有高可靠性的特點(diǎn),被廣泛應(yīng)用在對(duì)HTTP (超文本傳輸協(xié)議,HyperTextTransfer Protocol)數(shù)據(jù)和 FTP (文本傳輸協(xié)議,F(xiàn)ile Transfer Protocol)數(shù)據(jù)的傳輸。
[0004]在實(shí)際應(yīng)用中,通常對(duì)TCP/IP棧有高運(yùn)行效率的要求,即,在TCP/IP棧進(jìn)行TCP數(shù)據(jù)傳輸時(shí),要保證傳輸速率高的同時(shí),也要盡量保證CPU負(fù)載占用率低。該要求不僅適用于TCP/IP棧,也同樣適用于其它的路由轉(zhuǎn)發(fā)設(shè)備。
[0005]目前,迫切需要一種解決方案,以滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率的要求。
【發(fā)明內(nèi)容】
[0006]為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供了在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置,以滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率的要求。
[0007]本發(fā)明實(shí)施例公開(kāi)了如下技術(shù)方案:
[0008]根據(jù)本發(fā)明實(shí)施例的第一方面,公開(kāi)了一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法,包括:
[0009]監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率;
[0010]當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值;
[0011]當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。
[0012]結(jié)合本發(fā)明的第一方面,本發(fā)明還具有第一種可能,即所述監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率,包括:
[0013]計(jì)算空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)處于運(yùn)行狀態(tài)時(shí)的運(yùn)行時(shí)間與統(tǒng)計(jì)周期的比值,并作為所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率;
[0014]計(jì)算I與所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率的差值,并作為當(dāng)前的CPU負(fù)載占用率。
[0015]結(jié)合本發(fā)明的第一方面,本發(fā)明還具有第二種可能,即所述監(jiān)測(cè)當(dāng)前的傳輸速率,包括:
[0016]計(jì)算路由轉(zhuǎn)發(fā)設(shè)備在最近一個(gè)統(tǒng)計(jì)周期內(nèi)接收到的數(shù)據(jù)包的長(zhǎng)度總和;
[0017]計(jì)算所述長(zhǎng)度總和與統(tǒng)計(jì)周期的比值,并作為當(dāng)前的傳輸速率。
[0018]結(jié)合本發(fā)明的第一方面,本發(fā)明還具有第三種可能,即所述監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率為:
[0019]統(tǒng)計(jì)路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù);
[0020]所述當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為:
[0021]當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù);
[0022]當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為:
[0023]當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)。
[0024]結(jié)合本發(fā)明的第一方面的第三種可能,本發(fā)明還具有第四種可能,即所述減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為:控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù);所述增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為:控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù)。
[0025]結(jié)合本發(fā)明的第一方面的第四種可能,本發(fā)明還具有第五種可能,即還包括:
[0026]當(dāng)所述總個(gè)數(shù)小于或等于第二數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù),所述第二數(shù)量閾值小于所述第二數(shù)量閾值。
[0027]根據(jù)本發(fā)明實(shí)施例的第一方面,公開(kāi)了一種在高運(yùn)行效率下傳輸數(shù)據(jù)的裝置,包括:
[0028]監(jiān)測(cè)單元,用于監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率;
[0029]第一控制單元,用于當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值;
[0030]第二控制單元,用于當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。[0031]結(jié)合本發(fā)明的第二方面,本發(fā)明還具有第一種可能,即所述監(jiān)測(cè)單元包括:
[0032]第一計(jì)算子單元,用于計(jì)算空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)處于運(yùn)行狀態(tài)時(shí)的運(yùn)行時(shí)間與統(tǒng)計(jì)周期的比值,并作為所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率;
[0033]第二計(jì)算子單元,用于計(jì)算I與所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率的差值,并作為當(dāng)前的CPU負(fù)載占用率。
[0034]結(jié)合本發(fā)明的第二方面,本發(fā)明還具有第二種可能,即所述監(jiān)測(cè)單元包括:
[0035]第三計(jì)算子單元,用于計(jì)算路由轉(zhuǎn)發(fā)設(shè)備在最近一個(gè)統(tǒng)計(jì)周期內(nèi)接收到的數(shù)據(jù)包的長(zhǎng)度總和;
[0036]第四計(jì)算子單元,用于計(jì)算所述長(zhǎng)度總和與統(tǒng)計(jì)周期的比值,并作為當(dāng)前的傳輸速率。
[0037]結(jié)合本發(fā)明的第二方面,本發(fā)明還具有第三種可能,即所述監(jiān)測(cè)單元包括:
[0038]統(tǒng)計(jì)子單元,用于統(tǒng)計(jì)路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù);
[0039]所述第一控制單元具體用于,當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù);
[0040]所述第二控制單元具體用于,當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)。
[0041]結(jié)合本發(fā)明的第二方面的第三種可能,本發(fā)明還具有第四種可能,即所述第一控制單元具體用于,當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù);所述第二控制單元具體用于,當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù)。
[0042]結(jié)合本發(fā)明的第二方面的第四種可能,本發(fā)明還具有第五種可能,即還包括:
[0043]第三控制單元,用于當(dāng)所述總個(gè)數(shù)小于或等于第二數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù),所述第二數(shù)量閾值小于所述第二數(shù)量閾值。
[0044]由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0045]動(dòng)態(tài)監(jiān)控CPU負(fù)載占用率和/或傳輸速率,并根據(jù)CPU負(fù)載占用率和/或傳輸速率的當(dāng)前情況,通過(guò)控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,控制路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,進(jìn)而動(dòng)態(tài)調(diào)整CPU負(fù)載占用率和/或傳輸速率,達(dá)到在高傳輸速率和高CPU負(fù)載占用率時(shí)可以降低CPU負(fù)載占用率,在低傳輸速率和低CPU負(fù)載占用率時(shí)可以提高傳輸速率,滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率要求。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0046]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0047]圖1為本發(fā)明實(shí)施例一提供的一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法的流程圖;
[0048]圖2為本發(fā)明實(shí)施例二提供的另一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法的流程圖;
[0049]圖3為本發(fā)明中在低傳輸速率和低CPU負(fù)載占用率的場(chǎng)景中傳輸數(shù)據(jù)的示意圖;
[0050]圖4為本發(fā)明中在高傳輸速率和高CPU負(fù)載占用率的場(chǎng)景中傳輸數(shù)據(jù)的示意圖;
[0051]圖5為本發(fā)明實(shí)施例三提供的一種在高運(yùn)行效率下傳輸數(shù)據(jù)的裝置的結(jié)構(gòu)圖;
[0052]圖6為本發(fā)明中監(jiān)測(cè)單元的一種結(jié)構(gòu)示意圖;
[0053]圖7為本發(fā)明的通訊裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0054]本發(fā)明實(shí)施例提供了在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置。本發(fā)明技術(shù)方案的核心在于,在傳輸速率和CPU負(fù)載占用率都比較低的情況下,增大傳輸速率,而在傳輸速率和CPU負(fù)載占用率都比較高的情況下,減小CPU負(fù)載占用率。通過(guò)這樣的動(dòng)態(tài)控制方式,使傳輸速率和CPU負(fù)載占用率達(dá)到一種均衡的狀態(tài),從而保證路由轉(zhuǎn)發(fā)設(shè)備具有高運(yùn)行效率。
[0055]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。
[0056]實(shí)施例一
[0057]以TCP/IP棧為例,本發(fā)明的發(fā)明人在研究中發(fā)現(xiàn),TCP/IP棧運(yùn)行在軟中斷中,而由于軟中斷具有優(yōu)先級(jí)高,不可搶占等特點(diǎn),因此,TCP/IP棧在將已進(jìn)入棧內(nèi)的所有數(shù)據(jù)被處理完畢后,才會(huì)調(diào)度其它任務(wù)。出于降低TCP/IP棧的CPU負(fù)載占用率的設(shè)計(jì)考慮,需要TCP/IP棧一次處理盡可能多的數(shù)據(jù),這樣就可以減少切換任務(wù)的次數(shù),從而降低切換任務(wù)消耗的系統(tǒng)開(kāi)銷(xiāo),并最終降低了 CPU負(fù)載占用率。但是,TCP/IP棧一次處理的數(shù)據(jù)越多,對(duì)其它任務(wù)的打斷時(shí)間就會(huì)越長(zhǎng),TCP/IP棧對(duì)數(shù)據(jù)傳輸?shù)拇刑幚砟芰υ酱螅⑿刑幚砟芰蜁?huì)越小,從而造成傳輸時(shí)延變大。而在傳輸帶寬不受限,TCP窗口一定的情況下,由于傳輸速率與傳輸時(shí)延成反比關(guān)系,因此,傳輸速率就會(huì)相應(yīng)地變小。也就是說(shuō),通過(guò)控制TCP/IP棧一次處理的數(shù)據(jù)量,可以同時(shí)改變傳輸速率和CPU負(fù)載占用率。即,如果TCP/IP棧一次處理的數(shù)據(jù)量越大,CPU負(fù)載占用率就越小,但同時(shí)傳輸時(shí)延也就越大,進(jìn)而傳輸速率也越小。反之,如果TCP/IP棧一次處理的數(shù)據(jù)量越小,傳輸時(shí)延越小,傳輸速率就越大,但同時(shí)CPU負(fù)載占用率也越大。
[0058]而本發(fā)明的發(fā)明人還在研究中發(fā)現(xiàn),TCP/IP棧一次處理的數(shù)據(jù)量的大小可以由quota值決定,quota值即為T(mén)CP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,當(dāng)一個(gè)網(wǎng)卡驅(qū)動(dòng)遞交給TCP/IP棧的數(shù)據(jù)包的個(gè)數(shù)大于quota值時(shí),TCP/IP棧處理完quota值個(gè)數(shù)據(jù)包后就會(huì)結(jié)束處理,并轉(zhuǎn)而去處理其它網(wǎng)卡遞交的數(shù)據(jù)包。因此,當(dāng)網(wǎng)卡驅(qū)動(dòng)遞交給TCP/IP棧的數(shù)據(jù)包的個(gè)數(shù)大于quota值時(shí),通過(guò)改變quota值(B卩,TCP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值),即可改變TCP/IP棧一次處理的數(shù)據(jù)量。
[0059]另一方面,當(dāng)網(wǎng)卡驅(qū)動(dòng)遞交給TCP/IP棧的數(shù)據(jù)包的個(gè)數(shù)小于quota值時(shí),通過(guò)控制網(wǎng)卡驅(qū)動(dòng)遞交給TCP/IP棧的數(shù)據(jù)包的個(gè)數(shù),同樣可以改變TCP/IP棧一次處理的數(shù)據(jù)量的大小,進(jìn)而改變傳輸速率和CPU負(fù)載占用率。即,如果網(wǎng)卡驅(qū)動(dòng)遞交給TCP/IP棧的數(shù)據(jù)量越大,CPU負(fù)載占用率就越小,但同時(shí)傳輸時(shí)延越大,進(jìn)而傳輸速率也越小。反之,如果網(wǎng)卡遞交給TCP/IP棧的數(shù)據(jù)量越小,傳輸時(shí)延越小,傳輸速率就越大,但同時(shí)CPU負(fù)載占用率也越大。
[0060]在一般的路由轉(zhuǎn)發(fā)設(shè)備中,“TCP/IP”棧相當(dāng)于“上層的高優(yōu)先級(jí)任務(wù)”,“網(wǎng)卡驅(qū)動(dòng)”相當(dāng)于“下層的低優(yōu)先級(jí)任務(wù)”。
[0061]因此,在本實(shí)施例中,通過(guò)控制TCP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,和/或,控制網(wǎng)卡驅(qū)動(dòng)遞交給TCP/IP棧的數(shù)據(jù)包的總個(gè)數(shù),來(lái)動(dòng)態(tài)改變傳輸速率和CPU負(fù)載占用率,使傳輸速率和CPU負(fù)載占用率達(dá)到一種均衡的狀態(tài),從而保證路由轉(zhuǎn)發(fā)設(shè)備具有高運(yùn)行效率。
[0062]請(qǐng)參閱圖1,其為本發(fā)明實(shí)施例一提供的一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法的流程圖,該方法包括以下步驟:
[0063]步驟101:監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率;
[0064]由于CPU負(fù)載占用率和傳輸速率的狀態(tài)是相同的,即,當(dāng)CPU負(fù)載占用率高時(shí),傳輸速率必然是高的,而當(dāng)CPU負(fù)載占用率低時(shí),傳輸速率必然也是低的。因此,在本步驟中,可以?xún)H監(jiān)測(cè)CPU負(fù)載占用率和傳輸速率中的任意一個(gè)參數(shù),當(dāng)然,也可以同時(shí)對(duì)這兩個(gè)參數(shù)進(jìn)行監(jiān)測(cè)。
[0065]其中,監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率具體包括:計(jì)算空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)處于運(yùn)行狀態(tài)時(shí)的運(yùn)行時(shí)間與統(tǒng)計(jì)周期的比值,并作為所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率;計(jì)算I與所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率的差值,并作為當(dāng)前的CPU負(fù)載占用率。
[0066]監(jiān)測(cè)當(dāng)前的傳輸速率具體包括:計(jì)算路由轉(zhuǎn)發(fā)設(shè)備在最近一個(gè)統(tǒng)計(jì)周期內(nèi)接收到的數(shù)據(jù)包的長(zhǎng)度總和;計(jì)算所述長(zhǎng)度總和與統(tǒng)計(jì)周期的比值,并作為當(dāng)前的傳輸速率。
[0067]步驟102:當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值;
[0068]步驟103:當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。
[0069]例如,如果當(dāng)前的CPU負(fù)載占用率小于最小預(yù)設(shè)閾值,可以減小網(wǎng)卡驅(qū)動(dòng)向TCP/IP棧遞交的數(shù)據(jù)包的個(gè)數(shù),或者,也可以減小TCP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值(即,改變quota值)。相應(yīng)的,如果當(dāng)前的CPU負(fù)載占用率大于最大預(yù)設(shè)閾值,可以增大網(wǎng)卡驅(qū)動(dòng)向TCP/IP棧遞交的數(shù)據(jù)包的個(gè)數(shù),或者,也可以增大TCP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。默認(rèn)情況下,quota值為64,TCP/IP棧一次最多可以處理64個(gè)IP包。當(dāng)然,除了可以根據(jù)CPU負(fù)載占用率的大小來(lái)調(diào)整CPU負(fù)載占用率和傳輸速率之外,也可以根據(jù)傳輸速率的大小來(lái)調(diào)整CPU負(fù)載占用率和傳輸速率。
[0070]需要說(shuō)明的是,CPU負(fù)載占用率和傳輸速率都有其對(duì)應(yīng)的最小預(yù)設(shè)閾值和最大預(yù)設(shè)閾值。并且,最小預(yù)設(shè)閾值和最大預(yù)設(shè)閾值可以為同一個(gè)數(shù)值,可以為不同的數(shù)值。當(dāng)最小預(yù)設(shè)閾值和最大預(yù)設(shè)閾值為不同的數(shù)值時(shí),如果當(dāng)前的CPU負(fù)載占用率或者傳輸速率位于最小預(yù)設(shè)閾值和最大預(yù)設(shè)閾值之間,可以認(rèn)為路由轉(zhuǎn)發(fā)設(shè)備處于高運(yùn)行效率的狀態(tài)下,即,處于高傳輸速率和低負(fù)載占用率的狀態(tài)下。此時(shí),不對(duì)傳輸時(shí)延進(jìn)行任何調(diào)整。即,既不對(duì)下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)進(jìn)行調(diào)整,也不對(duì)上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值進(jìn)行調(diào)整,而是維持當(dāng)前的數(shù)目。
[0071]還需要說(shuō)明的是,CPU負(fù)載占用率和傳輸速率對(duì)應(yīng)的“最小預(yù)設(shè)閾值”和“最大預(yù)設(shè)閾值”的具體數(shù)值可以根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行設(shè)置,本發(fā)明的技術(shù)方案對(duì)此不做限定。
[0072]由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0073]動(dòng)態(tài)監(jiān)控CPU負(fù)載占用率和/或傳輸速率,并根據(jù)CPU負(fù)載占用率和/或傳輸速率的當(dāng)前情況,通過(guò)控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,控制路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,進(jìn)而動(dòng)態(tài)調(diào)整CPU負(fù)載占用率和/或傳輸速率,達(dá)到在高傳輸速率和高CPU負(fù)載占用率時(shí)可以降低CPU負(fù)載占用率,在低傳輸速率和低CPU負(fù)載占用率時(shí)可以提高傳輸速率,滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率要求。
[0074]實(shí)施例二
[0075]發(fā)明人在研究中還發(fā)現(xiàn),通常在高傳輸速率和高CPU負(fù)載占用率的場(chǎng)景中,網(wǎng)卡驅(qū)動(dòng)一次接收到的數(shù)據(jù)包的個(gè)數(shù)就會(huì)比較多,而在低傳輸速率和低CPU負(fù)載占用率的場(chǎng)景中,網(wǎng)卡驅(qū)動(dòng)一次接收的數(shù)據(jù)包的個(gè)數(shù)就會(huì)比較少。因此,除了可以直接計(jì)算CPU負(fù)載占用率和/或傳輸速率的當(dāng)前值之外,還可以通過(guò)網(wǎng)卡驅(qū)動(dòng)一次接收到的數(shù)據(jù)包的個(gè)數(shù)來(lái)間接確定CPU負(fù)載占用率和/或傳輸速率的當(dāng)前大小情況,并且,根據(jù)間接確定的CPU負(fù)載占用率和/或傳輸速率的當(dāng)前大小情況,調(diào)整網(wǎng)卡驅(qū)動(dòng)一次向TCP/IP棧遞交的數(shù)據(jù)包的總個(gè)數(shù),以滿(mǎn)足高運(yùn)行效率的要求。
[0076]其中,當(dāng)網(wǎng)卡驅(qū)動(dòng)一次接收到的數(shù)據(jù)包的個(gè)數(shù)比較多時(shí),說(shuō)明傳輸速率高,CPU負(fù)載占用率高。此時(shí),為了降低CPU占用率,需要減小切換任務(wù)的次數(shù),即,需要增大網(wǎng)卡向TCP/IP棧遞交的數(shù)據(jù)包的總個(gè)數(shù)。當(dāng)網(wǎng)卡驅(qū)動(dòng)一次接收到的數(shù)據(jù)包的個(gè)數(shù)比較少時(shí),說(shuō)明傳輸速率低,CPU負(fù)載占用率低。此時(shí),為了提高傳輸速率,需要減小傳輸時(shí)延,即,需要減小網(wǎng)卡向TCP/IP棧遞交的數(shù)據(jù)包的總個(gè)數(shù)。
[0077]對(duì)于網(wǎng)卡驅(qū)動(dòng)而言,一種增大其向TCP/IP棧遞交的數(shù)據(jù)包的總個(gè)數(shù)的方式是,當(dāng)網(wǎng)卡驅(qū)動(dòng)一次接收到多少個(gè)數(shù)據(jù)包,就可以向TCP/IP棧遞交多少個(gè)數(shù)據(jù)包。一種減小其向TCP/IP棧遞交的數(shù)據(jù)包的總個(gè)數(shù)的方式是,網(wǎng)卡驅(qū)動(dòng)一次接收到的數(shù)據(jù)包不能全部遞交給TCP/IP棧,而是將接收到的數(shù)據(jù)包分批次地遞交給TCP/IP棧。
[0078]請(qǐng)參閱圖2,其為本發(fā)明實(shí)施例二提供的另一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法的流程圖,該方法包括以下步驟:
[0079]步驟201:統(tǒng)計(jì)路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù);
[0080]步驟202:當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù);
[0081]步驟203:當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù)。
[0082]在一般情況下,當(dāng)下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù)過(guò)小時(shí),即使下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù),對(duì)傳輸速率的提高不會(huì)起到明顯的作用,反而會(huì)明顯增大CPU負(fù)載占用率。因此,作為一種優(yōu)選的實(shí)施方式,當(dāng)下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù)小于或等于第二數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù),所述第二數(shù)量閾值小于所述第二數(shù)量閾值。
[0083]需要說(shuō)明的是,“第一數(shù)量閾值”和“第二數(shù)量閾值”的具體數(shù)值可以根據(jù)實(shí)際應(yīng)用場(chǎng)景進(jìn)行設(shè)置,本發(fā)明的技術(shù)方案對(duì)此不做限定。
[0084]由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0085]動(dòng)態(tài)監(jiān)控CPU負(fù)載占用率和/或傳輸速率,并根據(jù)CPU負(fù)載占用率和/或傳輸速率的當(dāng)前情況,通過(guò)控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,控制路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,進(jìn)而動(dòng)態(tài)調(diào)整CPU負(fù)載占用率和/或傳輸速率,達(dá)到在高傳輸速率和高CPU負(fù)載占用率時(shí)可以降低CPU負(fù)載占用率,在低傳輸速率和低CPU負(fù)載占用率時(shí)可以提高傳輸速率,滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率要求。
[0086]如圖3所示,在低傳輸速率和低CPU負(fù)載占用率的場(chǎng)景中,需要通過(guò)減小網(wǎng)卡驅(qū)動(dòng)一次遞交給TCP/IP棧的數(shù)據(jù)包的總個(gè)數(shù),或者,減小TCP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,可以減小TCP/IP棧一次處理的數(shù)據(jù)量,降低了 TCP/IP棧一次運(yùn)行時(shí)間,及時(shí)讓接收端接收到數(shù)據(jù)包之后回復(fù)ACK,進(jìn)而發(fā)送端可以及時(shí)滑動(dòng)窗口并發(fā)送新的數(shù)據(jù),最終提高傳輸速率。
[0087]如圖4所示,在高傳輸速率和高CPU負(fù)載占用率的場(chǎng)景中,需要通過(guò)增大網(wǎng)卡驅(qū)動(dòng)一次遞交給TCP/IP棧的數(shù)據(jù)包的總個(gè)數(shù),或者,增大TCP/IP棧一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,可以增大TCP/IP棧一次處理的數(shù)據(jù)量,減少切換任務(wù)的次數(shù),從而降低切換任務(wù)消耗的系統(tǒng)開(kāi)銷(xiāo),并最終降低了 CPU負(fù)載占用率。
[0088]實(shí)施例三
[0089]與上述一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法相對(duì)應(yīng),本發(fā)明實(shí)施例還提供了一種在高運(yùn)行效率下傳輸數(shù)據(jù)的裝置。請(qǐng)參閱圖5,其為本發(fā)明實(shí)施例三提供的一種在高運(yùn)行效率下傳輸數(shù)據(jù)的裝置的結(jié)構(gòu)圖,該裝置包括:監(jiān)測(cè)單元501、第一控制單元502和第二控制單元503。下面結(jié)合該裝置的工作原理進(jìn)一步介紹其內(nèi)部結(jié)構(gòu)以及連接關(guān)系。
[0090]監(jiān)測(cè)單元501,用于監(jiān)測(cè)當(dāng)前的C P U負(fù)載占用率和/或傳輸速率;
[0091]第一控制單元502,用于當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),和/或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值;
[0092]第二控制單元503,用于當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),和/或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。[0093]優(yōu)選的,如圖6所示,監(jiān)測(cè)單元501包括:
[0094]第一計(jì)算子單元5011,用于計(jì)算空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)處于運(yùn)行狀態(tài)時(shí)的運(yùn)行時(shí)間與統(tǒng)計(jì)周期的比值,并作為所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占
用率;
[0095]第二計(jì)算子單元5012,用于計(jì)算I與所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率的差值,并作為當(dāng)前的CPU負(fù)載占用率。
[0096]或者,優(yōu)選的,監(jiān)測(cè)單元501包括:
[0097]第三計(jì)算子單元,用于計(jì)算路由轉(zhuǎn)發(fā)設(shè)備在最近一個(gè)統(tǒng)計(jì)周期內(nèi)接收到的數(shù)據(jù)包的長(zhǎng)度總和;
[0098]第四計(jì)算子單元,用于計(jì)算所述長(zhǎng)度總和與統(tǒng)計(jì)周期的比值,并作為當(dāng)前的傳輸速率。
[0099]優(yōu)選的,監(jiān)測(cè)單元501包括:
[0100]統(tǒng)計(jì)子單元,用于統(tǒng)計(jì)路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù);
[0101]第一控制單元502具體用于,當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù);
[0102]第二控制單元503具體用于,當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)。
[0103]進(jìn)一步優(yōu)選的,第一控制單元502具體用于,當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù);
[0104]第二控制單元503具體用于,當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù)。
[0105]優(yōu)選的,該裝置還包括:第三控制單元,用于當(dāng)所述總個(gè)數(shù)小于或等于第二數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù),所述第二數(shù)量閾值小于所述第二數(shù)量閾值。
[0106]由上述實(shí)施例可以看出,與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0107]動(dòng)態(tài)監(jiān)控CPU負(fù)載占用率和/或傳輸速率,并根據(jù)CPU負(fù)載占用率和/或傳輸速率的當(dāng)前情況,通過(guò)控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,控制路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值,進(jìn)而動(dòng)態(tài)調(diào)整CPU負(fù)載占用率和/或傳輸速率,達(dá)到在高傳輸速率和高CPU負(fù)載占用率時(shí)可以降低CPU負(fù)載占用率,在低傳輸速率和低CPU負(fù)載占用率時(shí)可以提高傳輸速率,滿(mǎn)足對(duì)路由轉(zhuǎn)發(fā)設(shè)備的高運(yùn)行效率要求。
[0108]實(shí)施例四
[0109]本申請(qǐng)實(shí)施例還提供了 一種通訊裝置,通訊裝置可能是包含計(jì)算能力的主機(jī)服務(wù)器,或者是個(gè)人計(jì)算機(jī)PC,或者是可攜帶的便攜式計(jì)算機(jī)或終端等等,本申請(qǐng)具體實(shí)施例并不對(duì)通訊裝置的具體實(shí)現(xiàn)做限定。
[0110]圖7為本申請(qǐng)的通訊裝置的結(jié)構(gòu)圖。如圖7所示,通訊裝置700包括:[0111]處理器(processor)710,通信接 口(Communications Interface) 720,存儲(chǔ)器(memory) 730,總線(xiàn) 740。
[0112]處理器710,通信接口 720,存儲(chǔ)器730通過(guò)總線(xiàn)740完成相互間的通信。
[0113]處理器710,用于執(zhí)行程序732。
[0114]具體地,程序732可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。
[0115]處理器710可能是一個(gè)中央處理器CPU,或者是特定集成電路ASIC (ApplicationSpecific Integrated Circuit),或者是被配置成實(shí)施本申請(qǐng)實(shí)施例的一個(gè)或多個(gè)集成電路。
[0116]存儲(chǔ)器730,用于存放程序732。存儲(chǔ)器730可能包含高速RAM存儲(chǔ)器,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤(pán)存儲(chǔ)器。程序732用于執(zhí)行以下步驟:
[0117]監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率;
[0118]當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值;
[0119]當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。
[0120]程序732中各步驟的具體實(shí)現(xiàn)參見(jiàn)圖5-圖6所示實(shí)施例中的相應(yīng)單元的實(shí)現(xiàn)方式,在此不贅述。
[0121]所述領(lǐng)域的技術(shù)人員可以清楚地了解到,為了描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
[0122]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述到的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性、機(jī)械或其它的形式。
[0123]所述作為分離部件說(shuō)明的單元可以是或者也可以是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0124]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以?xún)蓚€(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0125]需要說(shuō)明的是,本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。
[0126]以上對(duì)本發(fā)明所提供的在高運(yùn)行效率下傳輸數(shù)據(jù)的方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體實(shí)施例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書(shū)內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1.一種在高運(yùn)行效率下傳輸數(shù)據(jù)的方法,其特征在于,包括: 監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率; 當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值; 當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率,包括: 計(jì)算空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)處于運(yùn)行狀態(tài)時(shí)的運(yùn)行時(shí)間與統(tǒng)計(jì)周期的比值,并作為所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率; 計(jì)算I與所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率的差值,并作為當(dāng)前的CPU負(fù)載占用率。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述監(jiān)測(cè)當(dāng)前的傳輸速率,包括: 計(jì)算路由轉(zhuǎn)發(fā)設(shè)備在最近一個(gè)統(tǒng)計(jì)周期內(nèi)接收到的數(shù)據(jù)包的長(zhǎng)度總和; 計(jì)算所述長(zhǎng)度總和與統(tǒng)計(jì)周期的比值,并作為當(dāng)前的傳輸速率。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率為: 統(tǒng)計(jì)路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù); 所述當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為: 當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù); 當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為: 當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于, 所述減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為:控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù); 所述增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)具體為:控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,還包括: 當(dāng)所述總個(gè)數(shù)小于或等于第二數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù),所述第二數(shù)量閾值小于所述第二數(shù)量閾值。
7.一種在高運(yùn)行效率下傳輸數(shù)據(jù)的裝置,其特征在于,包括: 監(jiān)測(cè)單元,用于監(jiān)測(cè)當(dāng)前的CPU負(fù)載占用率和/或傳輸速率; 第一控制單元,用于當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率小于對(duì)應(yīng)的最小預(yù)設(shè)閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,減小路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值; 第二控制單元,用于當(dāng)所述當(dāng)前的CPU負(fù)載占用率和/或傳輸速率大于或等于對(duì)應(yīng)的最大預(yù)設(shè)閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù),或,增大路由轉(zhuǎn)發(fā)設(shè)備中的上層的高優(yōu)先級(jí)任務(wù)一次處理的數(shù)據(jù)包的最大個(gè)數(shù)閾值。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述監(jiān)測(cè)單元包括: 第一計(jì)算子單元,用于計(jì)算空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)處于運(yùn)行狀態(tài)時(shí)的運(yùn)行時(shí)間與統(tǒng)計(jì)周期的比值,并作為所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率; 第二計(jì)算子單元,用于計(jì)算I與所述空閑任務(wù)在最近一個(gè)統(tǒng)計(jì)周期內(nèi)的CPU負(fù)載占用率的差值,并作為當(dāng)前的CPU負(fù)載占用率。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述監(jiān)測(cè)單元包括: 第三計(jì)算子單元,用于計(jì)算路由轉(zhuǎn)發(fā)設(shè)備在最近一個(gè)統(tǒng)計(jì)周期內(nèi)接收到的數(shù)據(jù)包的長(zhǎng)度總和; 第四計(jì)算子單元,用于計(jì)算所述長(zhǎng)度總和與統(tǒng)計(jì)周期的比值,并作為當(dāng)前的傳輸速率。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述監(jiān)測(cè)單元包括: 統(tǒng)計(jì)子單元,用于統(tǒng)計(jì)路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次接收的數(shù)據(jù)包的總個(gè)數(shù); 所述第一控制單元具體用于,當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),減小路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù); 所述第二控制單元具體用于,當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),增大路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)一次向上層的高優(yōu)先級(jí)任務(wù)遞交的數(shù)據(jù)包的總個(gè)數(shù)。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于, 所述第一控制單元具體用于,當(dāng)所述總個(gè)數(shù)小于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包分批次地遞交給上層的高優(yōu)先級(jí)任務(wù); 所述第二控制單元具體用于,當(dāng)所述總個(gè)數(shù)大于或等于第一數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù)。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括: 第三控制單元,用于當(dāng)所述總個(gè)數(shù)小于或等于第二數(shù)量閾值時(shí),控制路由轉(zhuǎn)發(fā)設(shè)備中的下層的低優(yōu)先級(jí)任務(wù)將一次接收的數(shù)據(jù)包一次性遞交給上層的高優(yōu)先級(jí)任務(wù),所述第二數(shù)量閾值小于所述第二數(shù)量閾值。
【文檔編號(hào)】H04L12/803GK103841042SQ201410056844
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2014年2月19日 優(yōu)先權(quán)日:2014年2月19日
【發(fā)明者】唐剛 申請(qǐng)人:華為技術(shù)有限公司