本發(fā)明涉及數(shù)據(jù)處理
技術(shù)領(lǐng)域:
,特別是涉及到一種數(shù)據(jù)傳輸方法和裝置。
背景技術(shù):
:在當(dāng)前網(wǎng)絡(luò)設(shè)備虛擬化的浪潮中,各個虛擬機(jī)的安全隔離和服務(wù)質(zhì)量保證成為最重要的兩大部分。絕大部分的網(wǎng)絡(luò)設(shè)備是通過支持多隊列的方式來支持虛擬化的,通過將各個虛擬機(jī)分配到不同隊列的方式來滿足虛擬設(shè)備安全隔離以及服務(wù)質(zhì)量保證的要求。由于各個虛擬機(jī)對于網(wǎng)絡(luò)帶寬和網(wǎng)絡(luò)延時等性能指標(biāo)要求不太一致,簡單輪詢策略并不能很好的滿足虛擬化帶來的新的挑戰(zhàn)。在簡單輪詢的基礎(chǔ)上進(jìn)行的加權(quán)輪詢策略,是當(dāng)前普遍應(yīng)用于網(wǎng)絡(luò)設(shè)備中的一種調(diào)度算法?,F(xiàn)有技術(shù)中應(yīng)用最普遍的加權(quán)輪詢策略為基于字節(jié)數(shù)的加權(quán)輪詢策略,利用這種策略進(jìn)行數(shù)據(jù)傳輸?shù)牧鞒倘鐖D1所示,包括以下步驟:S1、根據(jù)各個隊列的字節(jié)數(shù)權(quán)重初始化各個隊列的字節(jié)計數(shù)器。S2、判斷當(dāng)前隊列是否滿足傳輸條件;當(dāng)滿足傳輸條件時,執(zhí)行步驟S3,服務(wù)該隊列;當(dāng)不滿足傳輸條件時,跳過該隊列,轉(zhuǎn)向下一隊列,當(dāng)所有隊列均不滿足傳輸條件時,返回步驟S1。其中,當(dāng)當(dāng)前隊列具有傳輸需求且字節(jié)計數(shù)器沒有達(dá)到閾值時,判斷滿足傳輸條件,否則判斷不滿足傳輸條件。S3、傳輸當(dāng)前隊列中的一個數(shù)據(jù)包,并根據(jù)傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)更新當(dāng)前隊列的字節(jié)計數(shù)器,并轉(zhuǎn)向下一隊列,返回步驟S2。相對于簡單輪詢策略,前述加權(quán)輪詢策略能夠兼顧到網(wǎng)絡(luò)設(shè)備中所有的隊列,而且能夠根據(jù)每個隊列配置的權(quán)重所占所有隊列的總權(quán)重的比例來分配各個隊列的帶寬。加權(quán)輪詢策略既能夠優(yōu)先處理高優(yōu)先級的隊列,又能防止高優(yōu)先級的隊列過度占用網(wǎng)絡(luò)帶寬。如果網(wǎng)絡(luò)設(shè)備傳輸不同大小的數(shù)據(jù)包的效率是一致的(相同的時間總是傳輸相同的數(shù)據(jù)量),那么基于字節(jié)數(shù)的加權(quán)輪詢策略就不會對網(wǎng)絡(luò)整體帶寬帶來任何影響。但是,如果網(wǎng)絡(luò)設(shè)備對于傳輸不同尺寸的數(shù)據(jù)包的效率是不一致的(相同的時間,傳輸?shù)臄?shù)據(jù)量在不同的數(shù)據(jù)包大小下是不同的),那么純粹的基于字節(jié)數(shù)的加權(quán)輪詢策略就會對網(wǎng)絡(luò)設(shè)備的整體帶寬帶來比較大的影響。實(shí)際上,很多網(wǎng)絡(luò)設(shè)備的帶寬在傳輸不同尺寸的數(shù)據(jù)包的時候,會有比較大的差別。對于絕大部分網(wǎng)絡(luò)設(shè)備來說,在處理尺寸很小的數(shù)據(jù)包時,帶寬會有比較明顯的下降。也就是說,對于小數(shù)據(jù)包,網(wǎng)絡(luò)設(shè)備會花費(fèi)更多的時間傳輸相同的字節(jié)數(shù)。因此,單純的以字節(jié)數(shù)作為權(quán)重的加權(quán)輪詢策略會讓網(wǎng)絡(luò)設(shè)備花費(fèi)更多的時間在處理小數(shù)據(jù)包比較多的隊列上,導(dǎo)致整體網(wǎng)絡(luò)設(shè)備帶寬的降低。舉例而言,假設(shè)網(wǎng)絡(luò)設(shè)備在處理大于等于512字節(jié)的數(shù)據(jù)包時,帶寬為每納秒1字節(jié),相當(dāng)于8吉比特每秒(Gbps),在處理小于512字節(jié)的數(shù)據(jù)數(shù)據(jù)包時,帶寬為每納秒0.5字節(jié),相當(dāng)于4吉比特每秒(Gbps);網(wǎng)絡(luò)設(shè)備中一共有兩個隊列,分別命名為隊列一和隊列二,隊列一的數(shù)據(jù)包大小都是1024字節(jié),隊列二的數(shù)據(jù)包大小都是64字節(jié),每個隊列總是有數(shù)據(jù)包等待發(fā)送。兩個隊列的字節(jié)數(shù)權(quán)重和處理時間權(quán)重設(shè)置如下表所示:字節(jié)數(shù)權(quán)重(單位:字節(jié))隊列一2048隊列二2048現(xiàn)有技術(shù)中基于字節(jié)數(shù)的加權(quán)輪詢策略的數(shù)據(jù)傳輸方法中,網(wǎng)絡(luò)設(shè)備的處理過程如下:1.將各個隊列的字節(jié)數(shù)權(quán)重作為各個隊列字節(jié)計數(shù)器的初始值(隊列一:2048字節(jié);隊列二:2048字節(jié)),同時為字節(jié)計數(shù)器設(shè)置閾值為零。2.網(wǎng)絡(luò)設(shè)備首先服務(wù)隊列一,發(fā)送隊列一中的一個數(shù)據(jù)包。然后在字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(1024),更新后的字節(jié)計數(shù)器的值為1024字節(jié)。3.網(wǎng)絡(luò)設(shè)備服務(wù)隊列二,發(fā)送隊列二中的一個數(shù)據(jù)包。然后在字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(64),更新后的字節(jié)計數(shù)器的值為1984字節(jié)。4.網(wǎng)絡(luò)設(shè)備再次服務(wù)隊列一,發(fā)送隊列中的一個數(shù)據(jù)包。然后在字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(1024),更新后的字節(jié)計數(shù)器的值為0字節(jié)。5.網(wǎng)絡(luò)設(shè)備再次服務(wù)隊列二,發(fā)送隊列中的一個數(shù)據(jù)包。從字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(64),更新后的字節(jié)計數(shù)器的值為1920字節(jié)。6.由于隊列一的字節(jié)計數(shù)器已經(jīng)減為0(達(dá)到閾值),網(wǎng)絡(luò)設(shè)備連續(xù)服務(wù)隊列二。繼續(xù)傳輸30個數(shù)據(jù)包之后,隊列二的字節(jié)計數(shù)器更新為0字節(jié)(達(dá)到閾值)。7.此時,由于兩個隊列的字節(jié)計數(shù)器均達(dá)到閾值,不再滿足傳輸條件,網(wǎng)絡(luò)設(shè)備則返回步驟1,重新初始化兩個隊列的字節(jié)計數(shù)器,開始新的一輪加權(quán)輪詢過程。從數(shù)據(jù)量傳輸?shù)慕嵌葋碚f,在一次加權(quán)輪詢中,隊列一和隊列二都傳輸了2048字節(jié)。但是從服務(wù)時間的角度來說,隊列一的服務(wù)時間是2048納秒,而隊列二的服務(wù)時間則是4096納秒,是隊列一處理時間的兩倍。這樣帶來的問題是,網(wǎng)絡(luò)設(shè)備大部分時間都在處理隊列二的小數(shù)據(jù)包。網(wǎng)絡(luò)設(shè)備的總帶寬為4096/(2048+4096)=0.66字節(jié)/納秒,相當(dāng)于5.33吉比特每秒(Gbps),大大降低了總帶寬,嚴(yán)重影響數(shù)據(jù)傳輸效率。綜上所述,現(xiàn)有的數(shù)據(jù)傳輸方法,由于僅以字節(jié)數(shù)作為權(quán)重進(jìn)行加權(quán)輪詢,使得具有大量小數(shù)據(jù)包的隊列占用過多服務(wù)時間,進(jìn)而降低了網(wǎng)絡(luò)設(shè)備的總帶寬。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的主要目的為提供一種數(shù)據(jù)傳輸方法和裝置,旨在解決具有大量小數(shù)據(jù)包的隊列占用過多服務(wù)時間,進(jìn)而降低網(wǎng)絡(luò)設(shè)備總帶寬的技術(shù)問題。為達(dá)以上目的,本發(fā)明提出一種數(shù)據(jù)傳輸方法,所述方法包括以下步驟:S11、初始化各個隊列的字節(jié)計數(shù)器和計時器;S12、判斷當(dāng)前隊列是否滿足傳輸條件;當(dāng)滿足所述傳輸條件時,執(zhí)行步驟S13;當(dāng)不滿足所述傳輸條件時,轉(zhuǎn)向下一隊列,當(dāng)所有隊列均不滿足所述傳輸條件時,返回步驟S11;S13、傳輸所述當(dāng)前隊列中預(yù)設(shè)數(shù)量的數(shù)據(jù)包,并根據(jù)傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)更新所述當(dāng)前隊列的字節(jié)計數(shù)器,根據(jù)傳輸所述數(shù)據(jù)包所消耗的時間更新所述當(dāng)前隊列的計時器,并轉(zhuǎn)向下一隊列,返回步驟S12;其中,當(dāng)所述當(dāng)前隊列具有傳輸需求且所述字節(jié)計數(shù)器和所述計時器均沒有達(dá)到閾值時,判斷滿足所述傳輸條件,否則判斷不滿足所述傳輸條件。進(jìn)一步地,所述步驟S11包括:將各個隊列的字節(jié)數(shù)權(quán)重分別作為各個隊列的字節(jié)數(shù)計數(shù)器的初始值,將各個隊列的處理時間權(quán)重分別作為各個隊列的計時器的初始值;其中,所述閾值小于所述初始值。進(jìn)一步地,所述根據(jù)傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)更新所述當(dāng)前隊列的字節(jié)計數(shù)器的步驟包括:在所述當(dāng)前隊列的字節(jié)計數(shù)器中減去傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)。進(jìn)一步地,所述根據(jù)傳輸所述數(shù)據(jù)包所消耗的時間更新所述當(dāng)前隊列的計時器的步驟包括:在所述當(dāng)前隊列的計時器中減去傳輸所述數(shù)據(jù)包所消耗的時間。進(jìn)一步地,所述閾值為零。本發(fā)明同時提出一種數(shù)據(jù)傳輸裝置,所述裝置包括初始化模塊、判斷模塊、處理模塊,其中:所述初始化模塊,用于初始化各個隊列的字節(jié)計數(shù)器和計時器;所述判斷模塊,用于判斷當(dāng)前隊列是否滿足傳輸條件;當(dāng)滿足所述傳輸條件時,通知所述處理模塊;當(dāng)不滿足所述傳輸條件時,轉(zhuǎn)向下一隊列,當(dāng)所有隊列均不滿足所述傳輸條件時,通知所述初始化模塊初始化各個隊列的字節(jié)計數(shù)器和計時器;所述處理模塊,用于當(dāng)所述當(dāng)前隊列滿足所述傳輸條件時,傳輸所述當(dāng)前隊列中預(yù)設(shè)數(shù)量的數(shù)據(jù)包,并根據(jù)所述數(shù)據(jù)包的字節(jié)數(shù)更新所述當(dāng)前隊列的字節(jié)計數(shù)器,根據(jù)傳輸所述數(shù)據(jù)包所消耗的時間更新所述當(dāng)前隊列的計時器,并通知所述判斷模塊轉(zhuǎn)向下一隊列;所述判斷模塊還用于:當(dāng)所述當(dāng)前隊列具有傳輸需求且所述字節(jié)計數(shù)器和所述計時器均沒有達(dá)到閾值時,判斷滿足所述傳輸條件;否則判斷不滿足所述傳輸條件。進(jìn)一步地,所述初始化模塊用于:將各個隊列的字節(jié)數(shù)權(quán)重分別作為各個隊列的字節(jié)數(shù)計數(shù)器的初始值,將各個隊列的處理時間權(quán)重分別作為各個隊列的計時器的初始值;其中,所述閾值小于所述初始值。進(jìn)一步地,所述處理模塊用于:在所述當(dāng)前隊列的字節(jié)計數(shù)器中減去傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)。進(jìn)一步地,所述處理模塊用于:在所述當(dāng)前隊列的計時器中減去傳輸所述數(shù)據(jù)包所消耗的時間。本發(fā)明實(shí)施例所提供的一種數(shù)據(jù)傳輸方法,通過加入時間因素,當(dāng)一個隊列的處理時間達(dá)到了設(shè)置的閾值時,則該隊列在本輪加權(quán)輪詢的服務(wù)周期中就不會再被網(wǎng)絡(luò)設(shè)備所服務(wù),即不再傳輸該隊列中的數(shù)據(jù)。從而解決了具有大量小數(shù)據(jù)包的隊列占用過多服務(wù)時間,進(jìn)而降低網(wǎng)絡(luò)設(shè)備總帶寬的技術(shù)問題,有效提高了網(wǎng)絡(luò)設(shè)備總帶寬,提高了傳輸效率。附圖說明圖1是現(xiàn)有技術(shù)中的數(shù)據(jù)傳輸方法的流程圖;圖2是本發(fā)明第一實(shí)施例的數(shù)據(jù)傳輸方法的流程圖;圖3是本發(fā)明實(shí)施例中判斷當(dāng)前隊列是否滿足傳輸條件的流程圖;圖4是本發(fā)明第二實(shí)施例的數(shù)據(jù)傳輸裝置的模塊示意圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。具體實(shí)施方式應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解,除非特意聲明,這里使用的單數(shù)形式“一”、“一個”、“所述”和“該”也可包括復(fù)數(shù)形式。應(yīng)該進(jìn)一步理解的是,本發(fā)明的說明書中使用的措辭“包括”是指存在所述特征、整數(shù)、步驟、操作、元件和/或組件,但是并不排除存在或添加一個或多個其他特征、整數(shù)、步驟、操作、元件、組件和/或它們的組。應(yīng)該理解,當(dāng)我們稱元件被“連接”或“耦接”到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這里使用的“連接”或“耦接”可以包括無線連接或無線耦接。這里使用的措辭“和/或”包括一個或更多個相關(guān)聯(lián)的列出項(xiàng)的全部或任一單元和全部組合。本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解,除非另外定義,這里使用的所有術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語),具有與本發(fā)明所屬領(lǐng)域中的普通技術(shù)人員的一般理解相同的意義。還應(yīng)該理解的是,諸如通用字典中定義的那些術(shù)語,應(yīng)該被理解為具有與現(xiàn)有技術(shù)的上下文中的意義一致的意義,并且除非像這里一樣被特定定義,否則不會用理想化或過于正式的含義來解釋。本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解,這里所使用的網(wǎng)絡(luò)設(shè)備,其包括但不限于計算機(jī)、網(wǎng)絡(luò)主機(jī)、單個網(wǎng)絡(luò)服務(wù)器、多個網(wǎng)絡(luò)服務(wù)器集或多個服務(wù)器構(gòu)成的云。在此,云由基于云計算(CloudComputing)的大量計算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計算是分布式計算的一種,由一群松散耦合的計算機(jī)集組成的一個超級虛擬計算機(jī)。本發(fā)明的實(shí)施例中,網(wǎng)絡(luò)設(shè)備、終端設(shè)備與WNS服務(wù)器之間可通過任何通信方式實(shí)現(xiàn)通信,包括但不限于,基于3GPP、LTE、WIMAX的移動通信、基于TCP/IP、UDP協(xié)議的計算機(jī)網(wǎng)絡(luò)通信以及基于藍(lán)牙、紅外傳輸標(biāo)準(zhǔn)的近距無線傳輸方式。本發(fā)明實(shí)施例的數(shù)據(jù)傳輸方法和裝置,主要應(yīng)用于網(wǎng)絡(luò)設(shè)備。當(dāng)然,也可以應(yīng)用于各種終端設(shè)備,如手機(jī)、平板等移動終端,個人電腦、便攜式電腦等計算機(jī)設(shè)備。實(shí)施例一參照圖2,提出本發(fā)明第一實(shí)施例的數(shù)據(jù)傳輸方法,所述方法包括以下步驟:S11、初始化各個隊列的字節(jié)計數(shù)器和計時器。具體的,當(dāng)開始進(jìn)行數(shù)據(jù)傳輸時,啟動基于字節(jié)數(shù)和處理時間的加權(quán)輪詢流程,首先初始化各個隊列的字節(jié)計數(shù)器和計時器??蛇x地,可以根據(jù)設(shè)置的各個隊列的字節(jié)數(shù)權(quán)重來初始化字節(jié)數(shù)計數(shù)器,根據(jù)設(shè)置的各個隊列的處理時間權(quán)重來初始化計時器。本實(shí)施例中,可以直接將各個隊列的字節(jié)數(shù)權(quán)重分別作為各個隊列的字節(jié)計數(shù)器的初始值,直接將各個隊列的處理時間權(quán)重分別作為各個隊列的計時器的初始值。在一可選實(shí)施例中,也可以將字節(jié)計數(shù)器的初始值設(shè)置為小于字節(jié)數(shù)權(quán)重的值,將計時器的初始值設(shè)置為小于處理時間權(quán)重的值,例如,將字節(jié)計數(shù)器和計時器的初始值置為零。S12、判斷當(dāng)前隊列是否滿足傳輸條件。當(dāng)滿足傳輸條件時,執(zhí)行步驟S13;當(dāng)不滿足傳輸條件時,轉(zhuǎn)向下一隊列,繼續(xù)判斷是否滿足傳輸條件,當(dāng)所有隊列均不滿足傳輸條件時,返回步驟S11。本發(fā)明實(shí)施例中,當(dāng)初始化各個隊列的字節(jié)計數(shù)器和計時器后,則采用簡單輪詢的方式,逐一服務(wù)各個隊列。其中,當(dāng)前隊列,即當(dāng)前服務(wù)的隊列。如圖3所示,在判斷當(dāng)前隊列是否滿足傳輸條件時,需要判斷當(dāng)前隊列是否有傳輸需求(即是否有數(shù)據(jù)包需要傳輸)(S121),以及當(dāng)前隊列的字節(jié)計數(shù)器和計時器是否達(dá)到閾值(S122和S123)。當(dāng)當(dāng)前隊列具有傳輸需求且字節(jié)計數(shù)器和計時器均沒有達(dá)到閾值時,則判斷當(dāng)前隊列滿足傳輸條件(S124);否則(即沒有傳輸需求、字節(jié)計數(shù)器沒有達(dá)到閾值或者計時器沒有達(dá)到閾值),判斷當(dāng)前隊列不滿足傳輸條件(S125)。其中,步驟S121-S123的先后順序不做限制,可以任意調(diào)換,也可以同時進(jìn)行。本實(shí)施例中,可以為字節(jié)計數(shù)器和計時器共同設(shè)置一個閾值,也可以為字節(jié)計數(shù)器和計時器分別設(shè)置一個閾值。所述閾值小于字節(jié)計數(shù)器和計時器的初始值,當(dāng)字節(jié)計數(shù)器和計時器分別設(shè)置了閾值時,則各自對應(yīng)的閾值分別小于各自的初始值,可選地,可以設(shè)置閾值為零。此時,字節(jié)計數(shù)器和計時器沒有達(dá)到閾值,是指字節(jié)計數(shù)器和計時器的數(shù)值大于閾值。在一可選實(shí)施例中,當(dāng)字節(jié)計數(shù)器和計時器的初始值分別為小于字節(jié)數(shù)權(quán)重和處理時間權(quán)重的值時,可以根據(jù)設(shè)置的各個隊列的字節(jié)數(shù)權(quán)重來為字節(jié)計數(shù)器設(shè)置閾值,根據(jù)設(shè)置的各個隊列的處理時間權(quán)重來為計時器設(shè)置閾值,其中,字節(jié)計數(shù)器和計時器對應(yīng)的閾值分別大于各自的初始值。例如,直接將各個隊列的字節(jié)數(shù)權(quán)重分別設(shè)置為各個隊列的字節(jié)計數(shù)器對應(yīng)的閾值,直接將各個隊列的處理時間權(quán)重分別設(shè)置為各個隊列的計時器對應(yīng)的閾值。此時,字節(jié)計數(shù)器和計時器沒有達(dá)到閾值,是指字節(jié)計數(shù)器和計時器的數(shù)值小于閾值。本步驟S12,當(dāng)當(dāng)前隊列滿足傳輸條件時,則執(zhí)行步驟S13,傳輸當(dāng)前隊列中的數(shù)據(jù)包;當(dāng)當(dāng)前隊列不滿足傳輸條件時,則轉(zhuǎn)向下一隊列,將下一隊列作為當(dāng)前服務(wù)的隊列,繼續(xù)判斷當(dāng)前隊列是否滿足傳輸條件。當(dāng)簡單輪詢完所有隊列后,發(fā)現(xiàn)所有隊列均不滿足傳輸條件時,則進(jìn)行下一輪加權(quán)輪詢,返回步驟S11,再對所有隊列進(jìn)行初始化處理。S13、傳輸當(dāng)前隊列中預(yù)設(shè)數(shù)量的數(shù)據(jù)包,并根據(jù)傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)更新當(dāng)前隊列的字節(jié)計數(shù)器,根據(jù)傳輸數(shù)據(jù)包所消耗的時間更新當(dāng)前隊列的計時器。然后轉(zhuǎn)向下一隊列,返回步驟S12。具體的,當(dāng)當(dāng)前隊列滿足傳輸條件時,則傳輸當(dāng)前隊列中預(yù)設(shè)數(shù)量的數(shù)據(jù)包,所述預(yù)設(shè)數(shù)量通常設(shè)置為一個,即一次傳輸一個數(shù)據(jù)包,當(dāng)然也可以根據(jù)需要設(shè)置為兩個、三個、多個等。當(dāng)本次數(shù)據(jù)包傳輸完成后,則根據(jù)本次傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)更新當(dāng)前隊列的字節(jié)計數(shù)器,根據(jù)本次傳輸數(shù)據(jù)包所消耗的時間更新當(dāng)前隊列的計時器。其中,當(dāng)傳輸了至少兩個數(shù)據(jù)包時,所述本次傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù),是指傳輸?shù)闹辽賰蓚€數(shù)據(jù)包的總的字節(jié)數(shù);所述本次傳輸數(shù)據(jù)包所消耗的時間的計量單位與計時器的計量單位相同,如可以統(tǒng)一計量單位為納秒。本實(shí)施例中,由于字節(jié)計數(shù)器和計時器對應(yīng)的閾值小于其初始值,因此可以在當(dāng)前隊列的字節(jié)計數(shù)器中減去傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù),在當(dāng)前隊列的計時器中減去傳輸數(shù)據(jù)包所消耗的時間。也就是說,在一個加權(quán)輪詢的服務(wù)周期中,隊列每傳輸一次數(shù)據(jù)包,其字節(jié)計數(shù)器和計時器的數(shù)值就減小一次,直到減小到小于或等于閾值時,該隊列就不再滿足傳輸條件,在本輪服務(wù)周期中不再服務(wù)該隊列(即不再傳輸該隊列中的數(shù)據(jù))。在一可選實(shí)施例中,當(dāng)字節(jié)計數(shù)器和計時器對應(yīng)的閾值分別大于各自的初始值時,則可以在當(dāng)前隊列的字節(jié)計數(shù)器中加上傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù),在當(dāng)前隊列的計時器中加上傳輸數(shù)據(jù)包所消耗的時間。也就是說,在一個加權(quán)輪詢的服務(wù)周期中,隊列每傳輸一次數(shù)據(jù)包,其字節(jié)計數(shù)器和計時器的數(shù)值就增大一次,直到增大到大于或等于閾值時,該隊列就不再滿足傳輸條件,在本輪服務(wù)周期中不再服務(wù)該隊列(即不再傳輸該隊列中的數(shù)據(jù))。本步驟S13中,當(dāng)當(dāng)前隊列處理完成后,則繼續(xù)進(jìn)行簡單輪詢,轉(zhuǎn)向下一隊列,將下一隊列作為當(dāng)前服務(wù)的隊列,返回步驟S12,判斷當(dāng)前隊列是否滿足傳輸條件。本發(fā)明實(shí)施例的數(shù)據(jù)傳輸方法,通過加入時間因素,當(dāng)一個隊列的處理時間達(dá)到了設(shè)置的閾值時,則該隊列在本輪加權(quán)輪詢的服務(wù)周期中就不會再被網(wǎng)絡(luò)設(shè)備所服務(wù),即不再傳輸該隊列中的數(shù)據(jù)。從而解決了具有大量小數(shù)據(jù)包的隊列占用過多服務(wù)時間,進(jìn)而降低網(wǎng)絡(luò)設(shè)備總帶寬的技術(shù)問題,有效提高了網(wǎng)絡(luò)設(shè)備總帶寬,提高了傳輸效率。舉例而言,假設(shè)網(wǎng)絡(luò)設(shè)備在處理大于等于512字節(jié)的數(shù)據(jù)包時,帶寬為每納秒1字節(jié),相當(dāng)于8吉比特每秒(Gbps),在處理小于512字節(jié)的數(shù)據(jù)數(shù)據(jù)包時,帶寬為每納秒0.5字節(jié),相當(dāng)于4吉比特每秒(Gbps);網(wǎng)絡(luò)設(shè)備中一共有兩個隊列,分別命名為隊列一和隊列二,隊列一的數(shù)據(jù)包大小都是1024字節(jié),隊列二的數(shù)據(jù)包大小都是64字節(jié),每個隊列總是有數(shù)據(jù)包等待發(fā)送。兩個隊列的字節(jié)數(shù)權(quán)重和處理時間權(quán)重設(shè)置如下表所示:處理時間權(quán)重(單位:納秒)字節(jié)數(shù)權(quán)重(單位:字節(jié))隊列一20482048隊列二20482048根據(jù)本發(fā)明實(shí)施例中基于處理時間和字節(jié)數(shù)的加權(quán)輪詢策略的數(shù)據(jù)傳輸方法中,網(wǎng)絡(luò)設(shè)備的處理過程如下:1、將各個隊列的處理時間權(quán)重和字節(jié)數(shù)權(quán)重分別作為各個隊列的計時器和字節(jié)計數(shù)器的初始值(隊列一:2048納秒/2048字節(jié);隊列二:2048納秒/2048字節(jié)),同時為字節(jié)計數(shù)器和計時器設(shè)置閾值為零。2、網(wǎng)絡(luò)設(shè)備首先服務(wù)隊列一,發(fā)送隊列一中的一個數(shù)據(jù)包。然后在字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(1024),更新后的字節(jié)計數(shù)器的值為1024字節(jié);在計時器中減去發(fā)送一個數(shù)據(jù)包的時間(1024),更新后的計時器的值為1024納秒。3、網(wǎng)絡(luò)設(shè)備服務(wù)隊列二,發(fā)送隊列二中的一個數(shù)據(jù)包。然后在字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(64),更新后的字節(jié)計數(shù)器的值為1984字節(jié);在計時器中減去發(fā)送一個數(shù)據(jù)包的時間(128),更新后的計時器的值為1920納秒。4、網(wǎng)絡(luò)設(shè)備再次服務(wù)隊列一,發(fā)送隊列中的一個數(shù)據(jù)包。然后在字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(1024),更新后的字節(jié)計數(shù)器的值為0字節(jié);在計時器中減去發(fā)送一個數(shù)據(jù)包的時間(1024),更新后的計時器的值為0納秒。5、網(wǎng)絡(luò)設(shè)備再次服務(wù)隊列二,發(fā)送隊列中的一個數(shù)據(jù)包。從字節(jié)計數(shù)器中減去一個數(shù)據(jù)包的字節(jié)數(shù)(64),更新后的字節(jié)計數(shù)器的值為1920字節(jié);在計時器中減去發(fā)送一個數(shù)據(jù)包的時間(128),更新后的計時器的值為1792納秒。6、由于隊列一的字節(jié)計數(shù)器和計時器均已經(jīng)減為0(達(dá)到閾值),網(wǎng)絡(luò)設(shè)備連續(xù)服務(wù)隊列二。繼續(xù)傳輸14個數(shù)據(jù)包之后,隊列二的字節(jié)計數(shù)器更新為1024字節(jié),計時器更新為0(達(dá)到閾值)。7、此時,由于兩個隊列的計時器均達(dá)到閾值,不再滿足傳輸條件,網(wǎng)絡(luò)設(shè)備則返回步驟1,重新初始化兩個隊列的字節(jié)計數(shù)器和計時器,開始新的一輪加權(quán)輪詢過程。經(jīng)分析對比可知,本發(fā)明實(shí)施例基于字節(jié)數(shù)和處理時間的加權(quán)輪詢策略的數(shù)據(jù)傳輸方法,其網(wǎng)絡(luò)設(shè)備的總帶寬為(2048+1024)/4096=0.75字節(jié)每納秒,相當(dāng)于6吉比特每秒(Gbps),相對于
背景技術(shù):
中僅基于字節(jié)數(shù)的加權(quán)輪詢策略的5.33吉比特每秒(Gbps)的總帶寬,提升了12.5%,從而提高了傳輸效率。從而,通過引入處理時間權(quán)重,同時為每個隊列設(shè)置處理時間權(quán)重和字節(jié)數(shù)權(quán)重,當(dāng)一個隊列傳輸?shù)淖止?jié)數(shù)達(dá)到了字節(jié)數(shù)權(quán)重或者處理時間達(dá)到了時間權(quán)重時,則該隊列在本輪加權(quán)輪詢的服務(wù)周期中就不再被網(wǎng)絡(luò)設(shè)備所服務(wù),即不再傳輸該隊列中的數(shù)據(jù)。有效提高了網(wǎng)絡(luò)設(shè)備總帶寬,提高了傳輸效率。當(dāng)隊列中不存在大量小數(shù)據(jù)包,或者網(wǎng)絡(luò)設(shè)備傳輸不同大小的數(shù)據(jù)包的效率一致時,本發(fā)明的方案與現(xiàn)有技術(shù)的方案的總帶寬則相同,在此不再一一列舉贅述。實(shí)施例二參照圖3,提出本發(fā)明第二實(shí)施例的數(shù)據(jù)傳輸裝置,所述裝置包括初始化模塊、判斷模塊和處理模塊,其中:初始化模塊:用于初始化各個隊列的字節(jié)計數(shù)器和計時器。具體的,當(dāng)開始進(jìn)行數(shù)據(jù)傳輸時,數(shù)據(jù)傳輸裝置則啟動基于字節(jié)數(shù)和處理時間的加權(quán)輪詢流程,由初始化模塊首先初始化各個隊列的字節(jié)計數(shù)器和計時器??蛇x地,初始化模塊可以根據(jù)設(shè)置的各個隊列的字節(jié)數(shù)權(quán)重來初始化字節(jié)數(shù)計數(shù)器,根據(jù)設(shè)置的各個隊列的處理時間權(quán)重來初始化計時器。本實(shí)施例中,初始化模塊可以直接將各個隊列的字節(jié)數(shù)權(quán)重分別作為各個隊列的字節(jié)計數(shù)器的初始值,直接將各個隊列的處理時間權(quán)重分別作為各個隊列的計時器的初始值。在一可選實(shí)施例中,初始化模塊也可以將字節(jié)計數(shù)器的初始值設(shè)置為小于字節(jié)數(shù)權(quán)重的值,將計時器的初始值設(shè)置為小于處理時間權(quán)重的值,例如,初始化模塊將字節(jié)計數(shù)器和計時器的初始值置為零。判斷模塊:用于判斷當(dāng)前隊列是否滿足傳輸條件;當(dāng)滿足傳輸條件時,通知處理模塊;當(dāng)不滿足傳輸條件時,轉(zhuǎn)向下一隊列,當(dāng)所有隊列均不滿足傳輸條件時,通知初始化模塊初始化各個隊列的字節(jié)計數(shù)器和計時器。本發(fā)明實(shí)施例中,當(dāng)初始化各個隊列的字節(jié)計數(shù)器和計時器后,數(shù)據(jù)傳輸裝置則采用簡單輪詢的方式,逐一服務(wù)各個隊列。其中,當(dāng)前隊列,即當(dāng)前服務(wù)的隊列。在判斷當(dāng)前隊列是否滿足傳輸條件時,判斷模塊需要判斷當(dāng)前隊列是否有傳輸需求(即是否有數(shù)據(jù)包需要傳輸),以及當(dāng)前隊列的字節(jié)計數(shù)器和計時器有沒有達(dá)到閾值。當(dāng)當(dāng)前隊列具有傳輸需求且字節(jié)計數(shù)器和計時器均沒有達(dá)到閾值時,則判斷滿足傳輸條件;否則(即沒有傳輸需求、字節(jié)計數(shù)器沒有達(dá)到閾值或者計時器沒有達(dá)到閾值),判斷不滿足傳輸條件。本實(shí)施例中,可以為字節(jié)計數(shù)器和計時器共同設(shè)置一個閾值,也可以為字節(jié)計數(shù)器和計時器分別設(shè)置一個閾值。所述閾值小于字節(jié)計數(shù)器和計時器的初始值,當(dāng)字節(jié)計數(shù)器和計時器分別設(shè)置了閾值時,則各自對應(yīng)的閾值分別小于各自的初始值,可選地,可以設(shè)置閾值為零。此時,字節(jié)計數(shù)器和計時器沒有達(dá)到閾值,是指字節(jié)計數(shù)器和計時器的數(shù)值大于閾值。在一可選實(shí)施例中,當(dāng)字節(jié)計數(shù)器和計時器的初始值分別為小于字節(jié)數(shù)權(quán)重和處理時間權(quán)重的值時,可以根據(jù)設(shè)置的各個隊列的字節(jié)數(shù)權(quán)重來為字節(jié)計數(shù)器設(shè)置閾值,根據(jù)設(shè)置的各個隊列的處理時間權(quán)重來為計時器設(shè)置閾值,其中,字節(jié)計數(shù)器和計時器對應(yīng)的閾值分別大于各自的初始值。例如,直接將各個隊列的字節(jié)數(shù)權(quán)重分別設(shè)置為各個隊列的字節(jié)計數(shù)器對應(yīng)的閾值,直接將各個隊列的處理時間權(quán)重分別設(shè)置為各個隊列的計時器對應(yīng)的閾值。此時,字節(jié)計數(shù)器和計時器沒有達(dá)到閾值,是指字節(jié)計數(shù)器和計時器的數(shù)值小于閾值。當(dāng)當(dāng)前隊列滿足傳輸條件時,判斷模塊則通知處理模塊傳輸當(dāng)前隊列中的數(shù)據(jù)包;當(dāng)當(dāng)前隊列不滿足傳輸條件時,判斷模塊則轉(zhuǎn)向下一隊列,將下一隊列作為當(dāng)前服務(wù)的隊列,繼續(xù)判斷當(dāng)前隊列是否滿足傳輸條件。當(dāng)簡單輪詢完所有隊列后,發(fā)現(xiàn)所有隊列均不滿足傳輸條件時,數(shù)據(jù)傳輸裝置則進(jìn)行下一輪加權(quán)輪詢,由判斷模塊則通知初始化模塊,再對所有隊列進(jìn)行初始化處理。處理模塊:用于當(dāng)當(dāng)前隊列滿足傳輸條件時,傳輸當(dāng)前隊列中預(yù)設(shè)數(shù)量的數(shù)據(jù)包,并根據(jù)數(shù)據(jù)包的字節(jié)數(shù)更新當(dāng)前隊列的字節(jié)計數(shù)器,根據(jù)傳輸數(shù)據(jù)包所消耗的時間更新當(dāng)前隊列的計時器,并通知判斷模塊轉(zhuǎn)向下一隊列。具體的,當(dāng)當(dāng)前隊列滿足傳輸條件時,處理模塊則傳輸當(dāng)前隊列中預(yù)設(shè)數(shù)量的數(shù)據(jù)包,所述預(yù)設(shè)數(shù)量通常設(shè)置為一個,即一次傳輸一個數(shù)據(jù)包,當(dāng)然也可以根據(jù)需要設(shè)置為兩個、三個、多個等。當(dāng)本次數(shù)據(jù)包傳輸完成后,處理模塊則根據(jù)本次傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù)更新當(dāng)前隊列的字節(jié)計數(shù)器,根據(jù)本次傳輸數(shù)據(jù)包所消耗的時間更新當(dāng)前隊列的計時器。其中,當(dāng)傳輸了至少兩個數(shù)據(jù)包時,所述本次傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù),是指傳輸?shù)闹辽賰蓚€數(shù)據(jù)包的總的字節(jié)數(shù);所述本次傳輸數(shù)據(jù)包所消耗的時間的計量單位與計時器的計量單位相同,如可以統(tǒng)一計量單位為納秒。本實(shí)施例中,由于字節(jié)計數(shù)器和計時器對應(yīng)的閾值小于其初始值,因此處理模塊可以在當(dāng)前隊列的字節(jié)計數(shù)器中減去傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù),在當(dāng)前隊列的計時器中減去傳輸數(shù)據(jù)包所消耗的時間。也就是說,在一個加權(quán)輪詢的服務(wù)周期中,隊列每傳輸一次數(shù)據(jù)包,其字節(jié)計數(shù)器和計時器的數(shù)值就減小一次,直到減小到小于或等于閾值時,該隊列就不再滿足傳輸條件,數(shù)據(jù)傳輸裝置在本輪服務(wù)周期中不再服務(wù)該隊列(即處理模塊不再傳輸該隊列中的數(shù)據(jù))。在一可選實(shí)施例中,當(dāng)字節(jié)計數(shù)器和計時器對應(yīng)的閾值分別大于各自的初始值時,處理模塊則可以在當(dāng)前隊列的字節(jié)計數(shù)器中加上傳輸?shù)臄?shù)據(jù)包的字節(jié)數(shù),在當(dāng)前隊列的計時器中加上傳輸數(shù)據(jù)包所消耗的時間。也就是說,在一個加權(quán)輪詢的服務(wù)周期中,隊列每傳輸一次數(shù)據(jù)包,其字節(jié)計數(shù)器和計時器的數(shù)值就增大一次,直到增大到大于或等于閾值時,該隊列就不再滿足傳輸條件,數(shù)據(jù)傳輸裝置在本輪服務(wù)周期中不再服務(wù)該隊列(即處理模塊不再傳輸該隊列中的數(shù)據(jù))。當(dāng)當(dāng)前隊列處理完成后,處理模塊則通知判斷模塊,判斷模塊繼續(xù)進(jìn)行簡單輪詢,轉(zhuǎn)向下一隊列,將下一隊列作為當(dāng)前服務(wù)的隊列,判斷當(dāng)前隊列是否滿足傳輸條件。本發(fā)明實(shí)施例的數(shù)據(jù)傳輸裝置,通過加入時間因素,當(dāng)一個隊列的處理時間達(dá)到了設(shè)置的閾值時,則該隊列在本輪加權(quán)輪詢的服務(wù)周期中就不會再被網(wǎng)絡(luò)設(shè)備所服務(wù),即不再傳輸該隊列中的數(shù)據(jù)。從而解決了具有大量小數(shù)據(jù)包的隊列占用過多服務(wù)時間,進(jìn)而降低網(wǎng)絡(luò)設(shè)備總帶寬的技術(shù)問題,有效提高了網(wǎng)絡(luò)設(shè)備總帶寬,提高了傳輸效率。本發(fā)明實(shí)施例所述的傳輸,通常指發(fā)送數(shù)據(jù)。在某些實(shí)施例中,也可以指接收數(shù)據(jù)。在某些實(shí)施例中,還可以通過檢測各個隊列的數(shù)據(jù)包大小,當(dāng)某個隊列在某一段時間之內(nèi)需要發(fā)送大量小數(shù)據(jù)包時,可以通過減少該隊列字節(jié)數(shù)權(quán)重的方式,來達(dá)到防止該隊列大量占據(jù)網(wǎng)絡(luò)設(shè)備處理時間的問題。本領(lǐng)域技術(shù)人員可以理解,本發(fā)明包括涉及用于執(zhí)行本申請中所述操作中的一項(xiàng)或多項(xiàng)的設(shè)備。這些設(shè)備可以為所需的目的而專門設(shè)計和制造,或者也可以包括通用計算機(jī)中的已知設(shè)備。這些設(shè)備具有存儲在其內(nèi)的計算機(jī)程序,這些計算機(jī)程序選擇性地激活或重構(gòu)。這樣的計算機(jī)程序可以被存儲在設(shè)備(例如,計算機(jī))可讀介質(zhì)中或者存儲在適于存儲電子指令并分別耦聯(lián)到總線的任何類型的介質(zhì)中,所述計算機(jī)可讀介質(zhì)包括但不限于任何類型的盤(包括軟盤、硬盤、光盤、CD-ROM、和磁光盤)、ROM(Read-OnlyMemory,只讀存儲器)、RAM(RandomAccessMemory,隨機(jī)存儲器)、EPROM(ErasableProgrammableRead-OnlyMemory,可擦寫可編程只讀存儲器)、EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory,電可擦可編程只讀存儲器)、閃存、磁性卡片或光線卡片。也就是,可讀介質(zhì)包括由設(shè)備(例如,計算機(jī))以能夠讀的形式存儲或傳輸信息的任何介質(zhì)。本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解,可以用計算機(jī)程序指令來實(shí)現(xiàn)這些結(jié)構(gòu)圖和/或框圖和/或流圖中的每個框以及這些結(jié)構(gòu)圖和/或框圖和/或流圖中的框的組合。本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解,可以將這些計算機(jī)程序指令提供給通用計算機(jī)、專業(yè)計算機(jī)或其他可編程數(shù)據(jù)傳輸方法的處理器來實(shí)現(xiàn),從而通過計算機(jī)或其他可編程數(shù)據(jù)傳輸方法的處理器來執(zhí)行本發(fā)明公開的結(jié)構(gòu)圖和/或框圖和/或流圖的框或多個框中指定的方案。本
技術(shù)領(lǐng)域:
技術(shù)人員可以理解,本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進(jìn)一步地,具有本發(fā)明中已經(jīng)討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進(jìn)一步地,現(xiàn)有技術(shù)中的具有與本發(fā)明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。以上參照附圖說明了本發(fā)明的優(yōu)選實(shí)施例,并非因此局限本發(fā)明的權(quán)利范圍。本領(lǐng)域技術(shù)人員不脫離本發(fā)明的范圍和實(shí)質(zhì),可以有多種變型方案實(shí)現(xiàn)本發(fā)明,比如作為一個實(shí)施例的特征可用于另一實(shí)施例而得到又一實(shí)施例。凡在運(yùn)用本發(fā)明的技術(shù)構(gòu)思之內(nèi)所作的任何修改、等同替換和改進(jìn),均應(yīng)在本發(fā)明的權(quán)利范圍之內(nèi)。當(dāng)前第1頁1 2 3