專利名稱:一種實現(xiàn)變長分組包交換的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域的交換技術(shù),更確切地說是涉及一種實現(xiàn)變長分組包交換的方法及系統(tǒng)。
背景技術(shù):
目前,網(wǎng)絡(luò)業(yè)務(wù)流量的快速增長、對IP QoS要求的提高、光傳輸技術(shù)的逐步完善等因素,使得業(yè)界對網(wǎng)絡(luò)路由器/交換機的性能要求不斷提高,比如,通常要求路由器/交換機具有大的交換容量,并要求其具有短的交換時延等。
當(dāng)前的大容量交換系統(tǒng)通常基于信元(cell-based)實現(xiàn),具體是在變長分組包進行交換之前,先將該分組包(packet)切分為定長的cell,在該packet所對應(yīng)的所有cell都通過交換結(jié)構(gòu)后,再在輸出端口將其重組為packet。該技術(shù)可以給路由器/交換機帶來很高的交換容量和吞吐率,比如,對于輸入緩存的crossbar單級交換結(jié)構(gòu),當(dāng)采用較高的內(nèi)部交換加速因子和優(yōu)良的交換調(diào)度算法時,可達(dá)到近T比特級(Tbps)的交換容量和100%的系統(tǒng)吞吐率。
就交換結(jié)構(gòu)而言,cell-based技術(shù)已經(jīng)發(fā)展得相當(dāng)完善,但從交換系統(tǒng)的角度來看,則該技術(shù)仍存在一些問題。這些問題具體如下首先,當(dāng)交換容量很大時,大部分要求采用集中式交換調(diào)度控制的交換結(jié)構(gòu)面臨的問題是調(diào)度處理的時間間隔很短。比如,cell的長度通常在40~80Byte,當(dāng)端口速率達(dá)到10Gbps或以上時,每次調(diào)度的周期將縮短至幾十nS。而對基于單個交換平面的交換系統(tǒng)來說,很短的調(diào)度處理時間會極大地限制諸如系統(tǒng)容量、調(diào)度算法之類的系統(tǒng)性能的提高。
其次,由于需要在交換系統(tǒng)的輸入端口對packet進行切分,在輸出端口對cell進行重組,因此導(dǎo)致交換系統(tǒng)的交換時延較大。特別是在輸出端口,必須等到屬于同一變長分組的所有cell都到達(dá)后才能重組出有效的分組,這不僅僅存在時延問題,而且對輸出端口的緩存及其管理都會帶來很大的壓力。另外,屬于同一變長分組的cell經(jīng)過不同的內(nèi)部交換路徑到達(dá)輸出端口,還會出現(xiàn)亂序的問題。
此外,在輸入端口將變長分組切分為多個cell的過程中,還存在n+1的問題。即假設(shè)cell的有效長度為nByte,如果packet的長度為(k×n+1)Byte,則需要(k+1)個cell來承載該packet,在比較極端的情況下,比如k=1,則即使packet的長度只多出1Byte,也需要再多使用一個cell。顯然這會降低系統(tǒng)的交換效率。
目前,為解決基于cell的交換系統(tǒng)所存在的問題,業(yè)界提出了對變長分組直接交換的處理方式。另外,為解決單個交換平面的交換容量有限且擴展容易受限的問題,業(yè)界提出了多平面的交換結(jié)構(gòu)。
多平面交換技術(shù)能有效地解決有限的緩存帶寬問題,并提高數(shù)據(jù)交換的速率。多平面交換技術(shù)能夠使交換緩存的運作速率小于數(shù)據(jù)交換平面入端口處的線速率在同樣數(shù)量的數(shù)據(jù)、以同樣的速率到達(dá)交換平面入端口的情況下,通過增加處理數(shù)據(jù)交換的平面?zhèn)€數(shù),可以降低每個交換平面的運作速率。增加交換平面的個數(shù)還可以增加交換容量。
具體來說,多平面交換的結(jié)構(gòu)如圖1所示,在具有N個入端口、K個交換平面的多平面交換中,入端口的分組包被分發(fā)器(de-multiplexer)分發(fā)到這K個交換平面上進行處理,這樣,每個交換平面的運作速率可以小于入端口的速率R,即每個交換平面的運作速率可以為r=SR/K,其中,S是交換平面內(nèi)的加速度。數(shù)據(jù)經(jīng)過交換后,來自不同交換平面的數(shù)據(jù)在輸出端口處匯聚,由復(fù)接器(multiplexer)將數(shù)據(jù)匯聚,且匯聚后的分組包的速率仍為R。
另外,多平面交換可以支持變長交換,因此可以解決前面所述定長切割時所存在的因需要分配較多cell而導(dǎo)致交換效率低下的問題。
顯然,在多平面交換系統(tǒng)中,人們希望分發(fā)器能夠?qū)?shù)據(jù)均勻地分發(fā)到不同的交換平面上,以確保每個交換平面的負(fù)載均衡。由于目前的多平面交換系統(tǒng)所處理的是定長的cell,因此要達(dá)到多個交換平面間的負(fù)載均衡相對比較容易實現(xiàn)。但通過不同交換平面到達(dá)輸出端口的cell會存在亂序的問題,使得輸出端口的變長分組包重組非常困難。而如果采用能夠保證屬于同一分組包的所有cell按順序到達(dá)輸出端口、且基于分組的交換調(diào)度算法,則各個交換平面間可能無法達(dá)到很好的負(fù)載均衡。該矛盾嚴(yán)重影響了多平面交換結(jié)構(gòu)的實際應(yīng)用。
目前,已有在多平面交換系統(tǒng)中設(shè)置集中式交換控制器來對多個交換平面進行交換調(diào)度,以保證分組包的順序的方案,但該方案針對的是定長分組包,并且該方案會增加實現(xiàn)的復(fù)雜度,并限制系統(tǒng)的可擴展性。
目前還提出了“虛擬入端口隊列并行分組交換(VIQPPS,Virtual inputQueue parallel Packet Switch)”結(jié)構(gòu),此結(jié)構(gòu)在輸出端口處采用虛擬入端口隊列(VIQ,Virtual input Queue)的結(jié)構(gòu)來處理來自不同交換平面的分組包,以保證分組包的順序。但這樣的結(jié)構(gòu)直接運用在變長分組包的交換中存在一定的困難。因為如果使用VIQ來存儲來自不同交換平面、且被切割成定長的變長分組包,則必須按照之前的輸出端口處的順序從各個交換平面提取出分組包,并發(fā)送到復(fù)接器。且順序的分組包被提取出來后不能直接傳送到輸出端口,而必須在緩存中停留,直到屬于同一個變長分組包的所有cell都到齊了,才能組成完整的變長分組包,之后才能發(fā)送到輸出端口。在該實現(xiàn)過程中,每一步實現(xiàn)起來都比較復(fù)雜,效率也比較低,而且會帶來較大的時延,并需要額外的緩存來存儲沒有及時發(fā)送到輸出端口的分組包。
由以上描述可知,目前的兩種處理方案都存在缺陷。這兩種方案雖然能夠保證各個分組包傳送的順序,但這兩種方案均不能保證各個交換平面的負(fù)載均衡,并且后一種處理方案還需要重新組合分組包。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的主要問題在于提供一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的方法,該方法在實現(xiàn)變長分組交換的同時,能夠保證各個交換平面的負(fù)載均衡,且不需要重新組合分組包。
本發(fā)明還提供了一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的系統(tǒng)。
為解決以上問題,本發(fā)明提供了以下技術(shù)方案本發(fā)明的一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的方法,分發(fā)器記錄每個交換平面的服務(wù)量,該方法進一步包括以下步驟a.輸入端口對收到的變長分組包進行邏輯分割;b.輸入端口的分發(fā)器在確定自身處于空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,從所有交換平面中選擇一個服務(wù)量最小的平面,并將該分組包全部發(fā)送到所選中的平面;c.交換平面將收到的分組包順序地傳送到相應(yīng)的輸出端口的復(fù)接器;d.復(fù)接器將自身收到的分組包發(fā)送到輸出端口。
所述步驟a為將分組包邏輯上分為定長的數(shù)據(jù)段,在該分組包的第一個邏輯數(shù)據(jù)段上增加頭head標(biāo)識,在最后一個邏輯數(shù)據(jù)段上增加尾tail標(biāo)識;步驟b中,所述分發(fā)器將分組包全部發(fā)送到所選中的平面為分發(fā)器順序地將分組包發(fā)送到所選中的平面,直至帶有tail標(biāo)識的數(shù)據(jù)段傳送完畢。
所述步驟b中,如果分發(fā)器確定自身處于忙狀態(tài),則繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,執(zhí)行步驟b中選擇平面及后續(xù)的步驟;如果分發(fā)器確定自身處于空閑狀態(tài)、且沒有變長分組包到達(dá)該輸入端口,則該分發(fā)器在確定有分組包到達(dá)后,再執(zhí)行步驟b中選擇平面及后續(xù)的步驟。
交換平面的入端口與分發(fā)器連接,出端口與復(fù)接器連接,交換平面通過圓盤提供一個以上的入端口和出端口,并通過指針選擇入端口和出端口;所述步驟c之前進一步包括交換平面在本平面的所有入端口和出端口中選擇用于在本平面中傳輸分組包的入端口和出端口,且所述選擇為如果當(dāng)前傳輸?shù)臄?shù)據(jù)中不存在含有tail標(biāo)識的數(shù)據(jù)段,則通過鎖定當(dāng)前使用的入端口和出端口來完成分組包的傳送;如果存在含有tail標(biāo)識的數(shù)據(jù)段,則指針通過按圓盤轉(zhuǎn)動選擇用于下一次傳輸?shù)娜攵丝诤统龆丝冢⑻^被鎖定的入端口和出端口。
所述步驟d包括所述復(fù)接器如果確定自身當(dāng)前處于空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中,則選擇已到達(dá)本復(fù)接器的數(shù)據(jù)段最多的變長分組包進行發(fā)送,或選擇各個變長分組包中已到達(dá)本復(fù)接器的數(shù)據(jù)段的長度之和l滿足公式l>L(K-1)/K、且最早到達(dá)本復(fù)接器的數(shù)據(jù)段進行發(fā)送,其中,L為變長分組包的總長度,K為系統(tǒng)中交換平面的總平面數(shù)。
所述步驟d中,如果復(fù)接器確定自身處于忙狀態(tài),則繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中后,執(zhí)行步驟d中發(fā)送分組包的步驟;如果復(fù)接器確定自身處于空閑狀態(tài)、且自身沒有緩存數(shù)據(jù)段,則該復(fù)接器在確定自身緩存了數(shù)據(jù)段后,再執(zhí)行步驟d中發(fā)送分組包的步驟。
所述分發(fā)器記錄的每個交換平面的服務(wù)量為該分發(fā)器所對應(yīng)的輸入端口接入的數(shù)據(jù)流在各個交換平面上的服務(wù)量,或者為該分發(fā)器所對應(yīng)的輸入端口與各個輸出端口之間的數(shù)據(jù)流在各個交換平面上的服務(wù)量。
該方法進一步包括設(shè)置交換平面服務(wù)量的門限及定值,所述分發(fā)器記錄每個交換平面的服務(wù)量進一步包括判斷所有交換平面的服務(wù)量中是否存在大于該門限值的服務(wù)量,如果有,則將所有服務(wù)量減去所設(shè)的定值。
所設(shè)的門限為最大累加器值減去變長分組包的最大長度。
所述分發(fā)器記錄每個交換平面的服務(wù)量進一步包括如果在減去定值后存在為負(fù)值的服務(wù)量,則為所有服務(wù)量加上所有負(fù)值中絕對值最大的值。
本發(fā)明的一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的系統(tǒng),該系統(tǒng)包括輸入端口、與輸入端口對應(yīng)的分發(fā)器、交換平面、輸出端口及與輸出端口對應(yīng)的復(fù)接器,其中輸入端口,用于對收到的變長分組包進行邏輯分割,將變長分組包發(fā)送到對應(yīng)的分發(fā)器;與輸入端口對應(yīng)的分發(fā)器,用于記錄每個交換平面的服務(wù)量,以及在確定當(dāng)前無數(shù)據(jù)傳輸、且有變長分組包到達(dá)輸入端口后,從所有交換平面中選擇一個服務(wù)量最小的平面,并將輸入端口發(fā)送來的分組包全部發(fā)送到所選中的平面;交換平面,用于將收到的分組包順序地傳送到相應(yīng)的輸出端口對應(yīng)的復(fù)接器;與輸出端口對應(yīng)的復(fù)接器,用于將自身收到的分組包發(fā)送到輸出端口。
所述輸入端口對收到的變長分組包進行邏輯分割為將變長分組包邏輯分割為定長的數(shù)據(jù)段,且在該分組包的第一個邏輯數(shù)據(jù)段上增加head標(biāo)識,在最后一個邏輯數(shù)據(jù)段上增加tail標(biāo)識;所述與輸入端口對應(yīng)的分發(fā)器將分組包全部發(fā)送到所選中的平面為順序地將分組包發(fā)送到所選中的平面直至帶有tail標(biāo)識的數(shù)據(jù)段傳送完畢。
所述分發(fā)器進一步用于在確定自身處于忙狀態(tài)后,繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,以及在自身轉(zhuǎn)為空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,選擇服務(wù)量最小的平面并發(fā)送分組包;以及在確定自身處于空閑狀態(tài)、且沒有變長分組包到達(dá)該輸入端口后等待分組包,直至有分組包到達(dá)后,再選擇服務(wù)量最小的平面并發(fā)送分組包。
所述交換平面的入端口與分發(fā)器連接,出端口與復(fù)接器連接,交換平面通過圓盤提供一個以上的入端口和出端口,并通過指針選擇入端口和出端口;所述交換平面進一步用于在本平面的所有入端口和出端口中選擇用于在本平面中傳輸分組包的入端口和出端口,且所述選擇為如果當(dāng)前傳輸?shù)臄?shù)據(jù)中不存在含有tail標(biāo)識的數(shù)據(jù)段,則通過鎖定當(dāng)前使用的入端口和出端口來完成分組包的傳送;如果存在含有tail標(biāo)識的數(shù)據(jù)段,則指針通過按圓盤轉(zhuǎn)動選擇用于下一次傳輸?shù)娜攵丝诤统龆丝?,并跳過被鎖定的入端口和出端口。
所述復(fù)接器進一步用于在確定自身當(dāng)前處于空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器后,選擇已到達(dá)本復(fù)接器的數(shù)據(jù)段最多的變長分組包進行發(fā)送,或選擇各個變長分組包中已到達(dá)本復(fù)接器的數(shù)據(jù)段的長度之和l滿足公式l>L(K-1)/K、且最早到達(dá)本復(fù)接器的數(shù)據(jù)段進行發(fā)送,其中,L為變長分組包的總長度,K為系統(tǒng)中交換平面的總平面數(shù)。
所述復(fù)接器進一步用于在確定自身處于忙狀態(tài)后,繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中后,選擇變長分組包進行發(fā)送;以及在確定自身處于空閑狀態(tài)、且自身沒有緩存數(shù)據(jù)段后,等待數(shù)據(jù)段,在確定自身緩存了數(shù)據(jù)段之后,選擇變長分組包進行發(fā)送。
本發(fā)明方案通過分發(fā)器記錄交換平面的服務(wù)量,由輸入端口對收到的變長分組包進行邏輯分割,并將每個變長分組包全部在一個平面上傳輸,使得變長分組包能夠較為均衡地在各個交換平面上傳輸,且復(fù)接器不需要重新組合分組包,提高了交換效率。
本發(fā)明所采用的交換算法使得交換分組包能夠在一個交換平面上傳送,且不會被其他變長分組包打擾。
本發(fā)明方案通過對復(fù)接器進行設(shè)置,即設(shè)置其在有一定長度的分組包到達(dá)后,再將數(shù)據(jù)段傳輸?shù)较鄳?yīng)的輸出端口,從而使得復(fù)接器在傳送變長分組包的過程中不過多地等待,甚至可以不需要等待。
本發(fā)明中的分發(fā)器做出分發(fā)判斷所需的參數(shù)均來自本分發(fā)器,無需交換平面反饋信息,從而簡化了控制參數(shù)的傳遞。且本發(fā)明中的分發(fā)器僅涉及累加和比較運算,硬件實現(xiàn)代價較低。
本發(fā)明中的復(fù)接器做出判斷所需的參數(shù)來自變長分組的頭分組和本地記錄的各個分組已到達(dá)的長度,因此復(fù)接器算法的實現(xiàn)也很簡單。
圖1為目前多平面交換系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明的實現(xiàn)流程圖;圖3為本發(fā)明中對變長分組包邏輯分割的示意圖;圖4為本發(fā)明中分發(fā)器根據(jù)不同情況進行數(shù)據(jù)傳輸處理的示意圖;圖5為本發(fā)明中復(fù)接器根據(jù)不同情況進行數(shù)據(jù)傳輸處理的示意圖;圖6為交換平面中入端口和出端口的示意圖。
具體實施例方式
下面結(jié)合附圖及具體實施例對本發(fā)明方案作進一步詳細(xì)的描述。
如圖2所示,本發(fā)明方案的處理包括以下幾個步驟步驟201、輸入端口對收到的變長分組進行邏輯分割。
具體來說,當(dāng)分組包到達(dá)交換系統(tǒng)的輸入端口時,對該分組包并不進行物理上的切割,而是在邏輯上將分組包分割成定長的數(shù)據(jù)段,即定長的cell,并為該分組包的第一個邏輯cell打上“head”標(biāo)識,為該分組包的最后一個邏輯cell打上尾部標(biāo)識“tail”標(biāo)示。分割后的變長分組包如圖3所示,圖3中包括了多個變長分組包,且右邊第一個cell標(biāo)有“head”,第四個cell標(biāo)有“tail”,以標(biāo)識一個變長分組包,后面則為其它變長分組包。
在傳輸時,則需要將屬于同一變長分組、且定長的數(shù)據(jù)段cell在一個交換平面上順序傳送,中間不傳送其它變長分組的數(shù)據(jù)段,因此傳送的和出端口收到的分組包都是完整的分組包,從而可以避免組合分組包的操作。
步驟202、輸入端口的分發(fā)器在確定自身處于空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,從所有平面中選擇一個服務(wù)量最小的平面,并將該分組包全部發(fā)送到所選中的平面。
基于輸入端口的邏輯分割,分發(fā)器可以背靠背地將分組包發(fā)送到該平面,直至帶有“tail”標(biāo)識的數(shù)據(jù)段傳送完畢。
分發(fā)器在每次發(fā)送分組包到交換平面上時,都需要記錄該平面的服務(wù)量。即在當(dāng)前服務(wù)量的基礎(chǔ)上再加上當(dāng)前需要發(fā)送的分組包的服務(wù)量。
步驟203、交換平面將收到的分組包順序地傳送到該分組包所對應(yīng)的輸出端口的復(fù)接器。
步驟204、復(fù)接器將自身收到的分組包發(fā)送到輸出端口。
通過上述步驟即可實現(xiàn)分組包在多交換平面中的傳輸。
基于上述處理可以看出,本發(fā)明的多平面交換系統(tǒng)雖然與圖1相同,仍包含輸入端口、與輸入端口對應(yīng)的分發(fā)器、交換平面、輸出端口及與輸出端口對應(yīng)的復(fù)接器,但各個部分的處理都與現(xiàn)有技術(shù)存在不同,也即各個部分的功能實現(xiàn)均與現(xiàn)有技術(shù)不同。
上述步驟202中,需要確定輸入端口的分發(fā)器當(dāng)前時間片是否處于空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口。實際上,分發(fā)器在當(dāng)前時間片還可能處于忙狀態(tài),或處于閑狀態(tài)、且沒有變長分組包到達(dá)的情況,對于前者,分發(fā)器對該輸入端口在當(dāng)前時間片繼續(xù)傳送某個變長分組包的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,進行相應(yīng)的處理;對于后者,分發(fā)器則保持空閑狀態(tài),并監(jiān)視是否有分組包到達(dá),且該分發(fā)器在確定有分組包到達(dá)后,再進行相應(yīng)的處理。分發(fā)器的處理流程如圖4所示。
為進一步描述本發(fā)明方案,在此先定義幾個概念kt表示第k個時間片。時間被分為長度為t的時間片,在每個時間片,分發(fā)器、每個交換平面和復(fù)接器都會進行相應(yīng)的處理。
flowi表示輸入端口i接收到、且要發(fā)送到輸出端口的數(shù)據(jù)流。
Si,p(kt)表示交換平面p在時刻kt從flowi得到的服務(wù)量。這個服務(wù)量記錄在輸入端口i的分發(fā)器i處。Si,p(0)的初始值被設(shè)置為0,隨著時間的推移,Si,p(kt)根據(jù)所發(fā)往到平面p的數(shù)據(jù)段的數(shù)目來增加。
基于上述所定義的概念,下面對步驟202的處理進行具體描述。
分發(fā)器i當(dāng)前處于空閑狀態(tài),且發(fā)現(xiàn)數(shù)據(jù)流flowi中的變長分組包到達(dá)了輸入端口i,則該分發(fā)器i在自身所存儲的服務(wù)量集合(Si,0(kt),Si,1(kt),......Si,pmax(kt))中尋找具有最小服務(wù)量值的平面,并將該變長分組包發(fā)送到該平面。其中,pmax為交換平面的個數(shù),假設(shè)平面p1在時刻kt具有最小的服務(wù)量值Si,p1(kt),則分發(fā)器i將到達(dá)輸入端口i、且長度為L的變長分組包的數(shù)據(jù)段背靠背地發(fā)送到該選中的平面,直至標(biāo)有“tail”的數(shù)據(jù)段傳送完畢。并且分發(fā)器i可以在傳送該變長分組包的第一個數(shù)據(jù)段時,即將自身記錄的Si,p1(kt)增加到(Si,p1(kt)+L)。
另外,由于Si,p1(kt)為一累加值,在工作過程中總是不斷增加的,因此具體實現(xiàn)具有上述功能的分發(fā)器時,考慮有限長度的累加器,可執(zhí)行如下處理如果某個Si,p(kt)的數(shù)值超過預(yù)先設(shè)置的門限值Smax,其中,該門限可設(shè)置為最大累加器值減去變長分組包的最大長度,則將集合(Si,0(kt),Si,1(kt)......Si,pmax(kt))中的所有服務(wù)量減去一個預(yù)先設(shè)置的定值Shold,若集合中有某個或某幾個服務(wù)量在減去Shold后出現(xiàn)負(fù)值,則將這些值為負(fù)數(shù)的服務(wù)量重新置為0。由于正常工作中多個交換平面的負(fù)載是動態(tài)平衡的,這意味著(Si,j,0(kt),Si,j,1(kt)......Si,j,pmax(kt))間的偏差不是很大,因此若合理選取服務(wù)量累加器的最大長度和Shold的大小,則各個服務(wù)量均減去Shold后出現(xiàn)多個負(fù)值的概率很小,對上述負(fù)載均衡算法的性能不會產(chǎn)生很大影響。當(dāng)然,為使各個交換平面的服務(wù)量能夠進一步地均衡,則可以在出現(xiàn)某個或某幾個負(fù)值的服務(wù)量時,為本分發(fā)器中的所有服務(wù)量加上這些負(fù)值中絕對值最大的量值。
上述在分發(fā)器端只針對輸入端口記錄各個交換平面的服務(wù)量,為進一步確保各交換平面的均衡,還可以進一步針對輸出端口記錄各個交換平面的服務(wù)量,即通過Si,j,p(kt)表示交換平面p在時刻kt從flowi,j得到的服務(wù)量,其中,flowi,j表示從輸入端口i到輸出端口j的數(shù)據(jù)流。這樣,則分發(fā)器記錄的是輸入端口i與輸出端口j之間的數(shù)據(jù)流分配在各個交換平面上傳輸?shù)臄?shù)據(jù)量。后續(xù)的處理則與前面相同,只不過分發(fā)器在獲取服務(wù)量時,需要同時根據(jù)輸入端口和輸出端口進行查找。
上述處理均只針對分發(fā)器,本發(fā)明方案為提高出端口的復(fù)接器的效率,減少等待時間,還針對復(fù)接器提出了相應(yīng)的處理方案。比如,如果復(fù)接器確定自身當(dāng)前處于空閑狀態(tài)、且已有cell緩存在本復(fù)接器中,則選擇已到達(dá)本復(fù)接器的變長分組包長度最長的cell進行發(fā)送。復(fù)接器還可能確定自身當(dāng)前處于忙狀態(tài),則繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中后,再執(zhí)行相應(yīng)的處理;如果復(fù)接器確定自身處于空閑狀態(tài)、且自身沒有緩存數(shù)據(jù)段,則該復(fù)接器在確定自身緩存了數(shù)據(jù)段后,再執(zhí)行相應(yīng)的處理。復(fù)接器的處理如圖5所示。
當(dāng)然,為進一步提高復(fù)接器的效率,還可以執(zhí)行以下處理。
為便于描述,首先提出候選平面的概念。候選平面的定義為在復(fù)接器端,來自平面p且長度為L的變長分組包要競爭出端口,如果此變長分組包已經(jīng)有長度為l的數(shù)據(jù)段到達(dá)了復(fù)接器,且l>L(K-1)/K,那么此平面就是競爭該出端口的候選平面之一。其中,該公式可由(L-l)/(R/K)=L/R推導(dǎo)得到,且變長分組包的長度L可以從分組包的頭分組中獲得,復(fù)接器中會記錄已到達(dá)本復(fù)接器的cell的長度l,K為交換平面的個數(shù),復(fù)接器可以獲知。另外,為簡化計算,還可以將(K-1)/K歸結(jié)為一個特定的常數(shù)。
因此,在上述步驟204中,復(fù)接器如果確定自身在當(dāng)前時間片已傳送完一個變長分組包的所有數(shù)據(jù)段,且當(dāng)前已緩存了一些數(shù)據(jù)段,則復(fù)接器將優(yōu)先選擇候選平面中的分組包進行發(fā)送。進一步地,如果有一個以上的候選平面中的數(shù)據(jù)段到達(dá)了本復(fù)接器,則可以優(yōu)先發(fā)送最早到達(dá)本復(fù)接器緩存的數(shù)據(jù)段。
另外,由于一個交換平面通常具有多個入端口和出端口,比如,通常這些端口以轉(zhuǎn)盤形式存在,并且這些端口可以同時傳輸不同的分組包,如圖6所示。因此,在上述步驟203中,交換平面在接收分發(fā)器發(fā)送來的變長分組包時,需要選擇當(dāng)前使用的入端口和出端口。如果數(shù)據(jù)段中的標(biāo)識為“tail”,則輸入端口的轉(zhuǎn)盤指針a和輸出端口的轉(zhuǎn)盤指針g可以按照ISLIP算法進行更新,而如果為其它情況,則可以使用稱為PBILSIP的變長交換算法來確定。由于交換平面中的入端口和出端口可以采用相同的處理方案,因此這里僅以入端口為例進行詳細(xì)描述。
首先說明ISLIP算法。ISLIP算法是一種改進的輪詢算法,由一個2-D的輪轉(zhuǎn)仲裁器組成。信元在每個入端口和出端口由輪詢仲裁器進行調(diào)度。ISLIP在輪詢算法的基礎(chǔ)上進行了改進,以減少在輸出仲裁器中出現(xiàn)的同步現(xiàn)象。ISLIP具有最近剛建立的連接被置為最低優(yōu)先級、不會出現(xiàn)餓死現(xiàn)象以及在高負(fù)載情況下,各輸出端口都有著同樣的吞吐率的特點。
ISLIP算法在輸入輸出調(diào)度中采用固定的輪轉(zhuǎn)順序,具體包括三個步驟1、請求(Request)。每個入端口向其隊列中信元可能到達(dá)的出端口發(fā)送請求。
2、響應(yīng)(Grant)。交換平面中的輸出端收到請求后,從固定輪轉(zhuǎn)順序的優(yōu)先級列表中選擇當(dāng)前優(yōu)先級最高的出端口,并通知所有輸入端是否被響應(yīng)。
3、確認(rèn)(Accept)。輸入端收到響應(yīng)后,從固定輪轉(zhuǎn)順序表中選擇當(dāng)前優(yōu)先級指針?biāo)傅某龆丝?。并在固定輪轉(zhuǎn)順序表中將指向最高優(yōu)先級的指針pa增加1,以移到下一個地方。
下面再描述一下PBILSIP變長交換算法。該交換算法具體分為三步1、信元請求階段。對于所有沒有匹配,即沒有建立輸入-輸出對應(yīng)關(guān)系的輸入端口,如果該端口當(dāng)前有信元需要交換,則向?qū)?yīng)的輸出端口發(fā)送請求。
2、仲裁結(jié)果通告階段。對于沒有匹配的輸出端口,如果收到了請求信號,則移動其滑動窗口的指針,以找到下一個具有最高優(yōu)先級的仲裁端口,并將所找到的仲裁端口通告給對應(yīng)的輸入端口。
3、輸入端判決并發(fā)送信元階段。如果輸入端口收到通告,其也移動自己滑動窗口的指針,找到下一個具有最高優(yōu)先級的判決端口,將其作為接受端口完成一次匹配。
該PBISLIP交換算法可以通過迭代若干次完成整個算法。且對于該交換算法而言,迭代的次數(shù)可以少于ISLIP算法的迭代次數(shù)。最佳的迭代次數(shù)需要通過仿真來說明。
基于ISLIP交換算法和PBISLIP交換算法更新交換平面中入端口的轉(zhuǎn)盤指針a及出端口的轉(zhuǎn)盤指針g的方法如下1、一個端口的輸入隊列中,只要存在含有標(biāo)識“tail”的數(shù)據(jù)段,則指針通過按圓盤轉(zhuǎn)動進行更新,但跳過被鎖定的端口。
2、如果一個端口的輸入隊列中并不存在含有標(biāo)識“tail”的數(shù)據(jù)段,則該端口被鎖定不動,即繼續(xù)完成一個變長分組包的傳送。這些被匹配的端口稱為被鎖定的端口。
3、需要將圓盤上所有已經(jīng)匹配的端口號掩蓋(MASK)掉,也就是將已鎖定的端口號掩蓋掉。當(dāng)圓盤轉(zhuǎn)動時,指針將不會停留在已被MASK的端口號上。MASK的操作關(guān)鍵是消除了已被匹配的端口號再得到其他匹配的可能性。
以上所述僅為本發(fā)明方案的較佳實施例,并不用以限定本發(fā)明的保護范圍。
權(quán)利要求
1.一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的方法,其特征在于,分發(fā)器記錄每個交換平面的服務(wù)量,該方法進一步包括以下步驟a.輸入端口對收到的變長分組包進行邏輯分割;b.輸入端口的分發(fā)器在確定自身處于空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,從所有交換平面中選擇一個服務(wù)量最小的平面,并將該分組包全部發(fā)送到所選中的平面;c.交換平面將收到的分組包順序地傳送到相應(yīng)的輸出端口的復(fù)接器;d.復(fù)接器將自身收到的分組包發(fā)送到輸出端口。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟a為將分組包邏輯上分為定長的數(shù)據(jù)段,在該分組包的第一個邏輯數(shù)據(jù)段上增加頭head標(biāo)識,在最后一個邏輯數(shù)據(jù)段上增加尾tail標(biāo)識;所述步驟b中,所述分發(fā)器將分組包全部發(fā)送到所選中的平面具體為分發(fā)器順序?qū)⒎纸M包發(fā)送到所選中的平面,直至帶有tail標(biāo)識的數(shù)據(jù)段傳送完畢。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟b中,如果分發(fā)器確定自身處于忙狀態(tài),則繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,執(zhí)行步驟b中選擇平面及后續(xù)的步驟;如果分發(fā)器確定自身處于空閑狀態(tài)、且沒有變長分組包到達(dá)該輸入端口,則該分發(fā)器在確定有分組包到達(dá)后,再執(zhí)行步驟b中選擇平面及后續(xù)的步驟。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,交換平面的入端口與分發(fā)器連接,出端口與復(fù)接器連接,交換平面通過圓盤提供一個以上的入端口和出端口,并通過指針選擇入端口和出端口;所述步驟c之前進一步包括交換平面在本平面的所有入端口和出端口中選擇用于在本平面中傳輸分組包的入端口和出端口,且所述選擇為如果當(dāng)前傳輸?shù)臄?shù)據(jù)中不存在含有tail標(biāo)識的數(shù)據(jù)段,則通過鎖定當(dāng)前使用的入端口和出端口來完成分組包的傳送;如果存在含有tail標(biāo)識的數(shù)據(jù)段,則指針通過按圓盤轉(zhuǎn)動選擇用于下一次傳輸?shù)娜攵丝诤统龆丝?,并跳過被鎖定的入端口和出端口。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟d包括所述復(fù)接器如果確定自身當(dāng)前處于空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中,則選擇已到達(dá)本復(fù)接器的數(shù)據(jù)段最多的變長分組包進行發(fā)送,或選擇各個變長分組包中已到達(dá)本復(fù)接器的數(shù)據(jù)段的長度之和l滿足公式l>L(K-1)/K、且最早到達(dá)本復(fù)接器的數(shù)據(jù)段進行發(fā)送,其中,L為變長分組包的總長度,K為系統(tǒng)中交換平面的總平面數(shù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于所述步驟d中,如果復(fù)接器確定自身處于忙狀態(tài),則繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中后,執(zhí)行步驟d中發(fā)送分組包的步驟;如果復(fù)接器確定自身處于空閑狀態(tài)、且自身沒有緩存數(shù)據(jù)段,則該復(fù)接器在確定自身緩存了數(shù)據(jù)段后,再執(zhí)行步驟d中發(fā)送分組包的步驟。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述分發(fā)器記錄的每個交換平面的服務(wù)量為該分發(fā)器所對應(yīng)的輸入端口接入的數(shù)據(jù)流在各個交換平面上的服務(wù)量,或者為該分發(fā)器所對應(yīng)的輸入端口與各個輸出端口之間的數(shù)據(jù)流在各個交換平面上的服務(wù)量。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,該方法進一步包括設(shè)置交換平面服務(wù)量的門限及定值,所述分發(fā)器記錄每個交換平面的服務(wù)量進一步包括判斷所有交換平面的服務(wù)量中是否存在大于該門限值的服務(wù)量,如果有,則將所有服務(wù)量減去所設(shè)的定值。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所設(shè)的門限為最大累加器值減去變長分組包的最大長度。
10.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述分發(fā)器記錄每個交換平面的服務(wù)量進一步包括如果在減去定值后存在為負(fù)值的服務(wù)量,則為所有服務(wù)量加上所有負(fù)值中絕對值最大的值。
11.一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的系統(tǒng),其特征在于,該系統(tǒng)包括輸入端口、與輸入端口對應(yīng)的分發(fā)器、交換平面、輸出端口及與輸出端口對應(yīng)的復(fù)接器,其中輸入端口,用于對收到的變長分組包進行邏輯分割,將變長分組包發(fā)送到對應(yīng)的分發(fā)器;與輸入端口對應(yīng)的分發(fā)器,用于記錄每個交換平面的服務(wù)量,以及在確定當(dāng)前無數(shù)據(jù)傳輸、且有變長分組包到達(dá)輸入端口后,從所有交換平面中選擇一個服務(wù)量最小的平面,并將輸入端口發(fā)送來的分組包全部發(fā)送到所選中的平面;交換平面,用于將收到的分組包順序地傳送到相應(yīng)的輸出端口對應(yīng)的復(fù)接器;與輸出端口對應(yīng)的復(fù)接器,用于將自身收到的分組包發(fā)送到輸出端口。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述輸入端口對收到的變長分組包進行邏輯分割為將變長分組包邏輯分割為定長的數(shù)據(jù)段,且在該分組包的第一個邏輯數(shù)據(jù)段上增加head標(biāo)識,在最后一個邏輯數(shù)據(jù)段上增加tail標(biāo)識;所述與輸入端口對應(yīng)的分發(fā)器將分組包全部發(fā)送到所選中的平面為順序地將分組包發(fā)送到所選中的平面直至帶有tail標(biāo)識的數(shù)據(jù)段傳送完畢。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述分發(fā)器進一步用于在確定自身處于忙狀態(tài)后,繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,以及在自身轉(zhuǎn)為空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,選擇服務(wù)量最小的平面并發(fā)送分組包;以及在確定自身處于空閑狀態(tài)、且沒有變長分組包到達(dá)該輸入端口后等待分組包,直至有分組包到達(dá)后,再選擇服務(wù)量最小的平面并發(fā)送分組包。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述交換平面的入端口與分發(fā)器連接,出端口與復(fù)接器連接,交換平面通過圓盤提供一個以上的入端口和出端口,并通過指針選擇入端口和出端口;所述交換平面進一步用于在本平面的所有入端口和出端口中選擇用于在本平面中傳輸分組包的入端口和出端口,且所述選擇為如果當(dāng)前傳輸?shù)臄?shù)據(jù)中不存在含有tail標(biāo)識的數(shù)據(jù)段,則通過鎖定當(dāng)前使用的入端口和出端口來完成分組包的傳送;如果存在含有tail標(biāo)識的數(shù)據(jù)段,則指針通過按圓盤轉(zhuǎn)動選擇用于下一次傳輸?shù)娜攵丝诤统龆丝?,并跳過被鎖定的入端口和出端口。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,所述復(fù)接器進一步用于在確定自身當(dāng)前處于空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器后,選擇已到達(dá)本復(fù)接器的數(shù)據(jù)段最多的變長分組包進行發(fā)送,或選擇各個變長分組包中已到達(dá)本復(fù)接器的數(shù)據(jù)段的長度之和l滿足公式l>L(K-1)/K、且最早到達(dá)本復(fù)接器的數(shù)據(jù)段進行發(fā)送,其中,L為變長分組包的總長度,K為系統(tǒng)中交換平面的總平面數(shù)。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其特征在于,所述復(fù)接器進一步用于在確定自身處于忙狀態(tài)后,繼續(xù)傳送當(dāng)前的數(shù)據(jù)段,并在自身轉(zhuǎn)為空閑狀態(tài),且已有數(shù)據(jù)段緩存在本復(fù)接器中后,選擇變長分組包進行發(fā)送;以及在確定自身處于空閑狀態(tài)、且自身沒有緩存數(shù)據(jù)段后,等待數(shù)據(jù)段,在確定自身緩存了數(shù)據(jù)段之后,選擇變長分組包進行發(fā)送。
全文摘要
本發(fā)明公開了一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的方法,該方法中需要分發(fā)器記錄每個交換平面的服務(wù)量,該方法進一步包括a.輸入端口對收到的變長分組包進行邏輯分割;b.輸入端口的分發(fā)器在確定自身處于空閑狀態(tài)、且有變長分組包到達(dá)該輸入端口后,從所有交換平面中選擇一個服務(wù)量最小的平面,并將該分組包全部發(fā)送到所選中的平面;c.交換平面將收到的分組包順序地傳送到相應(yīng)的輸出端口的復(fù)接器;d.復(fù)接器將自身收到的分組包發(fā)送到輸出端口。本發(fā)明同時還公開了一種實現(xiàn)多平面交換系統(tǒng)中變長分組包交換的系統(tǒng)。本發(fā)明方案實現(xiàn)了變長分組包能夠較為均衡地在各個交換平面上傳輸,且復(fù)接器不需要重新組合分組包,提高了交換效率。
文檔編號H04L12/56GK1878132SQ20051011839
公開日2006年12月13日 申請日期2005年10月31日 優(yōu)先權(quán)日2005年10月31日
發(fā)明者許都, 洪峰, 鐘海珊 申請人:華為技術(shù)有限公司, 電子科技大學(xué)