專利名稱:以太網交換控制器及其擁塞控制方法
技術領域:
本發明涉及一種以太網交換控制器及其擁塞控制方法,尤指一種在網絡擁塞時,限制單一連接端口不得使用過多系統資源,避免整體網絡傳輸速率被拖慢的控制方法。
在以太網中,將個人計算機、工作站與服務器等連接起來的,多是集線器(Hub)或交換機(Switch)等等。以太網集線器雖然成本較低,但其帶寬是由所有的連接裝置所共享,所以裝置越多,封包產生沖突的機率也越大,當流量大的時候,就會嚴重影響網絡運作的效率。
利用以太網交換機就能避免上述的問題。以太網交換機具有地址學習功能,可將所連接裝置的地址記錄在內建的路徑表中。當交換機接收到一幀(frame)時,會去判斷幀的目的地址是否在路徑表中,若是,則將此幀輸出至對應的連接端口;若否,則將此幀廣播至所有的連接端口。根據封包中的來源(SMAC,Source MAC)地址及其來源端口,交換機將更新路徑表,建立新的目的地址與連接端口的對應關系。通過上述機制,以太網交換機可以充分利用帶寬,因而提高網絡運作效率。
以太網交換機內的交換控制器通常具備擁塞控制(congestion control)的功能,使各連接端口間的封包交換更有效率,以增加網絡整體吞吐量(throughput)。一般的作法是,當一目的端口已進入擁塞狀態時,此時若有網絡封包要轉送至此目的端口,則封包的來源端口會依據其所連接裝置的狀態,激活一擁塞控制方式,以管制封包的進出,避免封包再送至擁塞的目的端口。
前述的作法可細述如下IEEE協會在802.3u標準中納入了自動協調(auto negotiation)功能的設計,它能讓以太網交換控制器與連接裝置(加以太網卡)間取得彼此的狀態。以太網交換控制器會與所連接裝置進行此一自動協調的過程,而后依據連接裝置的狀態,選擇適當的擁塞控制方式。一般而言,有三種控制方式(1)當所連接的裝置為全雙工且具流量控制能力時,選擇流量控制(flow control)方式;(2)當所連接的裝置為全雙工且不具流量控制能力時,選擇丟棄控制(drop control)方式;(3)當所連接的裝置為半雙工且不具流量控制能力時,則選擇回壓控制(backpressure)方式。不論選擇哪種擁塞控制方式,待擁塞的目的端口解除擁塞狀態后,即可予以停止,以使交換機中原本受到管制的來源端口,也恢復正常的封包接收。
不過,前述作法必須搭配交換控制器對儲存封包的緩沖器做適當的管理,才能真正發揮擁塞控制的效果。我們先看現有以太網交換控制器所采用的緩沖器管理方式會造成什么問題。一般以太網交換機均有內建內存裝置,作為緩沖器(buffer)使用,可以暫存等待輸出的網絡封包。連接端口從網絡接收封包后,經查詢路徑表決定其所要輸出的連接端口,并將封包送入緩沖器暫存及要求于該連接端口所對應的輸出隊列中建立連結。之后,當交換控制器要輸出此封包時,便依據先前在輸出隊列建立的連結,將緩沖器中的封包送出。為了提高交換控制器的運作效率,一般的作法都是由各個連接端口不受限地緩沖器。由于各連接端口的網絡流量不一,但若采取事先限定每個連接端口可使用多少緩沖器空間,可能就會造成流量大的連接端口空間不敷使用,而流量小的連接端口卻有緩沖器空間閑置的情形,如此就造成資源未充分利用的情形,網絡運作效率自然無法提高。
但是,采用此種“共享內存結構”(shared memory architecture)的以太網交換控制器,在網絡擁塞時就會碰到問題。因為每個連接端口實際傳收的流量不一,如果速度慢的連接端口一下涌進大量的封包要傳送,占用了大部分的緩沖器,造成此連接端口的擁塞,此時速度快的連接端口若要從網絡接收封包,只能使用剩余小部份的緩沖器,只要流量稍大,緩沖空間便會用盡,必須等待慢速連接端口消化其輸出封包,釋出緩沖器空間,快速連接端口才能繼續接收封包。換言之,快速連接端口的傳輸速率就會明顯地受制于慢速連接端口的速率。
所以,現有以太網交換控制器所使用的共享內存結構,在網絡進入擁塞狀態時,常會造成慢速的連接端口拖累快速連接端口的問題,形成一種不公平的現象。
進一步而言,采取等分內存結構可實現最佳的公平性。此處最佳公平性是指,由于一連接端口傳輸封包所花的時間與其傳輸速率成反比,因此一擁塞的目的連接端口處于擁塞的時間也應與其輸出速率成反比。
當網絡脫離擁塞狀態時,即改回使用共享內存結構。如此,一方面可享受共享內存結構所提供的網絡運作效率,另一方面又能在網絡擁塞時,解決共享內存結構所造成的不公平問題,避免網絡傳輸速率被慢速的連接端口拖累。
本發明中,定義了系統的三種狀態XON(正常)、XOFF(擁塞)及ALL XOFF(嚴重擁塞),擁塞控制即以此為基礎,這里系統則是指以以太網交換機為中心的網絡。當交換機內的緩沖器空間低于一預設的“系統擁塞臨限值”,系統即進入XON狀態,如前所述,緩沖器的管理方式也由共享內存結構改為等分內存結構。
進一步,若擁塞變得更加嚴重,以致緩沖器空間低于一預設的“系統嚴重擁塞臨限值”,系統則進入ALL XOFF狀態。此時,系統已處于嚴重擁塞、資源極度短缺的情形,因此必須對所有來源端口進行流量管制,不再接收任何網絡封包進來,以免造成系統癱瘓或是數據流失。待緩沖器空間回升到一預設的(解除系統嚴重擁塞臨限值),系統即回到XOFF狀態;而必須等到緩沖器回升至一預設的“解除系統擁塞臨限值”。系統才完全脫離擁塞,回到XON狀態,緩沖器管理也由等分內存結構改回共享內存結構。
圖1是實施本發明的以太網交換機的電路連結方塊示意圖;圖2是圖1以太網交換控制器的電路方塊圖的一實施例;圖3是本發明的以太網交換機內緩沖器空間的變化情形;圖4是本發明的輸出隊列的長度的變化情形;圖5是本發明的來源連接端口使用RX_ON/RX_OFF窗口執行流量管制的示意圖。
圖1是實施本發明的以太網交換機的電路連結方塊示意圖。其中,以太網交換機10包括多個連接端口11,用于接收或傳送封包;多個物理層裝置12,一對一耦接至該些連接端口11;一緩沖器13,用以儲存待輸出的封包;一緩存器14,儲存擁塞控制的相關設定值;一以太網交換控制器15,耦接至該些物理層裝置12;交換控制器15用以執行封包交換的動作,并在網絡擁塞時,根據緩存器14的設定值進行擁塞控制。
圖2是圖1中的以太網交換控制器的電路方塊圖的一實施例,其中以太網交換控制器15包括多個連接端口控制裝置154、隊列控制裝置153、轉送控制裝置151以及緩沖器控制裝置152。多個連接端口控制裝置154,耦接至多個物理層裝置(PHY)12,該些物理層裝置12通過自動協調機制可得到對方連接裝置的多個狀態信號。包括雙工模式(duplex mode)信號及流量控制能力(flow control capability)信號,通過這些狀態信號可得知對方連接裝置是全雙工或半雙工,以及是否具備流量控制能力,并據此選擇何種擁塞控制方式。
轉送控制裝置151,耦接至多個連接端口控制裝置154,其根據此多個連接端口控制裝置154所收到網絡封包的標頭查詢路徑表,以決定網絡封包所欲轉送的目的連接端口。緩沖器控制裝置152,耦接至多個連接端口控制裝置154,每一個連接端口控制裝置154可至緩沖器13要求緩沖器空間。緩沖器控制裝置152根據這些連接端口控制裝置114的要求,來分配(allocate)或釋放(free)緩沖器的空間。
隊列控制裝置153,耦接至這些連接端口控制裝置154、緩沖器控制裝置152及轉送控制裝置151,每一個連接端口控制裝置154在隊列控制裝置153中各有對應的輸出隊列,根據各連接端口控制裝置154所送的要求,在其對應的輸出隊列中建立連結。如果隊列控制裝置153的輸出隊列已進入擁塞狀態,則送出擁塞窗口(congestion window)信號至轉送控制裝置151,并送出一激活流量管制窗口信號,以要求來源連接端口進行擁塞控制。
進一步,我們要詳述如何運用上文的硬件結構,來實施本發明的擁塞控制方法。圖3是以太網交換機內緩沖器的空間變化情形。假設系統初啟用時,以太網交換機10內的緩沖器13并未儲存任何封包,如圖3的E0所示,啟用后才開始從連接端口11接收網絡封包,并暫存于緩沖器13中等待輸出。
當緩沖器13的剩余空間仍大于或等于系統擁塞臨限值時,系統處于正常(XON)狀態,未出現擁塞,亦沒有任一連接端口11進入流量管制狀態。所以,任何接收進來的封包皆能正常地轉送出去。此接收一轉送的過程可描述如下連接端口控制裝置154通過物理層裝置12從連接端口11接收封包,經轉送控制裝置151查表決定目的連接端口;連接端口控制裝置154則要求緩沖器13的空間以儲存封包,緩沖器控制裝置152即依此要求來分配緩沖器的空間;接著連接端口控制裝置154向隊列控制裝置153要求于目的連接端口所對應的輸出隊列中建立連結;接下來目的連接端口的端口控制裝置即從輸出隊列輸出封包,緩沖器控制裝置152則釋放封包所占的緩沖器空間。
然而,如圖3的E1所示,當緩沖器13的剩余空間下降至低于系統擁塞臨限值時,系統即脫離XON狀態而進入XOFF狀態,換言之,即進入擁塞狀態。此時,由于緩沖器的空間所剩不多,即不能采用共享內存結構,讓所有連接端口11(及其對應的輸出隊列)無限制地共同使用緩沖器,而是改采等分內存結構的方式,限定每一輸出隊列能使用一定量的緩沖器空間,如此慢速連接端口的輸出隊列便不致占用過多的緩沖器,而拖慢整個網絡的傳輸速率。請參閱圖4,若一輸出隊列的長度增加至大于或等于一預設的“輸出隊列擁塞臨限值”,即E5,此輸出隊列即進入局部(local)擁塞狀態,而應實施擁塞控制。隊列控制裝置153對該輸出隊列激活(assert)一擁塞窗口信號至轉送控制裝置151;之后,若有一來源連接端口接收網絡封包并要求于此輸出隊列中建立連結,則隊列控制裝置153會送出一激活流量管制窗口信號至該來源連接端口的端口控制裝置,促使該來源連接端口開始進行流量管制,該來源連接端口便不會再將網絡封包接收進來,此輸出隊列的長度就能受到控制,例如可通過對連接至來源端口的裝置發出延遲時間為FF的暫停幀(pause frame),使該裝置暫停一段時間(FF),不對該來源端口送封包。
當此進入擁塞狀態的輸出隊列持續從緩沖器13輸出封包,以致該輸出隊列長度減回至小于一預設的“解除輸出隊列擁塞臨限值”時,如圖4 E6所示(此“解除輸出隊列擁塞臨限值”小于“輸出隊列擁塞臨限值”),此輸出隊列即脫離局部擁塞狀態,隊列控制裝置153解除(deassert)該擁塞窗口信號至轉送控制裝置151,以及送出一關閉流量管制窗口信號至先前進行流量管制的端口制裝置,使得對應的來源連接端口解除流量管制,重新開始接收網絡封包。不過,若此時系統仍未脫離XOFF狀態,即系統尚未回到解除系統擁塞臨限值,各輸出隊列的長度依然受到輸出隊列擁塞臨限值的限制,當長度再到達輸出隊列擁塞臨限值時,如圖4階所示,輸出隊列仍將進入擁塞狀態。
進一步,本發明還納入一項設計,借以處理系統嚴重擁塞(ALL XOFF)的情形。如圖3所示,通過設定比系統擁塞臨限值還低的“系統嚴重擁塞臨限值”,以此作為判斷系統是否陷入嚴重擁塞的臨限值。當緩沖器13所余空間低于此臨限值,此時系統資源已處于極度短缺的情形,必須限制所有連接端口11不得再接收封包進來,以免系統不堪負荷如圖3的E2,當緩沖器13的剩余空間下降至低于系統嚴重擁塞臨限值時,所有輸出隊列即全數進入擁塞狀態,該多個連接端口控制裝置154則收到發自隊列控制裝置153的激活流量管制窗口信號,開始對該多個連接端口11進行流量管制。
一旦系統進入ALL XOFF狀態后(E2),必須待緩沖器空間回升至解除系統嚴重擁塞臨限值(該解除系統嚴重擁塞臨限值大于前述的系統嚴重擁塞臨限值),如圖3的E3,才能回到XOFF狀態。必須強調的是,圖3顯示該解除系統嚴重擁塞臨限值系小于系統擁塞臨限值,此并非實施本發明的必要條件,事實上該解除系統嚴重擁塞臨限值與系統擁塞臨限值之間沒有必然的大小關系,因此,應注意到亦可直接使用系統擁塞臨限值為解除系統嚴重擁塞臨限值。假設若此回升是由已進入擁塞狀態的輸出隊列Q輸出封包所造成(可由圖4的輸出隊列長度來判斷),代表某些輸出隊列的封包去化速度很快,不應受到其它封包去化速度較慢的連接端口的拖累;此可通過檢查Q的長度若仍大于或等于輸出隊列擁塞臨限值,Q仍處于擁塞狀態;若已縮短至低于輸出隊列擁塞臨限值,Q則解除擁塞狀態,該多個連接端口控制裝置154則收到發自隊列控制裝置153的關閉流量管制窗口信號,停止對該多個連接端口11進行流量管制。
系統不論是處于ALL XOFF狀態或XOFF狀態,都必須持續將暫存于緩沖器的封包轉送出去,直到緩沖器所剩空間增加至解除系統擁塞臨限值時(當然該值大于“系統擁塞臨限值”及“系統嚴重擁塞臨限值”),如圖3的E4,才會回到正常(XON)則狀態,代表該交換機完全脫離擁塞。此時,任何處于擁塞狀態的輸出隊列,也都解除擁塞狀態,隊列控制裝置153會解除對應這些擁塞輸出隊列的擁塞窗口信號至轉送控制裝置151,并分別送出關閉流量管制窗口信號至仍處于流量管制狀態的端口控制裝置,使得對應的來源連接端口解除流量管制,重新開始接收網絡封包。同時,由于此時緩沖器剩余空間已回復正常水準,交換控制器于ALL XOFF狀態或XOFF狀態采行的等分內存結構(亦即以輸出隊列擁塞臨限值限制輸出隊列的長度,如圖4的E5、E7),便不再使用,而恢復原先于XON狀態使用的共享內存結構,讓所有連接端口11無限制地共同使用緩沖器,而不去控制所對應輸出隊列的長度。
在此實施例中,交換控制器于系統處于XOFF狀態所用的等分內存結構中,較佳地各輸出隊列最多可使用約4K字節的緩沖器空間,此大于以太封包最大可能長度的兩倍,因此當系統處于XOFF狀態時,如圖3的E1至E2以及E3至E4,若某些輸出隊列陷于擁塞狀態,便可優先疏通其它交通流量順暢的輸出隊列及對應的連接端口。
關于來源連接端口如何進行流量管制,此處再作進一步說明。在本發明中,來源連接端口的流量管制由此RX_ON/RX_OFF窗口為基礎。圖5是來源連接端口使用RX_ON/RX_OFF窗口執行流量管制的示意圖。在未有任何輸出隊列進入擁塞狀態時,所有來源連接端口皆可正常接收封包,即處于RX_ON窗口;但當某一輸出隊列進入擁塞狀態后,若有來源連接端口接收封包并要求于此輸出隊列建立連結,則來源連接端口的端口控制裝置會從隊列控制裝置153收到一激活流量管制窗口信號,要求其進行流量管制,此時來源連接端口就會進入RX_OFF窗口,并依據對方連接裝置的狀態來決定采取何種擁塞控制方式(一)當對方連接裝置為全雙工且具流量控制能力時,選擇流量控制方式。依此方式,交換控制器會送出流量控制幀(flow control frame)到連接裝置,要求其停止傳送封包,待擁塞情形解除后,再恢復傳送。(二)當所連接的裝置為全雙工且不具流量控制能力時,選擇丟棄控制方式。換言之,即直接丟棄連接裝置所傳來的封包,不讓其送至擁塞的目的端口。(三)當所連接的裝置為半雙工且不具流量控制能力時,則選擇回壓控制方式。此方式是由交換控制器發出沖突信號將封包破壞,使連接裝置偵測到沖突后,即以“二元指數后退算法”(Binary Exponential Backoff Algorithm)計算出等待時間,過后再重新傳送封包。借此,來源連接端口便不會再有網絡流量進來,而實現流量管制的效果。
當輸出隊列脫離擁塞狀態,來源連接端口的端口控制裝置會從隊列控制裝置153收到一關閉流量管制窗口信號,此時來源連接端口就會從RX_OFF窗口回到RX_ON窗口,解除流量管制,正常接收網絡封包。
前文所提到的所有臨限值,包括系統擁塞臨限值、系統嚴重擁塞臨限值、解除系統擁塞臨限值、解除系統嚴重擁塞臨限值、輸出隊列英塞臨限值以及解除輸出隊列擁塞臨限值,皆儲存于緩存器14中,其值可因應網絡實際的運作情形,由以太網交換控制器15來設定或調整。
綜上所述,本發明提供了一種以太網交換控制器及其擁塞控制方法,可于網絡陷入擁塞時,使用等分內存結構的方式,限制單一連接端口不致使用過多的系統資源,避免了因慢速連接端口處于擁塞而拖慢整體網絡傳輸速率的問題。
然而以上所述僅為本發明的較佳實施例,并不能以此限定本發明的范圍。凡依本發明權利要求所作的同等變化與修飾,皆應仍屬于本發明專利涵蓋的范圍內。
權利要求
1.一種擁塞控制方法,用于一以太網交換機中,該交換機包含一緩沖器、多個連接端口以及多個與各連接端口對應的輸出隊列,其特征在于,該控制方法包括有下列步驟從至少一連接端口接收至少一網絡封包,將其儲存于該緩沖器中,并于各封包的目的連接端口所對應的輸出隊列中建立連結;檢查緩沖器的剩余空間是否低于一預設的系統擁塞臨限值,若檢查結果為“是”時,則檢查建立連結的輸出隊列的長度是否大于或等于一預設的輸出隊列擁塞臨限值;以及由該交換機根據檢查結果來執行一流量管制程序。
2.如權利要求1所述的控制方法,其特征在于所述的交換機根據檢查結果執行所述的流量管制程序,以決定后續接收的網絡封包欲與某一輸出隊列建立連結的要求是否被允許。
3.如權利要求2所述的控制方法,其特征在于所述的流量管制程序包括有當檢查結果發現在有建立連結的輸出隊列中,有某特定輸出隊列的長度大于或等于該預設的輸出隊列擁塞臨限值、且后續又有接收一網絡封包要求于該特定輸出隊列中建立連結時,則該要求將被拒絕;以及將該特定輸出隊列的長度與一預設的解除輸出隊列擁塞臨限值進行比較,該解除輸出隊列擁塞臨限值小于輸出隊列擁塞臨限值,若輸出隊列的長度小于該預設的解除輸出隊列擁塞臨限值,則后續又有接收一網絡封包要求于該特定輸出隊列中建立連結時,該要求將被允許。
4.如權利要求1所述的控制方法,其特征在于,還包括下列步驟檢查緩沖器的剩余空間是否低于一預設的系統嚴重擁塞臨限值,當檢查結果為“是”時,則對所有多個連接端口的后續網絡封包都進行流量管制程序。
5.如權利要求4所述的控制方法,其特征在于,還包括檢查該緩沖器的剩余空間是否回升至一預設的解除系統嚴重擁塞臨限值,當檢查結果“是”時,若該輸出網絡封包的輸出隊列的長度小于該輸出隊列擁塞臨限值,則后續又有接收一網絡封包要求于該輸出隊列中建立連結時,該要求將被允許。
6.如權利要求5所述的控制方法,其特征在于,還包括當該緩沖器的剩余空間持續增加至一預設的解除系統擁塞臨限值時,則停止所有流量管制程序。
7.如權利要求5所述的控制方法,其特征在于所述的預設的解除系統嚴重擁塞臨限值系實質地等于該系統擁塞臨限值。
8.如權利要求6所述的控制方法,其特征在于所述的系統擁塞臨限值、該系統嚴重擁塞臨限值、該解除系統擁塞臨限值、該解除系統嚴重擁塞臨限值、該輸出隊列擁塞臨限值以及該解除輸出隊列擁塞臨限值皆儲存于位于交換機內的一緩存器中。
9.一種以太網交換控制器,系用于一以太網交換機中,該以太網交換機包含一緩沖器、多個連接端口以及多個物理層裝置,其特征在于,該以太網交換控制器包括一緩沖器控制裝置,耦接至該緩沖器,用以分配與釋放緩沖器的空間;多個連接端口控制裝置,耦接至該緩沖器及該些物理層裝置,通過該些物理層裝置從該些連接端口接收多個網絡封包,并至該緩沖器控制裝置要求緩沖器的空間以儲存該些網絡封包;一轉送控制裝置,耦接該些連接端口控制裝置,依據該些連接端口控制裝置所接收的網絡封包,以決定該些網絡封包所欲轉送的目的連接端口;以及一隊列控制裝置,耦接至該些連接端口控制裝置、該緩沖器控制裝置及該轉送控制裝置,該隊列控制裝置包含對應于該些連接端口的多個隊列,該隊列控制裝置根據該些連接端口控制裝置在接收該網絡封包后所送來的要求,于各封包所對應的隊列中建立連結;其中該交換控制器檢查緩沖器的剩余空間是否低于一預設的系統擁塞臨限值,若檢查結果為“是”時,則繼續檢查有建立連結的隊列的長度是否不小于一預設的隊列擁塞臨限值,該交換控制器并根據檢查結果,執行一流量管制程序。
10.如權利要求9所述的交換控制器,其特征在于所述的該交換控制器根據檢查結果執行該流量管制程序,以決定后續接收的網絡封包欲與某一隊列建立連結的要求是否被允許。
全文摘要
本發明提供一種以太網交換控制器及其擁塞控制方法,主要是在網絡進入擁塞狀態時,將交換控制器所用的共享內存結構改變為“等分內存結構”,限定每個連接端口所對應的輸出隊列的長度,當超過此限定的長度,輸出隊列便進入“擁塞”狀態,之后若有來源連接端口要求于此輸出隊列建立連結,該來源連接端口就會進入流量管制狀態,不再將網絡封包接收進來,輸出隊列的長度就能受到節制。當網絡脫離擁塞狀態時,即改回使用共享內存結構。借此,一方面可享受共享內存結構所提供的網絡運作效率,另一方面又能于網絡擁塞時,解決共享內存結構所造成的不公平問題,避免網絡傳輸速率被慢速的連接端口拖累。
文檔編號H04L12/24GK1444358SQ0210717
公開日2003年9月24日 申請日期2002年3月13日 優先權日2002年3月13日
發明者陳任凱, 吳曉龍 申請人:威盛電子股份有限公司