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