專利名稱:基于網絡處理器平臺實現的綜合隊列管理方法
技術領域:
緩沖管理和分組調度領域。
背景技術:
在比例區分服務(proportional differentiation services)模型中,任意兩個服務類在每一跳(per-hop)所獲得的服務滿足確定的比例,比例參數由網絡管理者設定而且與類的負載無關。即對于任意1<i,j<N,有qi(t,t+τ)/qj(t,t+τ)=ci/cj其中qi(t,t+τ)為數據類i在時間段[t,t+τ]內所獲得的服務,c1<c2<…<cN為網絡管理者設定的比例參數。PLR緩沖管理(Proportional LossRate Buffer Management)方法和PAD分組調度(Proportional Average Delay Packet Scheduling)方法都屬于比例區分服務。
qi(t,t+τ)使用丟失率作為標準,則衍生出PLR緩沖管理方法。它是緩沖管理方法的一種,針對比例區分服務模型設計的方法,其控制目標是使得任意兩個服務類的分組丟失率保持在恒定的比例。它的方法復雜度是O(logN)。
qi(t,t+τ)使用時延作為標準,則衍生出PLR緩沖管理方法。它是分組調度方法的一種,針對比例區分服務模型設計的方法,其控制目標是使得任意兩個服務類的平均排隊時延保持在恒定的比例。它的方法復雜度是O(logN)。
PLR緩沖管理方法和PAD分組調度方法存在的問題這兩種法屬于基于動態優先級方法,基本思想總結如下為每個隊列計算一個索引值(動態優先級),每次選取具有最大或最小索引值的隊列進行調度。因此,查找/排序是動態優先級方法的另一個重要的基本操作,并具有O(logN)的復雜度,其中N代表隊列數量。一般來講,索引值存儲在片外存儲器(比如SRAM)中,或片內存儲器(比如Scratchpad,如果其容量足夠大的話)中。但不管怎樣,都需要大量的內存訪問操作。而內存訪問通常是一個性能瓶頸,因此對于大多數方法而言,O(logN)的復雜度會使得方法實現的效率非常低。PLR緩沖管理方法和PAD分組調度方法不適用于高速網絡設備。
本發明研究并實現了一種新的RR-PLR緩沖管理方法和WRR-PAD分組調度方法,極大地提高了緩沖管理和分組調度的速度。
發明內容
本發明的目的是設計一個適應網絡處理器的,低時間復雜度的,遵循比例區分的服務模型的隊列管理方法。在分組入隊列時實現丟失率控制的緩沖管理方法,在分組出隊列時實現時延控制的分組調度方法,分別實現平均分組丟失率和平均排隊時延的成比例控制。名詞解釋如下1)服務質量(Quality of Service)控制服務質量(QoS)控制是一系列控制機制的總稱,包括諸如隊列緩沖資源管理、分組調度、QoS路由等控制,旨在為使用網絡的用戶提供端到端的,包括帶寬、延遲、分組丟失率等在內的性能保證。現有的Internet網絡只能提供一種“盡力做好”(best-effort)的服務,無法支撐越來越多的網上實時交互應用。因此,服務質量(QoS)控制問題應運而生,成為下一代網絡需要解決的關鍵技術。
2)緩沖管理(Buffer Management)緩沖管理研究的主要內容是緩沖區如何分配和當緩沖區占用率到達一定程度時如何選擇分組進行丟棄,所影響的性能參數主要是分組丟失率。
3)分組調度(Packet Scheduling)分組調度則是指按照一定的規則來決定從多個等待隊列中選擇哪個分組進行發送,它影響的主要性能參數包括帶寬分配、時延和時延抖動。
4)網絡處理器(Network Processor)平臺網絡處理器是介于通用處理器和專用處理器(ASIC)芯片之間的一種可編程芯片,網絡處理器采用了如下技術以適應網絡數據處理(1)多內核結構,使用多線程或者并行處理兩種機制組織;(2)優化的內存管理和DMA單元;(3)優化的運算邏輯單元ALU;(4)網絡專用的協處理器(co-processors);(5)硬件多線程技術。
INTEL IXP 2400是Intel公司在一款高性能的網絡處理器,我們基于它來實現本綜合隊列管理方法。
它的特點如下●本方法改進了PLR緩沖管理方法和PAD分組調度方法,將方法復雜度由原有的O(logN)降低為O(1);●本方法使用輪循機制,消除了除法運算以及排序操作,適于網絡處理器的實現;●RR-PLR和WRR-PAD方法根據到達分組的丟失行為來動態調整閾值,可以保證獲得預期的相對公平性能,并能一定程度上適應網絡流量的變化,提高系統緩沖資源的利用率;●性能仿真和基于Intel IXP2400網絡處理器的性能實測結果表明綜合隊列管理方法的轉發性能達到了千兆線速。
基于網絡處理器平臺實現的綜合隊列管理方法,其特征在于,所述的綜合隊列管理方法是在一款Intel公司生產的Intel IXP 2400網絡處理器上實現的,所述方法分別把網絡分組接受模塊、網絡分組發送模塊、RR-PLR即輪循-比例丟失率緩沖管理程序、WRR-PAD即加權輪循-比例平均延時分組調度程序,各自分別配置在網絡處理器的1個微引擎上,即分別分配在第0,第7,第1和第2個微引擎上;而把IPv4協議處理程序配置在所述網絡處理器的4個微引擎上,即分配在第3,4,5,6個微引擎上;當分組進入隊列時,采用平均分組丟失率比例控制,該控制方法依次含有一下步驟步驟1A初始化每個隊列的分組計數器設隊列m分配的計數器Cm=km·δm,m=0,1,…,n-1;指針i=0;其中,km為預先確定的參數,它是各隊列的分組平均到達速率的比a0(t)/a1(t)/…/an-1(t)=k0/k1/…/kn-1;am(t)為隊列m在時間段
內到達的分組數;δm為預先確定的參數,它是各個隊列分組丟失率的比L0/L1/…/Ln-1=δ0/δ1/…/δn-1,Lm為隊列m的平均分組丟失率;所述Lm=dm(t)/am(t)=dm(t)/(λm·t);其中,dm(t)為為隊列m在時間段
內丟棄的分組數;λm為隊列m的分組平均到達速率,在程序中以km的形式表現出來;kmδm為隊列m的丟棄分組數;各個隊列的丟棄的分組數保持比例,即保持(k0·δ0)/(k1·δ1)/…/(kn-1·δn-1)的設定比例;步驟2A等待,一直到有新的分組p到達,記該分組屬于隊列t,為該分組打上到達隊列的時間戳T入隊列,轉步驟3;否,轉步驟2;步驟3A判斷各個隊列的分組長度之和是否小于或等于緩存可以存放分組總個數若是,將分組p放入相應的隊列t,對于該分組的處理結束;若否,轉步驟4A;步驟4A判斷隊列i的分組計數器Ci是否大于零,且隊列非空若是,從隊列i中丟棄一個分組;使分組計數器Ci=Ci-1;i=i+1;將分組p放入相應的隊列t,對于該分組的處理結束;重新轉到步驟2A;若否,判斷i是否小于n若是,i=i+1;轉入步驟4A;若否,對于j=0,1,…,n-1,使隊列j分組計數器的做Cj=Cj+kj·δj;指針i=0;轉到步驟4A;
當分組出隊列時,采用平均排隊時延的比例控制方法,即使得各個隊列中各分組的時延滿足一下比例關系Σj=0s0(t)d0j/Σj=0s1(t)d1j/···/Σj=0sn-1(t)dn-1j/=(ξ0·w0)/(ξ1·w1)/···/(ξn-1·wn-1);]]>其中,si(t)為隊列i在時間段
內發送的分組數,i=0,1,…,n-1;dij為隊列i的中第j個分組的延時;隊列i的平均排隊時延為Di=Σj=0si(t)dijsi(t),]]>各個隊列平均排隊時延的比保持一致,即D0/D1/…/Dn-1=ξ0/ξ1/…/ξn-1;ξi為預先確定的參數;各個隊列發送的分組數滿足以下比例關系s0(t)/s1(t)/…/sn-1(t)=w0/w1/…/wn-1,wi為預先確定的參數;以上所述的平均排隊時延的比例控制方法采用輪循一次含有以下步驟步驟1B給每個隊列分配3個計數器,隊列i的3個計數器分別記為CSi為記錄需要發送的分組數量的計數器;CDi為記錄需要經歷的排隊時延之和的計數器;COi為根據隊列平均排隊時延的變化情況提前或推遲其隊列i分組的發送的輔助計數器;COi>0表示隊列分組被提前發送,輪循次數被“透支”;COi<0表示隊列分組被推遲發送,輪循次數有“盈余”;COi=0表示正常情況;φi為隊列i發送wi個分組的延時之和,φi=ξi·wi;初始化CSi=wi,CDi=φi,COi=0;初始化域值thdi=φi;指針i=0;步驟2B讀取CSi,COi,CDi三個計數器;根據下表判斷該情況是否需要調度若是,轉步驟3B;若否,轉步驟4B;根據以下CSi,COi,CDi三個寄存器的8種不同情況,判斷是否調度情況a,當CSi=0,COi≥0,CDi-d<0時
調度;并改變寄存器,使得CSi=CSi+wi,CDi=CDi+φi,COi=COi+1;情況b,當CSi=0,COi≥0,CDi-d≥0時不調度;情況c,當CSi=0,COi<0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))≥thdi時不調度;情況d,當CSi=0,COi≥0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))<thdi時調度;并改變寄存器,使得CSi=CSi+wi,CDi=CDi+φi,COi=COi+1;情況e,當CSi>0,COi<0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))≥thdi時不調度;情況f,當CSi>0,COi<0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))<thdi時調度;并改變寄存器,使得CSi=CSi-1,CDi=CDi-d;情況g,當CSi>0,COi≥0,CDi-d<0時調度;并改變寄存器,使得CSi=CSi-1,CDi=CDi-d;情況h,當CSi>0,COi≥0,CDi-d≥0時不調度;其中,d為分組在隊列中的延時,d=T出隊列-T入隊列;對于條件D和D的意義解釋如下條件D和D是在出現在條件B之下需要進一步判斷的,這種情況下,表明該隊列的分組曾被推遲發送,其輪循次數尚有“盈余”,因此需要判斷“盈余”被“補足”之后的CDi值;(-COi·φi)為“盈余”輪數所對應的總延時數;(CSi+(-COi·wi))為總共“盈余”的分組數減去這輪已經發出的分組數;CDi+(-COi·φi)-d·(CSi+(-COi·wi))即按照d的延時發送,“盈余”的總延時能不能被消耗的足夠多;步驟3B-1根據上述不同的情況,改變計數器的值;步驟3B-2從隊列i中取出一個分組;從RR-PLR模塊取得T入隊列;取當前時間得到分組的出隊列時間T出隊列;
計算這個分組在隊列中的延時d=T出隊列-T入隊列,并發送;步驟3B-3使CSi=CSi-1;CDi=CDi-d;i=i+1;轉步驟2B;步驟4Bi=i+1;判斷CSi=0并且CDi≤0若是,轉步驟5B;若否,轉步驟6B;步驟5BCSi=CSi+wi;CDi=CDi+wi·ξi;轉步驟2B;步驟6BCOi=COi-1;轉步驟2B。
我們在Intel IXP2400網絡處理器上實現了RR-PLR緩沖管理方法和WRR-PAD分組調度方法,并對方法性能進行了測試。
測試參數設置如下輸入的數據流共分為八個類。其中第一類到第四類的丟失率和時延的比值均設置為1/2/3/4,第五類到第八類的丟失率和時延比值設置均為2/2/3/4。我們測試的是重負載情況下系統的性能,總的輸入速率為2Gbps,分組設置為最小以太網分組,分組大小為64Byte,即總的輸入速率為4Mpps,八個服務類分組到達的速率相等,均為256Mbps(即0.5Mpps)。
RR-PLR和WRR-PAD方法在Intel IXP2400網絡處理器上協同工作的性能如圖5至圖8所示。可見,方法能夠在適當的參數配置下對平均分組丟失率和平均排隊時延進行成比例區分控制。在測試平臺運行穩定之后,系統的總吞吐率達到了1.125483Gbps(即2.250966Mpps),在實現成比例的區分服務的基礎上達到了千兆線速轉發。
圖1 Intel IXP 2400網絡處理器結構圖;注在圖1中,ME表示微引擎(Micro Engine);網絡分組接受模塊、網絡分組發送模塊、RR-PLR即輪循-比例丟失率緩沖管理程序、WRR-PAD即加權輪循-比例平均延時分組調度程序,各自分別配置在網絡處理器的1個微引擎上,即分別分配在第0,第7,第1和第2個微引擎上,而把IPv4協議處理程序配置在所述網絡處理器的4個微引擎上,即分配在第3,4,5,6個微引擎上。
圖2綜合隊列管理方法的整體實現圖;圖3 RR-PLR方法流程圖;圖4 WRR-PAD方法流程圖;圖5 RR-PLR方法丟失率曲線實施例1;圖6 RR-PLR方法丟失率曲線實施例2;圖7 WRR-PAD方法時延曲線實施例1;圖8 WRR-PAD方法時延曲線實施例2。
具體實施例方式
網絡處理器主要完成網絡分組的接受、存儲和轉發功能。接收模塊在接收到網絡分組時,將其按RR-PLR緩沖管理方法策略存儲于分組隊列中;轉發模塊則從分組隊列中,按WRR-PAD分組調度方法取出網絡分組并轉發。
RR-PLR方法是PLR方法針對網絡處理器的近似方法,主要是通過消除原有方法中的除法、排序,降低計算復雜度。另外,RR-PLR只是把長期的平均丟失率比例作為控制目標,即只考慮了大時間尺度的情況。
在本方法中,我們的控制目標不是分組到達速率的絕對值和丟失慮的絕對值,而是不同隊列之間的比例關系。
如果記隊列i(i=0,1,…,n-1)在時間段
內到達和丟棄的分組數分別為ai(t)和di(t);記隊列i的分組平均到達速率為λi,則ai(t)=λi·t;隊列i的平均分組丟失率為Li=di(t)/ai(t)=di(t)/(λi·t)。則RR-PLR方法保證大時間尺度下,各個隊列分組丟失率的比L0/L1/…/Ln-1維持不變,記這個丟失率的比L0/L1/…/Ln-1=δ0/δ1/…/δn-1。
如果記各隊列的分組平均到達速率的比λ0/λ1/…/λn-1=k0/k1/…/kn-1,則本方法就是要確保 的關系。也即說保證各個隊列的丟棄的分組數保持比例(k0·δ0)/(k1·δ1)/…/(kn-1·δn-1)即可。ki,δi(i=0,1,…,n-1)是預先輸入的參數(在方法初始化時已經確定)。
RR-PLR方法步驟如下步驟1給每個隊列分配一個分組計數器,隊列i分配的計數器記為Ci;初始化每個隊列的分組計數器Ci=ki·δi;指針i=0。
步驟2是否有新的分組p(記該分組屬于隊列t)到達?是,轉步驟3;否,轉步驟2。
步驟3為該分組打上入隊列時間戳T入隊列;各個隊列的分組長度之和<緩存可以存放分組總個數?是,轉步驟4;否,轉步驟5。
步驟4將分組p放入相應的隊列t;(對于該分組的處理結束)轉步驟2。
步驟5Ci>0?是,轉步驟6;否,轉步驟7。
步驟6從隊列i中丟棄一個分組;Ci=Ci-1;i=i+1。
轉步驟4。
步驟7i<n-1?是,轉步驟8;否,轉步驟9。
步驟8i=i+1;轉步驟5。
步驟9對于j=0,1,…,n-1,做Cj=Cj+kj·δj;指針i=0;轉步驟5。
WRR-PAD方法是對WRR方法的改進,在保持原方法簡單性的基礎上,使得方法能提供時延比例保證,即改善了WRR方法的時延特性。與PAD方法相比(復雜度O(logN),其中N為隊列數),主要的優點是不含除法操作,并具有O(1)的復雜度。
如果記隊列i(i=0,1,…,n-1)在時間段
內發送的分組數為si(t),記隊列i的中第j個分組的延時為dij,則隊列i的平均排隊時延為Di=Σj=0si(t)dijsi(t).]]>WRR-PAD方法的控制目標是使得各個隊列平均排隊時延的比保持一致,即D0/D1/…/Dn-1=ξ0/ξ1/…/ξn-1。如果記隊列發送的分組個數滿足比例關系s0(t)/s1(t)/…/sn-1(t)=w0/w1/…/wn-1,則方法控制時延之和,滿足比例關系Σj=0s0(t)d0j/Σj=0s1(t)d1j/···/Σj=0sn-1(t)dn-1j/=(ξ0·w0)/(ξ1·w1)/···/(ξn-1·wn-1)]]>即可。
為達到這個目標,輪循是一種可行的方法為每個隊列分配需要發送的分組數量配額、分組排隊時延和的配額,維護兩個相應的計數器(初始化為相應的配額),并使得輪循時每個隊列發送的分組數和經歷的排隊時延和接近于相應計數器值。如果存在差值,則把差值補償到下一次輪循,即每經過一次輪循就把計數器加上配額。
在實現中,為隊列i(i=0,1,…,n-1)維護3個計數器。前兩個是記錄需要發送的分組數量的CSi(主計數器),記錄需要經歷的排隊時延之和的CDi(從計數器),分別初始化為CSi=wi和CDi=φi(其中φi=ξi·wi)。
為了維護主計數器CSi和從計數器CDi之間的同步平衡,還需要增加一個計數器COi。計數器COi的作用是根據隊列平均排隊時延的變化情況提前或推遲其分組的發送。COi>0表示隊列分組被提前發送,輪循次數被“透支”;COi<0表示隊列分組被推遲發送,輪循次數有“盈余”;COi=0表示正常情況。COi初始化為0。
每次調度前,CSi、COi、CDi三個計數器的值必屬于表3所列情況中的一種,根據不同的情況決定當前應該采取何種操作。
WRR-PAD方法步驟如下步驟1給每個隊列分配3個計數器,隊列i的3個計數器分別記為CSi,COi,CDi;φi=ξi·wi;初始化CSi=wi,CDi=φi,COi=0;初始化域值thdi=φi;指針i=0。
步驟2讀取CSi,COi,CDi三個計數器;根據表3判斷該情況是否需要調度?是,轉步驟3;否,轉步驟4。
步驟3根據表3改變計數器的值;從隊列i中取出一個分組;從RR-PLR模塊取得T入隊列,得到分組的出隊列時間T出隊列;計算這個分組在隊列中的延時d=T出隊列-T入隊列,并發送;CSi=CSi-1;CDi=CDi-d;i=i+1轉步驟2。
步驟4i=i+1;CSi=0并且CDi≤0?是,轉步驟5;否,轉步驟6。
步驟5CSi=CSi+wi;CDi=CDi+wi·ξi;轉步驟2。
步驟6COi=COi-1;
轉步驟2。
表1歸納了CSi,COi,CDi三個寄存器的8種不同情況。表中簡記的條件符號如下記CSi=0的情況為A,CSi>0的情況為A;記COi<0的情況為B,COi≥0的情況為B;CDi-d<0的情況為C,CDi-d≥0的情況為C;CDi+(-COi·φi)-d·(CSi+(-COi·wi))≥thdi的情況為D,CDi+(-COi·φi)-d·(CSi+(-COi·wi))<thdi的情況為D其中,d為分組在隊列中的延時,d=T出隊列-T入隊列;對于條件D和D的意義解釋如下條件D和D是在出現在條件B之下需要進一步判斷的,這種情況下,表明該隊列的分組曾被推遲發送,其輪循次數尚有“盈余”,因此需要判斷“盈余”被“補足”之后的CDi值。(-COi·φi)為“盈余”輪數所對應的總延時數;(CSi+(-COi·wi))為總共“盈余”的分組數減去這輪已經發出的分組數;CDi+(-COi·φi)-d·(CSi+(-COi·wi))即按照d的延時發送,“盈余”的總延時能不能被消耗的足夠多。
表1 CSi,COi,CDi三個寄存器的8種不同情況歸納
權利要求
1.基于網絡處理器平臺實現的綜合隊列管理方法,其特征在于,所述的綜合隊列管理方法是在一款Intel公司生產的Intel IXP 2400網絡處理器上實現的,所述方法分別把網絡分組接受模塊、網絡分組發送模塊、RR-PLR即輪循-比例丟失率緩沖管理程序、WRR-PAD即加權輪循-比例平均延時分組調度程序,各自分別配置在網絡處理器的1個微引擎上,即分別分配在第0,第7,第1和第2個微引擎上;而把IPv4協議處理程序配置在所述網絡處理器的4個微引擎上,即分配在第3,4,5,6個微引擎上;當分組進入隊列時,采用平均分組丟失率比例控制,該控制方法依次含有一下步驟步驟1A初始化每個隊列的分組計數器設隊列m分配的計數器Cm=km·δm,m=0,1,…,n-1;指針i=0;其中,km為預先確定的參數,它是各隊列的分組平均到達速率的比a0(t)/a1(t)/…/an-1(t)=k0/k1/…/kn-1;am(t)為隊列m在時間段
內到達的分組數;δm為預先確定的參數,它是各個隊列分組丟失率的比L0/L1/…/Ln-1=δ0/δ1/…/δn-1,Lm為隊列m的平均分組丟失率;所述Lm=dm(t)/am(t)=dm(t)/(λm·t);其中,dm(t)為為隊列m在時間段
內丟棄的分組數;λm為隊列m的分組平均到達速率,在程序中以km的形式表現出來;λmδm為隊列m的丟棄分組數;各個隊列的丟棄的分組數保持比例,即保持(k0·δ0)/(k1·δ1)/…/(kn-1·δn-1)的設定比例;步驟2A等待,一直到有新的分組p到達,記該分組屬于隊列t,為該分組打上到達隊列的時間戳T入隊列,轉步驟3;否,轉步驟2;步驟3A判斷各個隊列的分組長度之和是否小于或等于緩存可以存放分組總個數若是,將分組p放入相應的隊列t,對于該分組的處理結束;若否,轉步驟4A;步驟4A判斷隊列i的分組計數器Ci是否大于零,且隊列非空若是,從隊列i中丟棄一個分組;使分組計數器Ci=Ci-1;i=i+1;將分組p放入相應的隊列t,對于該分組的處理結束;重新轉到步驟2A;若否,判斷i是否小于n若是,i=i+1;轉入步驟4A;若否,對于j=0,1,…,n-1,使隊列j分組計數器的做Cj=Cj+kj·δj;指針i=0;轉到步驟4A;當分組出隊列時,采用平均排隊時延的比例控制方法,即使得各個隊列中各分組的時延滿足一下比例關系Σj=0s0(t)d0j/Σj=0s1(t)d1j/···/Σj=0sn-1(t)dn-1j/=(ξ0·w0)/(ξ1·w1)/···/(ξn-1·wn-1);]]>其中,si(t)為隊列i在時間段
內發送的分組數,i=0,1,…,n-1;dij為隊列i的中第j個分組的延時;隊列i的平均排隊時延為Di=Σj=0si(t)dijsi(t),]]>各個隊列平均排隊時延的比保持一致,即D0/D1/…/Dn-1=ξ0/ξ1/…/ξn-1;ξi為預先確定的參數;各個隊列發送的分組數滿足以下比例關系s0(t)/s1(t)/…/sn-1(t)=w0/w1/…/wn-1,wi為預先確定的參數;以上所述的平均排隊時延的比例控制方法采用輪循一次含有以下步驟步驟1B給每個隊列分配3個計數器,隊列i的3個計數器分別記為CSi為記錄需要發送的分組數量的計數器;CDi為記錄需要經歷的排隊時延之和的計數器;COi為根據隊列平均排隊時延的變化情況提前或推遲其隊列i分組的發送的輔助計數器;COi>0表示隊列分組被提前發送,輪循次數被“透支”;COi<0表示隊列分組被推遲發送,輪循次數有“盈余”;COi=0表示正常情況;φi為隊列i發送wi個分組的延時之和,φi=ξi·wi;初始化CSi=wi,CDi=φi,COi=0;初始化域值thdi=φi;指針i=0;步驟2B讀取CSi,COi,CDi三個計數器;根據下表判斷該情況是否需要調度若是,轉步驟3B;若否,轉步驟4B;根據以下CSi,COi,CDi三個寄存器的8種不同情況,判斷是否調度情況a,當CSi=0,COi≥0,CDi-d<0時調度;并改變寄存器,使得CSi=CSi+wi,CDi=CDi+φi,COi=COi+1;情況b,當CSi=0,COi≥0,CDi-d≥0時不調度;情況c,當CSi=0,COi<0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))≥thdi時不調度;情況d,當CSi=0,COi≥0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))<thdi時調度;并改變寄存器,使得CSi=CSi+wi,CDi=CDi+φi,COi=COi+1;情況e,當CSi>0,COi<0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))≥thdi時不調度;情況f,當CSi>0,COi<0,CDi+(-COi·φi)-d·(CSi+(-COi·wi))<thdi時調度;并改變寄存器,使得CSi=CSi-1,CDi=CDi-d;情況g,當CSi>0,COi≥0,CDi-d<0時調度;并改變寄存器,使得CSi=CSi-1,CDi=CDi-d;情況h,當CSi>0,COi≥0,CDi-d≥0時不調度;其中,d為分組在隊列中的延時,d=T出隊列-T入隊列;對于條件D和D的意義解釋如下條件D和D是在出現在條件B之下需要進一步判斷的,這種情況下,表明該隊列的分組曾被推遲發送,其輪循次數尚有“盈余”,因此需要判斷“盈余”被“補足”之后的CDi值;(-COi·φi)為“盈余”輪數所對應的總延時數;(CSi+(-COi·wi))為總共“盈余”的分組數減去這輪已經發出的分組數;CDi+(-COi·φi)-d·(CSi+(-COi·wi))即按照d的延時發送,“盈余”的總延時能不能被消耗的足夠多;步驟3B-1根據上述不同的情況,改變計數器的值;步驟3B-2從隊列i中取出一個分組;從RR-PLR模塊取得T入隊列;取當前時間得到分組的出隊列時間T出隊列;計算這個分組在隊列中的延時d=T出隊列-T入隊列,并發送;步驟3B-3使CSi=CSi-1;CDi=CDi-d;i=i+1;轉步驟2B;步驟4Bi=i+1;判斷CSi=0并且CDi≤0若是,轉步驟5B;若否,轉步驟6B;步驟5BCSi=CSi+wi;CDi=CDi+wi·ξi;轉步驟2B;步驟6BCOi=COi-1;轉步驟2B。
全文摘要
基于網絡處理器平臺實現的隊列綜合管理方法屬于隊列管理和分組調度技術領域,其特征在于它是在Intel公司的Intel IXP 2400網絡處理器上實現的;它在分組進入隊列時,采用平均分組丟失率比例控制,確保分組丟失速率和分組到達平均速率之比為常數;在分組出隊列時,采取平均排隊延時比例控制方法,確保各隊列中分組平均排隊時延之比為常數。它降低了丟失率比例緩沖管理和平均時延分組調度方法的復雜度,而且根據到達分組的丟失行為來動態調整閾值,保證獲得預期的相對公平性,提高了緩沖資源的利用率,他的轉發性能達到了千兆高速。
文檔編號H04L12/56GK1716906SQ20051001208
公開日2006年1月4日 申請日期2005年7月4日 優先權日2005年7月4日
發明者林闖, 鄭波, 倪嘉 申請人:清華大學