專利名稱:共享存儲交換結構中基于滑動窗口的高效組播轉發(fā)方法
技術領域:
本發(fā)明屬于以太網(wǎng)交換機系統(tǒng)的前端交換技術,具體涉及一種共 享存儲交換結構中基于滑動窗口的高效組播轉發(fā)方法。
背景技術:
Crossbar是一種被廣泛用于高速背板交換的交換結構。一個M*N 的Crossbar交換結構具有M個輸入端口和N個輸出端口 ,這M個輸 入和N個輸出端口共形成M*N個交匯的開關,若第i個輸入端口和 第j個輸出端口交匯處的開關閉合,第i個輸入端口和第j個輸出端 口形成通路,如此形成輸入端口 i到輸出端口 j的交換。顯然在任意 時刻,每個輸入端口只能閉合到一個輸出端口的交匯開關。通常的 Crossbar結構具有相同的輸入和輸出端口數(shù),因為若M^N,同一時 刻閉合的交匯開關取決于M,N中較小的數(shù)。圖1是一個通用的基于 Crossbar的交換模型,這個模型采用NxN的Crossbar作為交換結構 (Switching Fabric),帶有輸入和輸出隊列。早先的交換結構僅帶有輸 出隊列,為了提高交換的吞吐率和避免丟包,現(xiàn)在一般使用輸入輸出 相結合的隊列(CIOQ)。但是單一的輸入隊列將導致線頭阻塞(HOL), 因此引入了虛擬輸出隊列(VOQ),即將每個端口的輸入隊列按照N個 輸出端口細分為N個子隊列,這樣暫時得不到調(diào)度機會的分組不會 阻塞其他后續(xù)分組的調(diào)度。關于Crossbar調(diào)度已有的最重要的算法包 括/SLIP、 WFA等,其中/SLIP在Cisco GSR 12000上得到成功應用。 /SLIP本質上是一種啟發(fā)式(heuristic)算法,它成型于更早的算法PIM 和/RRM,這一系列算法的共同之處在于,這是一種用空間換時間的 策略,集中式的調(diào)度算法需要密集的計算,按照當時的計算能力,設 計一個集中式的調(diào)度器缺乏實用性。因此,將調(diào)度策略分擔到Nx2 個仲裁器(arbiters)上,加快了調(diào)度策略的計算時間。
最近臺灣學者提出了兩階段的調(diào)度模型[1,2],如圖2所示。這個模
型在傳統(tǒng)的交換矩陣之前加入一個負載分擔功能的矩陣。目前的
Crossbar交換矩陣可以稱為Birkhoff-vonNeumann矩陣,從端口/到端 q/的流量記為 々0,如此構成了一個矩陣7 =[ ],成為交換結構的 流量矩陣。沒有過度占用帶寬時,流量矩陣滿足-
這個矩陣可以被補充為一個雙隨機矩陣
雙隨機矩陣可以按照一系列循環(huán)矩陣進行凸分解,即存在整數(shù)k和循 環(huán)矩陣^以及系數(shù)A,使得
s::a尸4, 其中&>0,且id一i
由于諸^都是循環(huán)矩陣,這樣的分解可以達到100%的吞吐量,如圖 3所示。
Crossbar速度快,但成本較高,當前基于Crossbar的交換結構主 要用于大型交換系統(tǒng)的背板交換。
共享型交換結構是一種所有輸入輸出端口的報文經(jīng)過切分為固 定長度的"信元"后,這些信元"共享" 一個公共的內(nèi)存區(qū),經(jīng)過排 隊,重組以后,再從各個輸出端口輸出的交換模型。這個模型的特點 是有高吞吐量,低延時和高效的內(nèi)存利用率。芯片的操作被劃分為"時 隙",在每一個時隙內(nèi),所有的輸入端口能夠向公共存儲器各自存儲 一個信元,同時所有的輸出端口也能從這個公共的存儲器中分別取出 一個信元(如果有發(fā)往該目的端口的信元的話)。 一個共享內(nèi)存交換機 有點類似一個輸出緩沖的交換機,也需要達到最優(yōu)的吞吐率和時延, 為此需要一個集中的存儲區(qū)管理機制來實現(xiàn)信元的調(diào)度和隊列的管 理。這個集中的內(nèi)存緩沖區(qū)管理使得交換的容量受限于內(nèi)存的讀/寫 的訪存時間,即每個時隙需要滿足對N個入信元的寫入和N個出信 元的讀出。
圖5是基于鏈表的Shared Memory交換結構的概念模型,來自不
同端口的信元經(jīng)過時分復用后形成一個單一的流,此后再轉換成并行 的,寬度為信元長度的"字流",繼而送入公共的存儲空間。在存儲 器內(nèi)部,信元按照到不同的目的端口形成不同的邏輯隊列,這些輸出
隊列的線頭(Head of Line, HOL)按順序被首先取出至輸出端口 ,每個 隊列取一個。此后,輸出流按照時分解復用,從而形成信元在輸出端 口輸出。每一個邏輯隊列由兩個指針來管理,即頭指針(HP)和尾指針 (TP)。頭指針指向隊列的頭部,也就是HOL,尾指針指向該邏輯隊列 的最后一個信元或者下一個空閑地址,使下一個進入該隊列的能找到 位置存放。
作為交換/路由設備完成轉發(fā)功能的核心,按照進入信元的緩存 策略分類,交換結構可以分為輸入排隊、輸出排隊和共享存儲排隊。 其中,前兩種實現(xiàn)方式通常還包括一個空分(space-division)單元,如 前文介紹的Crossbar背板交換。已有的研究表明,輸出排隊能夠實現(xiàn) 最優(yōu)的性能,同時避免諸如線頭阻塞(HOL)之類降低系統(tǒng)效率的因 素。與輸入或輸出排隊類型不同,共享存儲器的交換結構將交換的功 能全部在一個公共存儲器中實現(xiàn),其排隊原理非常類似于輸出排隊, 且由于各個隊列共享存儲空間,提高了對存儲資源的利用率,加上沒 有使用其他空分結構,使得共享存儲交換結構有較高的效率和較低的 實現(xiàn)成本,從而在單板交換或大型交換系統(tǒng)的前端交換中占據(jù)主導地 位。
傳統(tǒng)的交換結構包括信元拷貝交換、地址拷貝交換和優(yōu)先級處理 交換。為了描述的簡單,假定交換結構都是4個輸入和4個輸出端口, 分別記為#0到#3;共享存儲空間均為9個信元大小。 一個從輸入端 口#0進入的單播信元要交換到輸出端口糾, 一個從輸入端口#3進入 的組播信元要交換到輸出端口#2和#3,并且有可能發(fā)生緩沖區(qū)溢出 現(xiàn)象。
圖6所示的組播信元拷貝交換結構首先將到來的組播信元復制 到它的每個目的端口的輸出隊列并存入共享緩存區(qū)。因此,這種交換 結構的實現(xiàn)只需在輸入側加上一個信元拷貝電路就行了 。假設發(fā)往目
的端口#0和#2的信元分別存儲于共享存儲區(qū)的地址0和地址5,到 輸出端口#3的信元因為共享存儲區(qū)已經(jīng)占滿而被丟棄。存儲新來信 元的存儲單元被鏈接到相應輸出隊列的尾部。圖中使用記號O表示新 申請到的地址,每個隊列的首地址存儲的信元會被各自輸出端口發(fā) 送。
圖7所示的組播地址拷貝交換結構對進入的組播地址信元不進 行復制操作,但是它將其存儲區(qū)中的地址進行復制并添加到相應的端 口地址拷貝隊列(ACQ)中去。在這個例子中,存儲區(qū)5的地址被復制, 并被放到#2和#3的輸出隊列中排隊。新來的單播信元被存儲到地址 0,這個地址加入到糾的輸出隊列。由于這種結構沒有復制組播信元, 因此一個組播信元在所有的目的端口都得到轉發(fā)之前不能將其從緩 存中釋放。為了確定一個組播信元的釋放時間,通常采用一個計數(shù)器。 組播信元到來時,計數(shù)器設置為其目的端口的個數(shù),每個目的端口每 發(fā)送一次該組播信元,這個計數(shù)器就自減1,當這個計數(shù)器變?yōu)?時, 說明這個組播信元在緩存中被釋放,相應的地址變?yōu)榭臻e。在圖7所 示的例子中,存儲區(qū)地址0和5的計數(shù)器分別設為l和2,同時,地 址為1,2,4,6的計數(shù)器都減了 1。此時,地址2和地址4變?yōu)榭臻e,因 為計數(shù)器都變?yōu)?,但地址1和地址6都還在使用。
組播信元的優(yōu)先級處理方式采用一個專用的組播地址隊列 (DMQ)存放組播信元,這個組播信元隊列得到高于其他隊列的優(yōu)先 級,這樣以來,信元在共享存儲區(qū)中也不必復制多個拷貝。如圖8所 示的優(yōu)先級處理模型示例中,存儲于共享緩存區(qū)地址1的組播信元將 被轉發(fā)到#1和#2輸出端口,在此之后,轉發(fā)到#0和#3單播信元(存 儲于地址2和地址4)才被發(fā)送,通常采用一種屏蔽電路實現(xiàn)上述操 作,這個電路在有端口要發(fā)送組播信元時,將這些端口對單播信元設 為不可見,即對單播輸出隊列掩蓋這些端口,因此,在發(fā)送組播信元 時,單播信元被暫時阻塞。
DMQ方案的缺陷在于,當組播流量的負載達到一定程度時,將 嚴重阻礙單播信元的轉發(fā),因為組播信元有較高的優(yōu)先級。對此,研 究者提出了輪轉策略,帶權輪轉策略等方案[3],但是這又會在很多情
況下造成組播隊列的線頭擁塞,因為組播隊列只有一個。ACQ較好 地解決了擁塞的問題,但是帶來了額外的開銷,即除信元的存儲空間 外,還需要額外的地址隊列,他們都共存于公共的共享存儲空間。
以FIFO (First In First Out,先入先出)方式實現(xiàn)的ACQ的另一 個不足之處在于其在較大的流量壓力下對存儲空間利用的瓶頸。如圖 9所示的地址隊列中,如果端口 0到端口 3按照FIFO方式發(fā)送地址 隊列所指向的信元,則在一個發(fā)送周期后,共享存儲區(qū)僅釋放了兩個 單播信元的存儲地址,分別為地址5和地址9。
發(fā)明內(nèi)容
本發(fā)明的目的在于針對現(xiàn)有組播報文轉發(fā)機制所存在的問題,提 供一種共享存儲交換結構中基于滑動窗口的高效組播轉發(fā)方法,從而 提高組播信元在各個目的端口轉發(fā)的同步程度,并降低對共享存儲空 間的消耗。
本發(fā)明的技術方案如下 一種共享存儲交換結構中基于滑動窗口 的高效組播轉發(fā)方法,包括如下步驟
(1) 對等待輸出的信元地址隊列按到來順序編號,若干個連續(xù) 的信元地址列構成滑動窗口 ,列的數(shù)目構成滑動窗口的寬度附WO , 滑動窗口的兩側分別為滑動窗口的前沿W(S『)和后沿朋0S^);
(2) 取滑動窗口寬度附dOW)的值為『。,前沿M(S『"0,后沿 5£(,)=『0-1;
(3) 對于滑動窗口前沿的組播信元地址,設定端口 /地址隊列 頭部所指的信元為組播信元MC,, /=0到#~1,其中^為輸出端口的 個數(shù),判斷該組播信元的當前計數(shù)器的值Co"""ikTC,),
第一種情況,如果Cow"/(MO/wW(MC,,S『),/"W(MC〃S『)為滑動 窗口中實例的個數(shù),向后搜索MC,.后面的信元,如果在滑動窗口寬度 的范圍內(nèi)有地址指向單播信元,將這個單播地址臨時標記為待發(fā)送地 址,否則,將該頭部地址臨時標記為待發(fā)送地址;
第二種情況,如果。"""肘(:,)=/"對(^1^:,,5『),將Mq在當前滑動 窗口中各個地址隊列中的全部實例臨時標記為待發(fā)送地址;
(4) 若位于滑動窗口的前沿的各個信元地址都被標記為待發(fā)送, 則將滑動窗口向后平移一個地址長度;
(5) 按照各個端口地址隊列的待發(fā)送地址發(fā)送相應信元,若為 單播信元,隨即釋放空間;若為組播信元,按照轉發(fā)的實例數(shù)遞減信 元的計數(shù)器Co"""MC),若計數(shù)器為0,才釋放空間;然后,轉至步驟
(3)。
如上所述的共享存儲交換結構中基于滑動窗口的高效組播轉發(fā) 方法,其中,在步驟(3)中,如果滑動窗口的前沿沒有組播信元地 址,將前沿的每個單播信元地址標記為待發(fā)送地址,向后平移滑動窗 口一個地址長度,直接轉至步驟(5)。
如上所述的共享存儲交換結構中基于滑動窗口的高效組播轉發(fā) 方法,其中,在步驟(3)中,對于第一種情況,如果在滑動窗口寬 度的范圍內(nèi)有地址標記為待發(fā)送,則設端口/地址隊列頭部所指的信 元為單播信元t/C,,向后搜索"C,.后面的信元,如果在滑動窗口寬度的 范圍內(nèi)有地址標記為待發(fā)送,則轉至步驟(4);否則,將該單播地址 臨時標記為待發(fā)送地址。
如上所述的共享存儲交換結構中基于滑動窗口的高效組播轉發(fā) 方法,其中,在步驟(3)中,對于第二種情況,如果各個端口地址 隊列中已有其它組播信元地址被標記為待發(fā)送地址,則比較已標記的 地址和即將標記地址距前沿的位置,距前沿較近的被置為待發(fā)送地 址,距前沿較遠的如果已被置為待發(fā)送地址,就擦去這個標志;若先 前已標記為待發(fā)送的信元為單播信元,則讓位于這個組播信元地址。
本發(fā)明的有益效果在于本發(fā)明所提供的方法顯著降低了組播信 元的轉發(fā)跨度,從而降低了組播信元在共享存儲區(qū)中的逗留時間,該 方法的兩個最直接的優(yōu)點在于提高了組播信元在各個目的端口轉發(fā) 的同步程度以及降低了對共享存儲空間的消耗,其性能至少可以達到 現(xiàn)有的地址拷貝機制,而在給定的組播流量比例和組播扇出條件下, 其性能對DMQ和ACQ有大幅度改善。
圖1為帶有輸入輸出隊列和VOQ的交換結構模型示意圖。 圖2為兩階段調(diào)度模型示意圖。
圖3為通過Birkhoff-von Neumann的循環(huán)矩陣分解達到100%吞 吐率的示意圖。
圖4為用二部圖來等價求解循環(huán)矩陣的示意圖。
圖5為基于鏈表的Shared Memory交換結構模型示意圖。
圖6為組播信元拷貝的交換結構示意圖。
圖7為組播信元的按地址拷貝方式示意圖。
圖8為組播信元的優(yōu)先級處理方式示意圖。
圖9為FIFO方式下ACQ的性能瓶頸及一種啟發(fā)式的改善措施 示意圖。
圖IO為滑動窗口的定義方式示意圖。
圖11為待發(fā)送地址的選取方式示意圖。
圖12為組播信元調(diào)度的搶占方式示意圖。
圖13為發(fā)生搶占時組播信元調(diào)度的轉發(fā)跨度示意圖。
圖14為多搶占的組播信元的轉發(fā)跨度示意圖。
圖15為滑動窗口寬度與組播信元轉發(fā)跨度的對比圖。
圖16為不同滑動窗口寬度時存儲區(qū)占用情況的對比圖。
具體實施例方式
下面結合附圖和實施例對本發(fā)明進行詳細的描述。 滑動窗口的組播-單播混合地址隊列(Sliding Window Based Promiscuous Address Copy Queue, SWPACQ)旨在提供一種局部的優(yōu) 化策略,滑動窗口的寬度規(guī)定了所能進行優(yōu)化的范圍。通過對窗口范 圍內(nèi)的信元做轉發(fā)的選擇,能夠有效地提高傳統(tǒng)的ACQ方式在轉發(fā) 單播-組播混合流量時所面臨的存儲和轉發(fā)的低效問題。 首先,介紹一些記法和定義。
定義1滑動窗口由若干連續(xù)的列構成,其中每一列為按到來順 序排隊的等待輸出的信元地址。列的數(shù)目構成滑動窗口的寬度
附^(s『),如圖io所示,圖中帶陰影的方框表示組播信元,字母僅用 于標識隊列中的位置而不表示地址,滑動窗口的兩側分別稱為滑動窗 口的前沿i^(s『)和后沿5五(s『)。
定義2滑動窗口內(nèi)位于相同存儲地址的組播信元MC在地址隊
列中的一個位置稱為該組播信元在該位置的實例。這些實例所跨的最 大列間距稱為該組播信元的隊列跨度,簡稱跨度,記為
ewewe印aw(MC,S『),滑動窗口中實例的個數(shù)記為/"W(MC,S『)。圖10 中,隊列位置A,B,C所指的組播信元在滑動窗口內(nèi)的跨度為3,實例 數(shù)為2;而隊列位置E,D所指的組播信元在滑動窗口中的跨度為4, 實例數(shù)為2。
使用地址拷貝隊列機制的每個組播信元都有自己的轉發(fā)計數(shù)器, 用于記錄需要轉發(fā)的端口的個數(shù),每當這個組播信^i的一個實例被轉 發(fā)出去,該計數(shù)器自減l,當計數(shù)器的值變?yōu)镺,則釋放該組播信元 的地址,計組播信元當前的計數(shù)器的值為On^(M:)。顯然有以下的 性質
性質1 Cow""MC)》/"W(MC,Sfr)
滑動窗口用于選取窗口寬度范圍內(nèi)每個輸出地址隊列中轉發(fā)優(yōu) 先級最高的信元,為此,首先規(guī)定滑動窗口的寬度附c/(s『)的值,這 個值取決于對歷史數(shù)據(jù)的估計和轉發(fā)引擎的計算速度,太大的窗口寬 度將加重轉發(fā)引擎的計算強度和時間。
本發(fā)明的具體算法描述如下
首先對各個地址隊列按照順序編號,如圖10所示,編號從最靠 近輸出側的0開始?;瑒哟翱谡{(diào)度機制按照以下步驟進行
步驟0:取滑動窗口寬度附d(S『)的值為『。,前沿FE(S『)-0,后 沿朋同=『0-1。
步驟l:若滑動窗口的前沿沒有組播信元地址,將前沿的每個(單 播)信元地址標記為待發(fā)送地址,向后平移滑動窗口一個地址長度, 轉至步驟4。
步驟2:若滑動窗口的前沿中包含組播信元地址,按照以下子步
對、0到iV-1,其中W為輸出端口的個數(shù)
步驟2.1:設端口/地址隊列頭部所指的信元為組播信元MC,,考 慮該組播信元的當前計數(shù)器的值Co"W(MCi),分兩種情況
(1) 若Cow""MC,.)〉/"W(MC,.,S『),向后搜索MC,后面的信元,如果 在滑動窗口寬度的范圍內(nèi)有地址標記為待發(fā)送,則轉步驟2.2;否則, 如果在滑動窗口寬度的范圍內(nèi)有地址指向單播信元,將這個(單播)地 址臨時標記為待發(fā)送地址;否則,將該頭部地址臨時標記為待發(fā)送地 址;
(2) 若Cow""MC,.) = /"W(MC,.,S『),嘗試將在當前滑動窗口中各 個地址隊列中的全部實例臨時標記為待發(fā)送地址若各個端口地址隊 列中已有其它組播信元地址被標記為待發(fā)送地址,則比較已標記的地 址和即將標記地址據(jù)前沿的位置,距前沿較近的被置為待發(fā)送地址, 距前沿較遠的如果已被置為待發(fā)送地址,就擦去這個標志。若先前已 標記為待發(fā)送的信元為單播信元,則讓位于這個組播信元地址。如圖 11示,輸出端口 1在選取待發(fā)送地址時,用參指示的信元地址最后 讓位于用O指示的信元地址。
步驟2.2:設端口/地址隊列頭部所指的信元為單播信元t/C,,向 后搜索C/C,后面的信元,如果在滑動窗口寬度的范圍內(nèi)有地址標記為 待發(fā)送,則轉下一步;否則,將該(單播)地址臨時標記為待發(fā)送地址;
步驟3:若位于滑動窗口的前沿的各個信元地址都被標記為待發(fā) 送,則將滑動窗口向后平移一個地址長度。
步驟4:按照各個端口地址隊列的待發(fā)送地址發(fā)送相應信元,若 為單播信元,隨即釋放空間;若為組播信元,按照轉發(fā)的實例數(shù)遞減 信元的計數(shù)器Co"""MC),若計數(shù)器為0,才釋放空間。
步驟5:轉至步驟l。
本發(fā)明所提供算法的性能分析如下
首先考慮SWPACQ的算法復雜性,在步驟1和步驟3中,需要 判斷滑動窗口前沿的iV的地址,計算量為iV,步驟2中有iV個循環(huán),
每個循環(huán)內(nèi)部至多有iV個子循環(huán),搜索深度至多為^,因此整個步驟
2的計算量至多為w《,故整個SWPACQ的算法復雜性為o(jv2氣)。 特別地,當取『。=1時,也就是沒有使用滑動窗口的傳統(tǒng)ACQ算法。
如前所述,SWPACQ能夠在局部范圍內(nèi)優(yōu)化對共享存儲空間的 利用,為了研究其對系統(tǒng)性能的影響,首先給出如下的定義
定義3組播信元的系統(tǒng)逗留時間為該信元寫入共享存儲空間到 其最后一個實例被轉發(fā)出去的時間間隔,記為w(似c)。組播信元的第 一個實例和最后一個實例轉發(fā)的時間間隔稱為組播信元的轉發(fā)跨度,
<formula>formula see original document page 13</formula>
滑動窗口算法能在窗口范圍內(nèi)實現(xiàn)轉發(fā)優(yōu)化,因此下面的性質是
顯然的-
性質2 Fww必萍(MC)《g固eS拜(MC)
轉發(fā)跨度刻畫了一個組播信元向多個目的端口轉發(fā)在時間上同 步的程度,較小的轉發(fā)跨度對于交互式實時應用(如網(wǎng)絡會議)是有利 的。組播信元地址在各個端口地址隊列中的次序是一致的。因此有下 面的性質
性質3若組播信元Md和MC2的實例共存于某個端口地址隊 列,在這個隊列中,Md的實例先于MC2的實例(即Md的實例距輸 出端口較近),若Md的實例和MC2的實例還共存于其它端口地址隊 列,則在這些隊列中,Md的實例都先于MC2的實例。因此"先于" 關系與組播信元實例在哪個端口的位置無關。
表l圖6中組播信元的存儲空間的釋放
轉發(fā)周期ACQ SWPACQ
1 0 1〇
2 0 0
3 2〇 1
4 0 1參 6 1參 0
如前所述,使用滑動窗口的調(diào)度過程中,可能出現(xiàn)多次選擇發(fā)送
組播信元的情形,這種稱為組播信元的調(diào)度沖突。在圖12中,端口
3發(fā)生了調(diào)度沖突,根據(jù)算法步驟2.1的(2),用O指示的信元地址獲 勝,但這將導致用參和令指示的組播信元的發(fā)送延遲,我們稱O搶占 了攀和令,端口 5的情形是類似的。表1顯示了圖6所示的組播信元 分布按照傳統(tǒng)的ACQ和SWPACQ兩種方式信元存儲空間釋放時間 的對比。調(diào)度沖突是不可避免的,發(fā)生了調(diào)度沖突將顯著降低 SWPACQ的轉發(fā)效率,為此需要給出其對性能影響的估計。首先有 下列性質
性質4若滑動窗口中組播信元的所有實例都在滑動窗口內(nèi)部, 且前沿存在至少一個組播信元地址,則調(diào)度前沿信元地址的周期中, 公共緩存中至少可以釋放一個組播信元的存儲空間。
證明設滑動窗口的前沿有組播信元Md的地址,信元Md在 調(diào)度前沿信元地址的周期l中將其所有實例轉發(fā)出去的充要條件是 其沒有任何實例被搶占,若Md在該調(diào)度周期中沒有把所有實例全 部轉發(fā)出去,則Md被另一個組播信元搶占,記為MC2。對MC2施 以同樣推導,由于輸出端口數(shù)有限,最后必然有一個MCn,該組播信 元所有實例位于滑動窗口內(nèi)且不被任何其他組播信元搶占,因此,周 期To中至少有MCn的所有實例被全部轉發(fā),從而釋放其存儲空間。
由性質3不難看出,組播信元地址的"先于"關系等價于"搶占" 關系。即是說,若Md的實例先于MC2的實例,當且僅當Md的實 例搶占了 MC2的實例。為了研究發(fā)生搶占時組播信元調(diào)度的轉發(fā)跨 度,記組播信元地址到滑動窗口前沿的距離為該信元實例的前沿距 離。在圖13中,設滑動窗口的前沿即為最下一行。左圖中,標記參 的組播信元地址在端口2的前沿距離為1,而右圖中,標記參的組播 信元地址在端口 2的前沿距離為2。對于發(fā)生沖突時,被搶占的組播 信元的轉發(fā)跨度,有以下性質
性質5 SWPACQ調(diào)度方式中,設組播信元MC,和Mq都有實例位 于滑動窗口前沿,若搶占了 MC2且兩個組播信元的全部實例都位 于滑動窗口內(nèi),則MC2的轉發(fā)跨度fbn^WSj^m(MC2)為MC2在發(fā)生沖突 的端口上的最小前沿距離+1。
證明按照SWPACQ算法步驟2和步驟3, MC,在非沖突端口
上的實例以及MC,的全部實例在滑動窗口的前沿調(diào)度周期中就可以 全部調(diào)度出去,而下一次調(diào)度Mq的剩余實例,需要等到這些實例下 移到滑動窗口前沿時發(fā)生,且一次可以全部轉發(fā)完畢,而這個下移的 時間正好就是Mq在發(fā)生沖突的端口上的最小前沿距離,故其轉發(fā)跨
度為最小前沿距離+1。
根據(jù)性質5,圖7中左圖里標記*的組播信元的轉發(fā)跨度為2,右 圖中標記*的組播信元的轉發(fā)跨度為3。此性質給出了兩個組播信元 發(fā)生搶占時的轉發(fā)跨度計算。以下記被搶占信元位于發(fā)生沖突的端口 上的最小前沿距離的實例為該信元的關鍵實例,圖13中兩個示例中 標記*的組播信元的關鍵實例位于端口 2。發(fā)生多次搶占的情形要復 雜些設組播信元MC"A/q,Mq都有實例位于滑動窗口前沿,若MC, 搶占了Mq,Mq搶占了Mq,并且這3個組播信元的全部實例都位于 滑動窗口內(nèi),則Mq的轉發(fā)跨度分兩種情況(l)若Mq的關鍵實例 所在的端口上后續(xù)有MC3實例,則這個實例被調(diào)度的周期決定了 MC3 的轉發(fā)跨度;(2)若MC2的關鍵實例所在的端口上后續(xù)沒有MC3實例, 則其他端口上位于Mq的關鍵實例調(diào)度周期之后的具有最小前沿距 離的那些Mq實例決定了MC;的轉發(fā)跨度。如圖14所示,組播信元 暴搶占了組播信元o,組播信元o搶占了組播信元令。組播信元o的關 鍵實例位于端口3,這個關鍵實例所在的端口上沒有后續(xù)令實例, 在其他端口上,且在o的關鍵實例轉發(fā)周期之后的具有最小前沿距離 的實例位于端口2,該實例的前沿距離+1即為令的轉發(fā)跨度。
設每個時隙進入共享緩存的信元中組播信元占的比例為p ,組播 信元的平均扇出為/ 。進一步假設每個組播信元的實例等概率地分布 到iV個輸出端口,則一個時隙中每個端口地址隊列中進入一個組播信 元實例的概率為<formula>formula see original document page 15</formula>。結合性質5,可以得到一個有用 的估計式
性質6記<formula>formula see original document page 15</formula>,若在某一個時刻組播信元MC,和Mq同時 到達滑動窗口的前沿,但MC,搶占了Mq,當滑動窗口足夠寬時,MC2 的轉發(fā)跨度不超過S(S》2)的概率
<formula>formula see original document page 15</formula>
證明由假設條件,MC,有實例到達滑動窗口的前沿,且MC,搶 占了Mq, MC,的轉發(fā)跨度至少為2。記Mq位于前沿的實例所在的 端口為端口q。由性質5,端口 q上如果有Mq進入,且其前沿距離 為n,則MC,的轉發(fā)跨度至多為w+l。由前面的分析,每個時隙MC,進 入端口q的概率為戶。,顯然,端口q上Mq的實例的前沿距離為"的 概率為(1-P。)""尸。。從而,M(^的轉發(fā)跨度不超過S的總概率至少為 U(l-W。。
下面通過模擬研究與分析進一步介紹本發(fā)明的特點。 模擬一臺8*8個共享存儲交換結構,采用被廣泛認可的ON-OFF 模型來生成輸入流量。全部的存儲區(qū)大小為2000信元。數(shù)據(jù)按照 100//,個ON-OFF單數(shù)據(jù)源的疊加生成,其中/z,用來調(diào)節(jié)流量的強度, 即載荷。對于單個的ON-OFF數(shù)據(jù)源,以0.2的概率進入ON狀態(tài), 平均逗留時間為IO個時隙,平均每時隙產(chǎn)生2個信元。進入OFF的 概率為0.8,其平均逗留時間為3.75時隙。輸入和輸出的線速為//,取 1時疊加后數(shù)據(jù)的平均流量。在ON狀態(tài),每個時隙中以比例^產(chǎn)生 組播信元。沿用[8]提出的組播扇出模型,每個組播信元扇出的端口
數(shù);r滿足以下截斷的幾何分布
g("=Pro[JT = A:]= (1-H《")0<《<1 w為輸出端 口數(shù),《為常數(shù)此時
對兩個關鍵的性能參數(shù)進行比較首先比較的是組播信元的平均 轉發(fā)跨度。選取三種不同的組播濃度,^分別取值為0.2,0.25,0.3,《取 0.3。得到的轉發(fā)跨度的對比如圖15所示,不難看出,使用SWPACQ 算法,當滑動窗口的寬度從l(即傳統(tǒng)的ACQ算法)按照IO為步長遞 增9次至91,不管在何種組播濃度的情形下,組播信元的平均轉發(fā) 跨度幾乎都隨著窗口的寬度的增加有明顯下降,如前所述,這個結果 對于交互式的實時應用非常有利。其次比較的是對共享存儲空間的占 用情況,此時固定一個組播濃度;p =0.2,取400個時隙長的觀察區(qū)間,分別就窗口寬度為1,51,91對比運行期的公共存儲區(qū)的占用情況。圖 16的結果顯示,滑動窗口寬度的加大顯著優(yōu)化了轉發(fā)的效率,使得 在相同的流量條件下,系統(tǒng)中排隊的信元數(shù)量較ACQ有相當程度的 下降,在滑動窗口寬度為51時,對共享存儲區(qū)的占用都下降了 12% 到18%,若取更寬的滑動窗口,下降的程度更高。因此,在高負荷 的網(wǎng)絡負載的條件下,SWPACQ在選擇合適的窗口寬度時能有效降 低系統(tǒng)的丟包率。
參考文獻 Cheng-Shang Chang, Duan-Shin Lee and Yi-Shean Jou, Load balanced Birkhoff-von Neumann switches, part I: one-stage buffering, Computer Communications, Vol. 25, pp. 611-622, 2002. [2] Cheng-Shang Chang, Duan-Shin Lee and Ching-Ming Lien, Load balanced Birkhoff-von Neumann switches, part II: multi-stage buffering, Computer Communications, Vol. 25, pp. 623-634, 2002. [3] H. Jonathan Chao, Cheuk H. Lam, Eiji Oki, Broadband Packet Switching Technologies - A Practical Guide to ATM Switches and IP Routers John Wiley & Sons Inc, 2001 Takahiro Okoge, Hiroshi Inai, and Jiro Yamakita A Shared-Memory ATM Switch
with Multicast Function, Electronics and Communications in Japan, Part 1, Vol.
82, No. 10, pp. 316-324, 1999 [5] Sanjeev Kumar, The Sliding-Window Packet Switch: A NewClass of Packet Switch
Architecture With Plural Memory Modules and Decentralized Control, IEEE
JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 21, NO. 4,
pp656-673, MAY 2003 [6]朱勝瓊,《自主研發(fā)萬兆以太網(wǎng)核心交換芯片(12GE+1X10GE)中快速過濾單元的 研究和設計》,
武漢郵電科學研究院碩士學位論文,2006,3 [7]彭建輝,《自主研發(fā)萬兆位以太網(wǎng)核心交換芯片(12GE+1X10GE)中存儲管理單元 的研究與設計》,
武漢郵電科學研究院碩士學位論文,2006,權利要求
1.一種共享存儲交換結構中基于滑動窗口的高效組播轉發(fā)方法,包括如下步驟(1)對等待輸出的信元地址隊列按到來順序編號,若干個連續(xù)的信元地址列構成滑動窗口,列的數(shù)目構成滑動窗口的寬度Wid(SW),滑動窗口的兩側分別為滑動窗口的前沿FE(SW)和后沿BE(SW);(2)取滑動窗口寬度Wid(SW)的值為W0,前沿FE(SW)=0,后沿BE(SW)=W0-1;(3)對于滑動窗口前沿的組播信元地址,設定端口i地址隊列頭部所指的信元為組播信元MCi,i=0到N-1,其中N為輸出端口的個數(shù),判斷該組播信元的當前計數(shù)器的值Count(MCi),第一種情況,如果Count(MCi)>Inst(MCi,SW),Inst(MCi,SW)為滑動窗口中實例的個數(shù),向后搜索MCi后面的信元,如果在滑動窗口寬度的范圍內(nèi)有地址指向單播信元,將這個單播地址臨時標記為待發(fā)送地址,否則,將該頭部地址臨時標記為待發(fā)送地址;第二種情況,如果Count(MCi)=Inst(MCi,SW),將MCi在當前滑動窗口中各個地址隊列中的全部實例臨時標記為待發(fā)送地址;(4)若位于滑動窗口的前沿的各個信元地址都被標記為待發(fā)送,則將滑動窗口向后平移一個地址長度;(5)按照各個端口地址隊列的待發(fā)送地址發(fā)送相應信元,若為單播信元,隨即釋放空間;若為組播信元,按照轉發(fā)的實例數(shù)遞減信元的計數(shù)器Count(MC),若計數(shù)器為0,才釋放空間;然后,轉至步驟(3)。
2. 如權利要求1所述的共享存儲交換結構中基于滑動窗口的高 效組播轉發(fā)方法,其特征在于在步驟(3)中,如果滑動窗口的前 沿沒有組播信元地址,將前沿的每個單播信元地址標記為待發(fā)送地 址,向后平移滑動窗口一個地址長度,直接轉至步驟(5)。
3. 如權利要求1所述的共享存儲交換結構中基于滑動窗口的高 效組播轉發(fā)方法,其特征在于在步驟(3)中,對于第一種情況,2如果在滑動窗口寬度的范圍內(nèi)有地址標記為待發(fā)送,則設端口 /地址隊列頭部所指的信元為單播信元f/q,向后搜索c/c,后面的信元,如果在滑動窗口寬度的范圍內(nèi)有地址標記為待發(fā)送,則轉至步驟(4);否 則,將該單播地址臨時標記為待發(fā)送地址。
4.如權利要求1所述的共享存儲交換結構中基于滑動窗口的高 效組播轉發(fā)方法,其特征在于在步驟(3)中,對于第二種情況, 如果各個端口地址隊列中已有其它組播信元地址被標記為待發(fā)送地 址,則比較已標記的地址和即將標記地址距前沿的位置,距前沿較近 的被置為待發(fā)送地址,距前沿較遠的如果已被置為待發(fā)送地址,就擦 去這個標志;若先前已標記為待發(fā)送的信元為單播信元,則讓位于這 個組播信元地址。
全文摘要
本發(fā)明屬于以太網(wǎng)交換機系統(tǒng)的前端交換技術,具體涉及一種共享存儲交換結構中基于滑動窗口的高效組播轉發(fā)方法。該方法采用輸出滑動窗口的優(yōu)化方式不再使用嚴格的FIFO式的信元轉發(fā),而是在一定的范圍(窗口寬度)內(nèi)選取合適的信元進行轉發(fā)。這種轉發(fā)方式顯著降低了組播信元的轉發(fā)跨度,從而降低了組播信元在共享存儲區(qū)中的逗留時間。它的兩個最直接的優(yōu)點在于提高了組播信元在各個目的端口轉發(fā)的同步程度以及降低了對共享存儲空間的消耗。模擬結果顯示,選擇適當?shù)拇翱趯挾瓤梢杂行岣呦到y(tǒng)在上述兩個方面的性能,但是過度地加大窗口的寬度并不能無限提高系統(tǒng)的性能反而加大了計算復雜性。
文檔編號H04L12/56GK101188556SQ20071016401
公開日2008年5月28日 申請日期2007年10月16日 優(yōu)先權日2007年10月16日
發(fā)明者余少華, 洋 汪 申請人:武漢烽火網(wǎng)絡有限責任公司