專利名稱:用于閉環(huán)、帶外背壓機(jī)制的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信網(wǎng)絡(luò),并且特別涉及用于交換機(jī)/路由器系統(tǒng)的閉環(huán)背壓機(jī)制。
背景技術(shù):
通信速度的當(dāng)前需求和現(xiàn)代數(shù)據(jù)網(wǎng)絡(luò)的容量需要較高性能的網(wǎng)絡(luò)結(jié)構(gòu),該結(jié)構(gòu)是高度可升級的,并且能夠有效地處理大量多播和單播業(yè)務(wù)。期望這些網(wǎng)絡(luò)支持多媒體應(yīng)用并能夠動態(tài)地重新配置,以便保證針對約定的服務(wù)質(zhì)量(QoS)的預(yù)定帶寬量。例如集成的語音、視頻和數(shù)據(jù)應(yīng)用的新興服務(wù),增大了這樣的需求網(wǎng)絡(luò)提供商基于用戶在特定時間的特定需求,對每個用戶保證某個可變的QoS。該需求只能通過逐步將新的硬件和軟件開發(fā)集成到網(wǎng)絡(luò)中來達(dá)到,所述開發(fā)用于處理隨著網(wǎng)絡(luò)發(fā)展和客戶要求新服務(wù)進(jìn)展而出現(xiàn)的特定問題。
通信應(yīng)用的不斷增長的種類需要節(jié)點(diǎn)結(jié)構(gòu)使用廣泛選擇的線路和交換板設(shè)計(jì),其能夠?qū)崿F(xiàn)靈活的高性能的數(shù)字、模擬或混合的交換系統(tǒng)。當(dāng)接收端口不能按照向其傳送信息的速度消化該信息時或者當(dāng)業(yè)務(wù)的優(yōu)先權(quán)改變時,就出現(xiàn)了問題。當(dāng)積聚在交換機(jī)或路由器中的交叉點(diǎn)處的數(shù)據(jù)量超過數(shù)據(jù)存儲的容量時,數(shù)據(jù)被丟棄,因而迫使目的地端口請求數(shù)據(jù)重新傳輸。處理所述擁塞問題的解決方案是通過在每個可能的交叉點(diǎn)提供足夠的數(shù)據(jù)存儲,使用“強(qiáng)力攻擊(brute-force)”的方法。然而,該方案相當(dāng)昂貴,還需要構(gòu)成所述網(wǎng)絡(luò)交換機(jī)和/或路由器的板上的額外不動產(chǎn)(real-estate)容量。
常見的是向數(shù)據(jù)源預(yù)分配接收機(jī)的緩沖器信用,并通知相應(yīng)的發(fā)送器能夠發(fā)送多少數(shù)據(jù)。根據(jù)在外出端口(egress port)或者在節(jié)點(diǎn)內(nèi)部檢測到擁塞,所述接收機(jī)扣留緩沖器信用,迫使相應(yīng)的發(fā)送器降低發(fā)送分組的速度,或者完全停止傳送。該過程被稱為“背壓(backpressure)”擁塞控制。通常,背壓機(jī)制提供了交換機(jī)/路由器的外出和進(jìn)入線路卡之間的通信,力圖最小化數(shù)據(jù)丟失、線頭阻塞和時延。通過有效管理所述交換結(jié)構(gòu)(switch fabric)和外出線路卡處的擁塞級別,以及通過向所述進(jìn)入線路卡及時地傳播所述信息,達(dá)到了背壓擁塞控制。該通信通常通過所述交換結(jié)構(gòu)卡(帶內(nèi))來承載。
帶內(nèi)背壓機(jī)制假設(shè)所述背壓路徑的所有元件能夠支持該機(jī)制。然而,許多當(dāng)前的交換結(jié)構(gòu)實(shí)現(xiàn)不支持任何種類的帶內(nèi)背壓機(jī)制。在這些情況下,當(dāng)需要升級交換機(jī)/路由器以實(shí)現(xiàn)具有QoS保證的新應(yīng)用時,需要使用能夠提供相同能力的可選解決方案,而不是替換整個交換機(jī)/路由器。
發(fā)明內(nèi)容
本發(fā)明的目的是提供閉環(huán)背壓機(jī)制,該機(jī)制能夠完全地或部分地減輕現(xiàn)有技術(shù)擁塞控制機(jī)制的缺點(diǎn)。
因此,本發(fā)明為通信節(jié)點(diǎn)提供了背壓機(jī)制,所述節(jié)點(diǎn)沿著數(shù)據(jù)路徑傳送協(xié)議數(shù)據(jù)單元(PDU),所述數(shù)據(jù)路徑是通過交換結(jié)構(gòu)(SF)外出端口,在進(jìn)入端口(ingress port)和外出端口之間被建立的。該背壓機(jī)制包括背壓總線,用來在所述進(jìn)入端口和外出端口之間建立帶外雙向連接;還包括外出邏輯,用來估計(jì)表征沿所述數(shù)據(jù)路徑的擁塞特性的擁塞狀態(tài)指令;還包括進(jìn)入邏輯,用來基于所述擁塞狀態(tài)指令,控制沿所述數(shù)據(jù)路徑的PDU的傳輸,其中,所述外出邏輯通過所述背壓總線向所述進(jìn)入邏輯傳送所述擁塞狀態(tài)指示符,而該進(jìn)入邏輯通過所述背壓總線向該外出邏輯傳送業(yè)務(wù)統(tǒng)計(jì)。
本發(fā)明還涉及用于帶外背壓總線的幀,用來提供沿著通過通信節(jié)點(diǎn)的交換結(jié)構(gòu)(SF)外出端口、在進(jìn)入端口和外出端口之間所建立的數(shù)據(jù)路徑的閉環(huán),該幀包括用來承載擁塞狀態(tài)指令的外出端口時隙Tbe,該擁塞狀態(tài)指令針對數(shù)據(jù)更新間隔Td提供數(shù)據(jù)路徑的擁塞狀態(tài);以及用來承載PDU的計(jì)數(shù)的進(jìn)入端口時隙Tbi,該P(yáng)DU是在數(shù)據(jù)更新間隔Td期間被傳送到SF外出端口的。
本發(fā)明還涉及用于改善沿?cái)?shù)據(jù)路徑的業(yè)務(wù)吞吐量的方法,所述數(shù)據(jù)路徑是通過交換結(jié)構(gòu)(SF)外出端口,在進(jìn)入端口和外出端口之間的通信節(jié)點(diǎn)處被建立的。該方法包括(a)估計(jì)表征沿所述數(shù)據(jù)路徑的擁塞特性的擁塞狀態(tài)指令;(b)利用背壓總線,在進(jìn)入端口和外出端口之間建立帶外雙向連接;(c)通過所述背壓總線,向進(jìn)入端口傳送所述擁塞狀態(tài)指示符,并通過該背壓總線向外出端口傳送業(yè)務(wù)統(tǒng)計(jì);和(d)基于所述擁塞狀態(tài)指令,控制沿所述數(shù)據(jù)路徑的PDU傳輸。
本發(fā)明的機(jī)制尤其適合需要實(shí)時發(fā)送和交換數(shù)字化數(shù)據(jù)信元的通信系統(tǒng)。
有利地,根據(jù)本發(fā)明的閉環(huán)背壓機(jī)制,不需要用復(fù)雜昂貴的、支持QoS保證的交換結(jié)構(gòu)卡來替換現(xiàn)有交換機(jī)/路由器上的交換結(jié)構(gòu)卡。也就是說,根據(jù)本發(fā)明的機(jī)制即使在所述交換結(jié)構(gòu)卡不能提供時也能夠提供服務(wù)區(qū)分;這能被簡單地實(shí)現(xiàn),而不需要替換所述交換結(jié)構(gòu)卡。這就延長了交換機(jī)/路由器的使用期,使網(wǎng)絡(luò)提供商能夠通過對現(xiàn)有設(shè)備的較小投資獲得更多的收入。
建造新系統(tǒng)時也應(yīng)用了類似的考慮。這樣,不必使用/設(shè)計(jì)昂貴而復(fù)雜的新交換結(jié)構(gòu)卡來向用戶提供更多的QoS性能,所述系統(tǒng)能夠使用簡單且不昂貴的現(xiàn)有交換結(jié)構(gòu)卡,并通過實(shí)現(xiàn)本發(fā)明的機(jī)制,仍能達(dá)到約定的QoS性能保證。
結(jié)合附圖,根據(jù)下面對優(yōu)選實(shí)施例的更詳細(xì)描述,本發(fā)明的前述和其它目的、特征和優(yōu)點(diǎn)將是顯而易見的,其中圖1是示出了帶外背壓機(jī)制的結(jié)構(gòu)的框圖;圖2是根據(jù)本發(fā)明的一個實(shí)施例的背壓機(jī)制的框圖;和圖3示出了背壓總線和特定節(jié)點(diǎn)配置的關(guān)聯(lián)邏輯的實(shí)現(xiàn)。
具體實(shí)施例方式
交換結(jié)構(gòu)的擁塞導(dǎo)致了較大的時延、分組丟失和阻塞。假設(shè)不存在針對所述外出或者交換結(jié)構(gòu)數(shù)據(jù)路徑的帶內(nèi)機(jī)制,以在合理的時間幀內(nèi)對所述進(jìn)入數(shù)據(jù)路徑指出擁塞狀態(tài),帶外背壓機(jī)制成為處理擁塞的實(shí)際解決方案。本發(fā)明的背壓機(jī)制是利用背壓總線、基于外出和進(jìn)入線路卡之間的閉環(huán)、帶外通信的。本發(fā)明對于所述交換結(jié)構(gòu)不能保證所需QoS的節(jié)點(diǎn)尤其地有用。
圖1示出了所述帶外背壓機(jī)制的結(jié)構(gòu),所說明的節(jié)點(diǎn)具有進(jìn)入接口5、外出接口15以及接口5和15之間所連接的交換結(jié)構(gòu)(SF)卡10。每個進(jìn)入和外出接口包括表示為6-1、6-2、6-3、6-4和分別地16-1、16-2、16-3、16-4的多個線路卡。每個輸出卡6為每個外出端口維持邏輯隊(duì)列14(例如八個隊(duì)列代表八個QoS級別),該隊(duì)列將協(xié)議數(shù)據(jù)單元(PDU)發(fā)送到該外出端口,并具有相同的QoS保證。例如,對四個外出端口和八個QoS級別,外出卡16維持4×8=32個計(jì)數(shù)器。這些隊(duì)列在此被稱為“QoS隊(duì)列”或者“邏輯隊(duì)列”。所述交換結(jié)構(gòu)卡10也為每個交換結(jié)構(gòu)外出端口22維持外出隊(duì)列12,用來安排交換后接收自不同SF進(jìn)入端口的PDU。這些隊(duì)列在此被稱為“SF隊(duì)列”。所述PDU按照到達(dá)的順序被安排在隊(duì)列12、14中,并且如果隊(duì)列變的擁塞(所述緩沖器變滿),則該P(yáng)DU將被丟棄。
為了示出所述線路卡事實(shí)上具有多個端口,圖1所示的業(yè)務(wù)使用了雙線。圖1也以例子的方式示出了通過所述交換機(jī)/路由器的PDU的路由,下文稱之為“數(shù)據(jù)路徑”100。該例子中,在進(jìn)入卡6-2上的進(jìn)入端口21和外出卡16-1上的外出端口22之間建立了數(shù)據(jù)路徑100。這樣,進(jìn)入端口21從所述網(wǎng)絡(luò)中的源接收PDU,確定卡10上的SF外出端口23的地址,并向交換結(jié)構(gòu)10傳輸該P(yáng)DU。該交換結(jié)構(gòu)10向SF外出端口23發(fā)送所述PDU,其中該P(yáng)DU被置于所述SF隊(duì)列12內(nèi)。當(dāng)輪流到它時,該P(yáng)DU從SF外出端口23被傳輸?shù)娇?6-1,其中該P(yáng)DU基于其QoS,被置于外出端口22的適當(dāng)?shù)腝oS隊(duì)列14中。因此,當(dāng)輪流到它時,外出端口22將該P(yáng)DU傳輸?shù)剿鼍W(wǎng)絡(luò)內(nèi)的目的地。下面,所述數(shù)據(jù)(業(yè)務(wù))更新周期表示為Td。
圖1還用粗線示出了背壓總線20,其提供了所述進(jìn)入和外出線路卡之間的雙向通信。本發(fā)明的背壓機(jī)制針對改善的時延性能和有限的阻塞狀況,管理外出隊(duì)列的大小,通過提供控制PDU丟棄的進(jìn)入線路卡來減少過度的排隊(duì)。優(yōu)選地通過背板連接器(backplane connector),總線20與參與所述背壓機(jī)制的所有線路卡相連接。該結(jié)構(gòu)使本發(fā)明的交換機(jī)元件能夠使用在例如“閉環(huán)”ATM系統(tǒng)中,以最大化通過所述交換機(jī)的數(shù)據(jù)吞吐量,而不丟失信元。
為了總線容量的最佳使用,背壓總線20使用了TDM(時分復(fù)用)協(xié)議。TDM解決方案避免使用開銷比特,并避免使用相關(guān)的硬件和軟件來進(jìn)行開銷比特處理,也避免使用總線仲裁機(jī)制。此處所述背壓總線的更新周期表示為Tb。
在所述例子中,所有的進(jìn)入接口卡、外出接口卡和交換結(jié)構(gòu)卡通過總線20相互連接。應(yīng)當(dāng)指出,如后面所討論的,也可設(shè)想所述交換結(jié)構(gòu)沒有連接到總線20的變型。根據(jù)所提供的QoS提供的級別和哪個用戶能夠使用該服務(wù),也可以使少于全部的進(jìn)入和外出卡在所述總線上被連接。如上所述,圖1所說明的解決方案可以被用于這樣的節(jié)點(diǎn)由于其交換結(jié)構(gòu)使用了不能進(jìn)行QoS區(qū)分的、早期的或不昂貴的卡(板)變型,因而不能保證需要的服務(wù)質(zhì)量。
參與所述背壓機(jī)制的每個線路卡6、16在一個背壓幀Tb期間,從所述背壓總線20讀取或在該背壓總線上寫;在所述幀中的時隙被分配,以便當(dāng)一個卡在總線上寫時,其它卡能夠讀取。背壓總線幀格式和速度是專有的,并能針對分別的節(jié)點(diǎn)配置而被定制。背壓更新周期Tb的最大長度必須足夠短,以便外出端口能夠足夠快地對進(jìn)入端口施加背壓,以避免所述交換結(jié)構(gòu)外出緩沖器和外出卡緩沖器的溢出。
圖2示出了根據(jù)本發(fā)明的一個實(shí)施例的背壓機(jī)制的更詳細(xì)的框圖。它是通過SF外出端口23從輸入端口21被發(fā)送到輸出端口22的PDU的數(shù)據(jù)路徑100。圖2還示出了參與所述業(yè)務(wù)傳輸和背壓機(jī)制的進(jìn)入、外出和交換結(jié)構(gòu)卡上的單元,在此被稱為進(jìn)入邏輯6’、SF邏輯10’和分別的外出邏輯16’。
給每個進(jìn)入卡提供了進(jìn)入業(yè)務(wù)控制器25,其知道所有外出端口23的SF隊(duì)列12的擁塞狀態(tài),以及所有外出端口22的所有邏輯隊(duì)列14的擁塞狀態(tài),如狀態(tài)監(jiān)控器26的直觀顯示??刂破?5使用進(jìn)入數(shù)據(jù)路徑PDU傳輸機(jī)制,由此其從背壓總線20讀取指出隊(duì)列12和14的擁塞狀態(tài)的狀態(tài)比特,并相應(yīng)地更新由監(jiān)控器26維持的分別的狀態(tài)變量計(jì)數(shù)器。只要進(jìn)入端口22準(zhǔn)備好傳輸PDU,狀態(tài)監(jiān)控器26就檢查SF隊(duì)列12和該P(yáng)DU的外出隊(duì)列14的狀態(tài)。每個外出隊(duì)列12、14的狀態(tài)可以用一個比特來指出,例如對于“發(fā)送下一個PDU”消息使用邏輯“1”,并且對于“停止、隊(duì)列擁塞”消息使用邏輯“0”。因此根據(jù)該狀態(tài)信息,繼續(xù)或者停止所述PDU的傳輸。
進(jìn)入業(yè)務(wù)控制器25首先基于PDU地址,識別所述SF外出端口23和外出端口22。然后,控制器25在外出端口22處識別對應(yīng)將被發(fā)送的PDU的QoS的QoS隊(duì)列14,并基于該隊(duì)列的擁塞狀態(tài)變量來檢查分別的隊(duì)列14的狀態(tài)比特。如果隊(duì)列14的狀態(tài)比特指出分別的QoS隊(duì)列14不擁塞,則第二級比較檢查分別的SF隊(duì)列12的擁塞比特。如果兩個條件都滿足,則通過SF隊(duì)列12、SF外出端口23和外出隊(duì)列14,沿著從進(jìn)入端口21到外出端口22的數(shù)據(jù)路徑傳送所述PDU。如果這兩個隊(duì)列任何一個擁塞,則不能發(fā)送該P(yáng)DU,并且控制器25尋找下一個PDU,并按照類似的方法進(jìn)行。
進(jìn)入邏輯6’也使用進(jìn)入背壓總線使用機(jī)制,由此分別的進(jìn)入端口向外出端口傳送業(yè)務(wù)統(tǒng)計(jì),該業(yè)務(wù)統(tǒng)計(jì)用來計(jì)算隊(duì)列12、14的深度。所述統(tǒng)計(jì)在該例子中包括在先前的數(shù)據(jù)路徑更新周期Td期間,從進(jìn)入端口21向外出端口22發(fā)送的PDU的數(shù)量。在圖2的實(shí)施例中,對每一被發(fā)送的PDU,進(jìn)入邏輯6’寫入向其發(fā)送該P(yáng)DU的外出端口的唯一標(biāo)識,如所述目的地ID計(jì)數(shù)器27通常所示。該信息所需要的比特?cái)?shù)量取決于所述背壓系統(tǒng)中的現(xiàn)用端口的數(shù)量。保持這些統(tǒng)計(jì)的目的地ID計(jì)數(shù)器27在時間Td被復(fù)位。如果在上一個數(shù)據(jù)更新周期沒有發(fā)送PDU,則進(jìn)入端口寫零。
在總線20上廣播所述比特(業(yè)務(wù)統(tǒng)計(jì))。外出邏輯16’讀取該統(tǒng)計(jì),外出端口識別與其ID相匹配的比特,并使用該標(biāo)識來增加PDU計(jì)數(shù),其意味著PDU已經(jīng)由進(jìn)入端口按照其路徑被傳送。外出端口22的標(biāo)識符被記在計(jì)數(shù)器27中,直到下一次端口21在背壓總線20上進(jìn)行寫操作。實(shí)際上,由于在一個更新周期Td期間能發(fā)送最多兩個分組,因此針對每個進(jìn)入端口需要存儲最多兩個端口ID。
總而言之,進(jìn)入邏輯6’在分別的總線時隙內(nèi)向/從總線20寫和讀比特。每個進(jìn)入邏輯6’使用背壓總線20,以向外出邏輯16’傳送統(tǒng)計(jì)(為在先前的更新周期內(nèi)發(fā)送的每個分組,在總線上寫入目的地交換結(jié)構(gòu)外出端口/隊(duì)列ID),并從所述外出邏輯接收擁塞狀態(tài)指令(從總線讀取針對所有SF和QoS隊(duì)列的狀態(tài)比特)。
根據(jù)所述目的地地址,所述交換結(jié)構(gòu)邏輯10’接收所述PDU,并將其置于分別的SF隊(duì)列12中。如果該隊(duì)列已經(jīng)溢出,則所述交換機(jī)被阻塞并且所述PDU被丟棄,這導(dǎo)致了低質(zhì)量的傳輸。為了減少這種情況的發(fā)生,從所述外出卡16在總線20上控制隊(duì)列12的深度。
因此,外出邏輯16’知道由所述SF外出隊(duì)列12接收的PDU的總數(shù),在此用PDURxSF表示,還知道在上一個更新周期Td內(nèi)從分別的SF外出端口23所傳輸?shù)腜DU的數(shù)量,在此用PDUTxSF表示。SF隊(duì)列深度計(jì)數(shù)器31計(jì)算差值DSF=PDURxSF-PDUTxSF,并將其與所述SF外出隊(duì)列12的當(dāng)前深度相加,或者從該SF外出隊(duì)列12的當(dāng)前深度中減去,以通過與上一個更新周期內(nèi)的隊(duì)列相加或相減的PDU數(shù)量來更新隊(duì)列12的當(dāng)前深度。每個進(jìn)入卡的計(jì)數(shù)器31和交換結(jié)構(gòu)傳輸隊(duì)列12一樣多。
當(dāng)能夠在所述背壓總線上報(bào)告動作(即能在所述總線上寫)的進(jìn)入端口傳送了PDU時,通過只要從SF外出端口23接收了PDU就遞減所述隊(duì)列深度計(jì)數(shù)器31,來確定所述差值DSF=PDURxSF-PDUTxSF(隊(duì)列12的深度)。只要控制器30觀察到進(jìn)入端口21向所述交換結(jié)構(gòu)外出端口之一發(fā)送了PDU(當(dāng)其從總線上讀取了由所述進(jìn)入卡傳輸?shù)姆謩e的SF外出端口的ID),就遞增計(jì)數(shù)器31。
最好,外出業(yè)務(wù)控制器30知道每個QoS隊(duì)列14接收的PDU的總數(shù),在此表示為PDURx,還知道在上一個更新周期Td內(nèi)從分別的外出端口22所傳輸?shù)腜DU的數(shù)量,在此表示為PDURx。QoS隊(duì)列深度計(jì)數(shù)器32維持差值D=PDURx-PDUTx,并將其與所述外出隊(duì)列14的當(dāng)前深度相加,或者從該外出隊(duì)列14的當(dāng)前深度中減去,以通過與上一個更新周期內(nèi)的隊(duì)列相加或相減的PDU數(shù)量來更新隊(duì)列14的當(dāng)前深度。
當(dāng)PDU到達(dá)分別的外出卡端口時,通過遞增所述隊(duì)列深度計(jì)數(shù)器32,來確定差值D=PDURx-PDUTx(隊(duì)列14的深度)。當(dāng)所述PDU離開所述輸出端口隊(duì)列14時,遞減計(jì)數(shù)器32。另外,只要外出業(yè)務(wù)控制器30觀察到交換結(jié)構(gòu)外出端口不在使用中,就將計(jì)數(shù)器32復(fù)位為零。
圖2的實(shí)施例使用了兩個閾值,以確定任何兩個進(jìn)入/外出端口之間所建立的每個數(shù)據(jù)路徑的擁塞狀態(tài)指令。即,其針對隊(duì)列14使用下文稱為“QoS隊(duì)列擁塞閾值”的第一擁塞閾值,并且針對SF隊(duì)列12使用下文稱為“SF隊(duì)列擁塞閾值”的第二擁塞閾值。SF外出隊(duì)列擁塞狀態(tài)單元33通過比較所述SF擁塞閾值和分別的隊(duì)列的深度DSF,計(jì)算SF外出隊(duì)列的擁塞狀態(tài)。QoS隊(duì)列擁塞狀態(tài)單元34通過比較QoS閾值和分別的外出隊(duì)列的深度D,計(jì)算QoS隊(duì)列14的擁塞狀態(tài)。
每次PDU離開分別的隊(duì)列12時,控制器30基于深度DSF以分別的隊(duì)列的當(dāng)前狀態(tài)對擁塞狀態(tài)單元33進(jìn)行更新。類似地,每次PDU離開分別的隊(duì)列14時,控制器30基于深度D以分別的隊(duì)列的當(dāng)前狀態(tài)對擁塞狀態(tài)單元34進(jìn)行更新。
所述外出邏輯16’向所有進(jìn)入端口廣播所述狀態(tài)比特。所述進(jìn)入端口使用外出卡通過背壓總線20所發(fā)送的信號,來更新每個隊(duì)列12、14的狀態(tài)變量。然后,每次所述進(jìn)入卡發(fā)送PDU以確定沿?cái)?shù)據(jù)路徑100的分別的隊(duì)列是否擁塞時,就檢查分別的目的地端口的狀態(tài)值。
總而言之,所述外出邏輯16’在每個背壓總線周期Tb,更新或不更新隊(duì)列12和14的擁塞狀態(tài)比特,并在總線20上向所有的進(jìn)入端口廣播該擁塞狀態(tài)指令。在所述進(jìn)入卡,進(jìn)入邏輯6’接收所述隊(duì)列狀態(tài),并基于該狀態(tài)重新開始或者停止沿分別數(shù)據(jù)路徑的PDU的傳輸。同樣,所述外出邏輯16’在每個背壓總線周期Tb從所述進(jìn)入邏輯6’接收業(yè)務(wù)統(tǒng)計(jì)(從所述進(jìn)入端口傳輸?shù)腜DU的數(shù)量),并使用該統(tǒng)計(jì)來更新分別的隊(duì)列12、14的當(dāng)前深度。
所述背壓機(jī)制能夠通過或者不通過來自所述交換結(jié)構(gòu)卡10的擁塞指令來操作背壓;圖2示出的實(shí)施例中,所述交換結(jié)構(gòu)10發(fā)送指出SF外出隊(duì)列12中的擁塞狀態(tài)的比特。由于所述附加擁塞狀態(tài)數(shù)據(jù)被用于估計(jì)SF隊(duì)列的擁塞狀態(tài),所以僅所述外出邏輯16’使用所述比特。例如,交換結(jié)構(gòu)卡10在總線20上傳輸?shù)南⒖梢酝ㄖ獬鲞壿?6’是否超過了所述線頭(HOL)閾值。如果所述數(shù)據(jù)更新周期Td大大長于所述背壓總線更新周期Tb,則在多個總線更新周期內(nèi)不改變該消息。如果需要,所述比特也可以被用來檢查和調(diào)整在外出卡處計(jì)算的傳輸隊(duì)列深度的估計(jì)值。在某些情況下,一旦在超過所述HOL閾值時設(shè)置了狀態(tài)比特之一,該狀態(tài)比特可以在大大長于所述數(shù)據(jù)更新周期Td的周期內(nèi)保持不變。在該時間內(nèi),外出邏輯完全依賴于所述估計(jì)的隊(duì)列深度。
為了解決所述問題,所述外出邏輯可以使用另一個特性來調(diào)整所述隊(duì)列深度值。例如,外出邏輯16’能夠計(jì)算一個時間周期內(nèi)從所述交換結(jié)構(gòu)外出端口23接收的字節(jié)的數(shù)量,其取決于鏈路的速度。如果該數(shù)量為零,則假定隊(duì)列12為空。如果當(dāng)前隊(duì)列深度值不為零,則在該點(diǎn)將其復(fù)位為零。
圖3示出了針對特定交換機(jī)配置的所述背壓機(jī)制的實(shí)際實(shí)現(xiàn)的例子。所述線路卡6、16可以是語音(模擬)或/和數(shù)據(jù)卡,其在背板7上與所述背壓總線20相連接。語音卡僅向數(shù)據(jù)卡、交換機(jī)管理卡10或控制處理器卡傳送PDU;語音卡之間存在最少的通信或沒有通信。
在工作的例子中,所述配置包括八個數(shù)據(jù)卡和九個語音卡,所述數(shù)據(jù)卡具有到所述交換機(jī)管理卡10’的2x100M端口,所述語音卡具有到所述卡10’的1x100M端口。每個卡最多有四個端口。在所述實(shí)施例中,利用例如11、11’處所示的FPGA來實(shí)現(xiàn)所述背壓總線邏輯,該FPGA在每個線路卡上通過總線19、19’與網(wǎng)絡(luò)處理器13、13’相連接。在所述網(wǎng)絡(luò)處理器和所述背壓總線具有不同的互連規(guī)格時,使用所述FPGA來互連所述網(wǎng)絡(luò)處理器13、13’和背壓總線。所述背壓網(wǎng)絡(luò)處理器可以是例如IXP1200’并且所述總線19、19’可以是IX總線。所述網(wǎng)絡(luò)處理器13、13’為分別的卡的所有端口維持所述進(jìn)入和外出邏輯6、16’。
交換機(jī)管理卡10’在所述實(shí)施例中包括交叉設(shè)備(crossbar device)SF(例如SMC 48300)和四個SF-1設(shè)備(例如SMC 48310),其可以通過接口17向FPGA 18提供附加擁塞狀態(tài)數(shù)據(jù),該FGPA 18還在總線20上被連接。
圖3的插圖也以例子的方式示出了所述配置的背壓總線幀的格式。該幀包括下面描述的專用于由所述外出邏輯傳輸?shù)谋忍氐?98-比特字段1、專用于由所述進(jìn)入邏輯傳輸?shù)谋忍氐?90-比特字段2,以及專用于所述交換結(jié)構(gòu)的32-比特字段3。在該例子中,所述背壓幀的總長度是561比特,這就導(dǎo)致了52.91Mbps的總線速度。
外出端口字段1(Tbe)使所述外出邏輯能夠向所述進(jìn)入邏輯廣播狀態(tài)變量。每個外出數(shù)據(jù)卡在每個背壓幀Tb寫38個比特。這38個比特中的六個專用于兩個SF外出隊(duì)列12的擁塞狀態(tài)(每隊(duì)列3比特)。其余的32比特專用于更新外出端口隊(duì)列14的擁塞狀態(tài)(四個端口/卡,八個QoS隊(duì)列/端口),每個QoS隊(duì)列一個比特。每個語音卡(在該實(shí)施例中有九個語音卡)在每個背壓幀寫一個比特,但是在該情況中,無論哪一個隊(duì)列12、14擁塞,該比特被設(shè)置為邏輯“0”,以對所有分別的進(jìn)入卡施加背壓。同樣地,在該例子中Tbe=389比特。
如上所述,每個進(jìn)入端口針對其在上一個更新周期期間所傳送的每一個分組,寫入該外出端口的唯一的標(biāo)識符。一個更新周期內(nèi)一個進(jìn)入端口能夠傳送最多兩個分組。因此,每個進(jìn)入端口在時隙Tbi期間在所述背壓總線幀內(nèi)寫入十個比特。全部地,29個進(jìn)入端口每一個總線幀使用290個比特(Tbi=290比特),如在該例子中的字段(時隙)2所示。在背壓總線20上廣播所述比特,并且假定每個外出卡讀取指定給該外出卡的比特,用來計(jì)算分別的隊(duì)列深度和擁塞狀態(tài)變量。
字段3專用于所述SF端口,如圖2的實(shí)施例所示,該SF端口可以在所述背壓總線上寫。這樣,只有所述外出端口訪問所述時隙,以便接收關(guān)于SF外出隊(duì)列12的附加擁塞狀態(tài)數(shù)據(jù)。在該例子中,字段3為Tbsf=5比特,以能夠識別唯一的32(25)個外出端口。
為了清楚地說明本發(fā)明,盡管在此參考特定的硬件和軟件實(shí)現(xiàn)描述了本發(fā)明,然而,將如同附加的權(quán)力要求所定義的本發(fā)明應(yīng)用于不同通信環(huán)境的變型,對于本領(lǐng)域的普通技術(shù)人員而言將是顯而易見的。
權(quán)利要求
1.一種在通信節(jié)點(diǎn)使用的背壓機(jī)制,所述通信節(jié)點(diǎn)用于沿著數(shù)據(jù)路徑發(fā)送協(xié)議數(shù)據(jù)單元(PDU),所述數(shù)據(jù)路徑是通過交換結(jié)構(gòu)(SF)外出端口在進(jìn)入端口和外出端口之間被建立的,所述背壓機(jī)制包括背壓總線,用于在所述進(jìn)入端口和所述外出端口之間建立帶外雙向連接;外出邏輯,用于估計(jì)表征沿所述數(shù)據(jù)路徑的擁塞特性的擁塞狀態(tài)指令;和進(jìn)入邏輯,用于基于所述擁塞狀態(tài)指令來控制所述PDU沿所述數(shù)據(jù)路徑的傳輸,其中,所述外出邏輯通過所述背壓總線,向所述進(jìn)入邏輯傳送所述擁塞狀態(tài)指示符,而所述進(jìn)入邏輯通過所述背壓總線向所述外出邏輯傳送業(yè)務(wù)統(tǒng)計(jì)。
2.根據(jù)權(quán)利要求1的背壓機(jī)制,其中,所述外出端口維持QoS隊(duì)列,以基于所述PDU的QoS,按照到達(dá)所述外出端口的順序來保持所述PDU,并且所述SF外出端口維持SF隊(duì)列,以按照到達(dá)所述SF外出端口的順序來保持所述PDU。
3.根據(jù)權(quán)利要求1的背壓機(jī)制,其中,所述數(shù)據(jù)路徑的更新周期是Td,并且所述背壓總線的更新周期Tb<Td。
4.根據(jù)權(quán)利要求2的背壓機(jī)制,其中,所述擁塞狀態(tài)指令包括QoS隊(duì)列擁塞狀態(tài)和SF隊(duì)列擁塞狀態(tài),所述QoS隊(duì)列擁塞狀態(tài)提供了所述QoS隊(duì)列的擁塞的測量,所述SF隊(duì)列擁塞狀態(tài)提供了所述SF隊(duì)列的擁塞的測量。
5.根據(jù)權(quán)利要求4的背壓機(jī)制,其中,所述外出邏輯包括外出業(yè)務(wù)控制器,用于從所述SF外出端口向所述QoS隊(duì)列傳送所述PDU;QoS深度計(jì)數(shù)器,用于確定所述QoS隊(duì)列的當(dāng)前深度(D);和QoS隊(duì)列擁塞狀態(tài)單元,用于比較所述當(dāng)前深度D和QoS擁塞閾值,并產(chǎn)生所述QoS隊(duì)列擁塞狀態(tài)。
6.根據(jù)權(quán)利要求4的背壓機(jī)制,其中,所述外出邏輯包括SF隊(duì)列深度計(jì)數(shù)器,用于確定所述SF隊(duì)列的當(dāng)前深度(DSF);和SF隊(duì)列擁塞狀態(tài)單元,用于比較所述當(dāng)前深度DSF和SF擁塞閾值,并產(chǎn)生所述SF隊(duì)列擁塞狀態(tài)。
7.根據(jù)權(quán)利要求1的背壓機(jī)制,其中,所述進(jìn)入邏輯包括擁塞狀態(tài)監(jiān)控器,用于保持通過所述背壓總線所接收的所述擁塞狀態(tài)指示;進(jìn)入業(yè)務(wù)控制器,用于識別所述PDU的所述SF隊(duì)列和所述QoS隊(duì)列,并根據(jù)所述擁塞狀態(tài)指令,調(diào)度所述PDU沿所述數(shù)據(jù)路徑的傳輸;和目的地ID計(jì)數(shù)器,用于產(chǎn)生所述業(yè)務(wù)統(tǒng)計(jì),并沿所述背壓總線向所述外出端口傳送所述業(yè)務(wù)統(tǒng)計(jì)。
8.根據(jù)權(quán)利要求1的背壓機(jī)制,其中,所述業(yè)務(wù)統(tǒng)計(jì)包括在上一個數(shù)據(jù)更新周期Td期間,從所述進(jìn)入端口沿所述數(shù)據(jù)路徑傳送的PDU的計(jì)數(shù)。
9.根據(jù)權(quán)利要求8的背壓機(jī)制,其中,根據(jù)所述SF外出端口的標(biāo)識來評估所述計(jì)數(shù)。
10.根據(jù)權(quán)利要求1的背壓機(jī)制,其中,所述背壓總線利用固定長度的背壓幀,根據(jù)時分復(fù)用(TDM)協(xié)議操作。
11.根據(jù)權(quán)利要求10的背壓機(jī)制,其中,在所述背壓幀內(nèi)所分配的時隙Tbe期間,所述外出端口在所述背壓總線上寫所述擁塞狀態(tài)指令,而所述進(jìn)入端口從所述時隙Tbe讀取所述擁塞狀態(tài)指令。
12.根據(jù)權(quán)利要求10的背壓機(jī)制,其中,在所述背壓幀內(nèi)所分配的時隙Tbi期間,所述進(jìn)入端口在所述背壓總線上寫所述業(yè)務(wù)統(tǒng)計(jì),而所述外出端口從所述時隙Tbi讀取該業(yè)務(wù)統(tǒng)計(jì)。
13.根據(jù)權(quán)利要求10的背壓機(jī)制,其中,在所述背壓幀內(nèi)所分配的時隙Tbsf期間,所述SF外出端口在所述背壓總線上寫附加擁塞狀態(tài)數(shù)據(jù),而所述外出端口從所述時隙Tbsf讀取所述附加擁塞狀態(tài)數(shù)據(jù)。
14.一種用于帶外背壓總線的幀,該帶外背壓總線用于提供沿?cái)?shù)據(jù)路徑的閉環(huán),所述數(shù)據(jù)路徑是通過通信節(jié)點(diǎn)的交換結(jié)構(gòu)(SF)外出端口、在進(jìn)入端口和外出端口之間被建立的,所述幀包括外出端口時隙Tbe,用于承載擁塞狀態(tài)指令,該指令針對數(shù)據(jù)更新間隔Td提供了所述數(shù)據(jù)路徑的擁塞狀態(tài);和進(jìn)入端口時隙Tbi,用于承載PDU的計(jì)數(shù),所述PDU是在所述數(shù)據(jù)更新間隔Td期間向所述SF外出端口傳送的。
15.根據(jù)權(quán)利要求14的幀格式,還包括SF時隙Tbsf,用于承載附加狀態(tài)數(shù)據(jù),該數(shù)據(jù)是關(guān)于針對所述數(shù)據(jù)更新間隔Td在所述SF外出端口的擁塞的。
16.根據(jù)權(quán)利要求14的幀格式,其中,所述擁塞狀態(tài)指令包括QoS隊(duì)列擁塞狀態(tài)和SF隊(duì)列擁塞狀態(tài),所述QoS隊(duì)列擁塞狀態(tài)提供了所述外出端口的擁塞的測量,所述SF隊(duì)列擁塞狀態(tài)提供了所述SF外出端口的擁塞的測量。
17.一種用于改善沿?cái)?shù)據(jù)路徑的業(yè)務(wù)吞吐量的方法,所述數(shù)據(jù)路徑是在通信節(jié)點(diǎn)處通過交換結(jié)構(gòu)(SF)外出端口在進(jìn)入端口和外出端口之間被建立的,所述方法包括a)估計(jì)表征沿所述數(shù)據(jù)路徑的擁塞特性的擁塞狀態(tài)指令;b)利用背壓總線在所述進(jìn)入端口和所述外出端口之間建立帶外雙向連接;c)通過所述背壓總線向所述進(jìn)入端口傳送所述擁塞狀態(tài)指示符,并通過所述背壓總線向所述外出端口傳送業(yè)務(wù)統(tǒng)計(jì);和d)基于所述擁塞狀態(tài)指令,控制所述PDU沿所述數(shù)據(jù)路徑的傳輸。
18.根據(jù)權(quán)利要求17的方法,其中,所述擁塞狀態(tài)指令包括QoS隊(duì)列擁塞狀態(tài)和SF隊(duì)列擁塞狀態(tài),所述QoS隊(duì)列擁塞狀態(tài)提供了所述外出端口的擁塞的測量,所述SF隊(duì)列擁塞狀態(tài)提供了所述外出端口的擁塞的測量。
19.根據(jù)權(quán)利要求18的方法,其中,所述步驟(a)包括a1)基于所述PDU的QoS,按照到達(dá)所述外出端口的順序,將所述PDU置于QoS隊(duì)列中;a2)確定所述QoS隊(duì)列的深度D;a3)比較所述深度D和QoS擁塞閾值,用來產(chǎn)生所述QoS隊(duì)列擁塞狀態(tài)。
20.根據(jù)權(quán)利要求19的方法,其中,所述步驟(a)還包括a4)按照到達(dá)所述SF外出端口的順序,將所述PDU置于SF中;a5)確定所述SF隊(duì)列的深度DSF;a6)比較所述深度DSF和SF擁塞閾值,用來產(chǎn)生所述SF隊(duì)列擁塞狀態(tài)。
21.根據(jù)權(quán)利要求19的方法,其中,所述步驟a2)還包括確定上一個數(shù)據(jù)更新周期期間,被置于所述QoS隊(duì)列中的PDU的數(shù)量;確定上一個數(shù)據(jù)更新周期期間,從所述QoS隊(duì)列所傳送的PDU的數(shù)量;和通過將被置于所述QoS隊(duì)列中的PDU的數(shù)量與從所述QoS隊(duì)列所傳送的PDU的數(shù)量的差值,與所述深度D相加,來確定針對當(dāng)前數(shù)據(jù)更新周期的被更新的深度D’。
22.根據(jù)權(quán)利要求20的方法,其中,所述步驟a5)包括根據(jù)所述業(yè)務(wù)統(tǒng)計(jì)來建立PDU計(jì)數(shù),該計(jì)數(shù)指出了在上一個數(shù)據(jù)更新周期期間被置于所述SF隊(duì)列中的PDU的數(shù)量;確定上一個數(shù)據(jù)更新周期期間,從所述SF隊(duì)列所傳送的PDU的數(shù)量;和通過將被置于所述SF隊(duì)列中的PDU的數(shù)量與從所述SF隊(duì)列所傳送的PDU的數(shù)量的差值,與所述深度DSF相加,來確定針對當(dāng)前數(shù)據(jù)更新周期的被更新的深度DSF’。
23.根據(jù)權(quán)利要求18的方法,其中,所述步驟(b)包括通過更新周期Tb的固定長度幀,為所述總線提供TDM協(xié)議;在所述幀內(nèi)分配外出端口字段Tbe、進(jìn)入端口字段Tbi和SF端口字段Tbsf;和在所述分別的字段內(nèi),為每個所述進(jìn)入、外出和SF端口分配時隙,其中,當(dāng)所述端口之一在所述背壓總線上寫時,所有剩余的端口可以從所述背壓總線讀取。
24.根據(jù)權(quán)利要求23的方法,其中,所述步驟(c)包括在所述外出端口,在所述外出端口字段Tbe中寫入所述QoS隊(duì)列擁塞狀態(tài)和所述SF隊(duì)列擁塞狀態(tài),并從所述進(jìn)入端口字段Tbi讀取所述業(yè)務(wù)統(tǒng)計(jì);和在所述進(jìn)入端口,在所述進(jìn)入端口字段Tbi中寫入所述業(yè)務(wù)統(tǒng)計(jì),并從所述外出端口字段Tbe讀取所述QoS隊(duì)列擁塞狀態(tài)和所述SF隊(duì)列擁塞狀態(tài)。
25.根據(jù)權(quán)利要求23的方法,其中,所述步驟(c)還包括在所述SF外出端口,在所述SF端口字段Tbsf上寫關(guān)于所述SF隊(duì)列的附加擁塞狀態(tài)數(shù)據(jù);在所述外出端口,從所述SF端口字段Tbsf讀取所述附加擁塞數(shù)據(jù);和根據(jù)所述附加擁塞數(shù)據(jù),調(diào)整所述SF隊(duì)列擁塞狀態(tài)。
26.根據(jù)權(quán)利要求18的方法,其中,所述步驟(d)包括在所述進(jìn)入端口接收所述QoS隊(duì)列擁塞狀態(tài)和所述SF隊(duì)列擁塞狀態(tài);確定所述QoS隊(duì)列是否擁塞;如果所述QoS隊(duì)列不擁塞,則確定所述SF隊(duì)列是否擁塞;如果所述SF隊(duì)列不擁塞,則沿所述數(shù)據(jù)路徑,從所述進(jìn)入端口向所述外出端口傳送所述PDU;和如果任何所述SF隊(duì)列和所述QoS隊(duì)列擁塞,則丟棄所述PDU。
全文摘要
背壓機(jī)制使用TDM背壓總線,為每個端口卡分配了時隙。在其時隙期間,每個進(jìn)入卡/端口在所述總線上寫其在上一個數(shù)據(jù)更新周期期間傳送到外出端口的分組的數(shù)量。所述外出端口讀取該信息,并用其計(jì)算交換結(jié)構(gòu)輸出隊(duì)列的當(dāng)前深度。除了從進(jìn)入卡接收的信息之外,外出卡還對接收自適當(dāng)?shù)慕粨Q結(jié)構(gòu)端口的分組的數(shù)量進(jìn)行計(jì)數(shù),并基于此估計(jì)/計(jì)算所述交換結(jié)構(gòu)輸出隊(duì)列的當(dāng)前深度。通過所述隊(duì)列深度與分別的閾值的比較,為所有隊(duì)列計(jì)算擁塞狀態(tài)。每個外出卡使用所述擁塞狀態(tài)以產(chǎn)生到進(jìn)入卡的背壓信號。進(jìn)入卡使用所述信號來決定是否向目的地外出卡/端口發(fā)送業(yè)務(wù)。
文檔編號H04L5/14GK1728687SQ200510087168
公開日2006年2月1日 申請日期2005年7月27日 優(yōu)先權(quán)日2004年7月27日
發(fā)明者M·佐蘭諾維奇, B·麥克布賴德, P·拉比諾維奇 申請人:阿爾卡特公司