專利名稱:區(qū)分轉(zhuǎn)發(fā)大象流的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及以太網(wǎng)交換芯片領(lǐng)域,尤其涉及一種基于ASIC實現(xiàn)區(qū)分轉(zhuǎn)發(fā)大象流的方法及系統(tǒng)。
背景技術(shù):
目前,在數(shù)據(jù)中心網(wǎng)絡(luò)中,對流的控制是其最核心的內(nèi)容?,F(xiàn)有技術(shù)中,一般都用一個單一的流表(比如TCAM)進行簡單的控制,并通過ACL來匹配數(shù)據(jù)流,進行重定向轉(zhuǎn)發(fā), 由于數(shù)據(jù)中心中數(shù)據(jù)流太多,要控制所有流代價太大。統(tǒng)計數(shù)據(jù)表明,數(shù)據(jù)中心中的90%的數(shù)據(jù)流量是由10%的流所產(chǎn)生的,所以只要能對這10%的流進行識別和控制,那就可以很好的優(yōu)化數(shù)據(jù)中心網(wǎng)絡(luò),這10%的流我們稱之為大象流。然而,現(xiàn)有技術(shù)中并未實現(xiàn)對大象流進行區(qū)別對待,從而增大了發(fā)生數(shù)據(jù)“擁塞”的可能性。發(fā)明內(nèi)容
本發(fā)明所需解決的技術(shù)問題在于提供一種區(qū)分轉(zhuǎn)發(fā)大象流的方法,以降低發(fā)生擁塞的可能性。
相應(yīng)地,本發(fā)明還提供一種區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng)。
為解決上述技術(shù)問題,本發(fā)明所采取的技術(shù)方案為一種區(qū)分轉(zhuǎn)發(fā)大象流的方法,其包括如下步驟Si、設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流;S2、提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑;S3、查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。
作為本發(fā)明的進一步改進,所述步驟SI具體包括在ACL表里面安裝若干特征流表項;一旦檢測到有流命中所述特征流表項的一種,則將該流送達到大象流識別器進行流量統(tǒng)計,若統(tǒng)計該流的流量大于特定閾值,則將當(dāng)前流確定為大象流;其中,所述特征流表項用于捕捉的大象流包括目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有 TCP的流。
作為本發(fā)明的進一步改進,所述“確定最佳路徑”的步驟具體包括在多條發(fā)送路徑中分別通過計數(shù)器統(tǒng)計其負載值;比較以獲得所述路徑中負載值最小的路徑,并將其設(shè)定為最佳路徑。
作為本發(fā)明的進一步改進,該方法還包括設(shè)置一用于檢測流的間隙的大象流切換開關(guān),以在檢測到流之間的間隙后,再進行路徑的切換。
作為本發(fā)明的進一步改進,該方法還包括監(jiān)測所述大象流的停止,并在所述大象流停止后,刪除被安裝到所述微表中的關(guān)鍵字組合。
作為本發(fā)明的進一步改進,所述關(guān)鍵字組合包括報文IP目的地址、IP源地址、協(xié)議號、4層目的端口以及4層源端口。
相應(yīng)地,本發(fā)明的一種區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng),其包括識別單元、用于設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流;安裝單元、 用于提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑;及轉(zhuǎn)發(fā)單元、用于查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。
作為本發(fā)明的進一步改進,所述識別單元具體包括設(shè)定單元、用于在ACL表里面安裝若干特征流表項;捕捉處理單元、用于在檢測到有流命中所述特征流表項的一種,將該流送達到大象流識別器進行流量統(tǒng)計,若統(tǒng)計該流的流量大于特定閾值,則將當(dāng)前流確定為大象流;其中,所述特征流表項用于捕捉的大象流包括目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有TCP的流。
作為本發(fā)明的進一步改進,所述安裝單元具體用于在多條發(fā)送路徑中分別通過計數(shù)器統(tǒng)計其負載值;比較以獲得所述路徑中負載值最小的路徑,并將其設(shè)定為最佳路徑。
作為本發(fā)明的進一步改進,該系統(tǒng)還包括路徑切換單元、用于設(shè)置一用于檢測流的間隙的大象流切換開關(guān),以在檢測到流之間的間隙后,再進行路徑的切換;及老化處理單元、用于監(jiān)測所述大象流的停止,并在所述大象流停止后,刪除被安裝到所述微表中的關(guān)鍵字組合。
相較于現(xiàn)有技術(shù),本發(fā)明通過捕捉出屬于大象流的流,并對大象流數(shù)據(jù)包進行區(qū)別對待,并選擇一條最佳的轉(zhuǎn)發(fā)路徑進行大象流的轉(zhuǎn)發(fā),從而大大減低出現(xiàn)“擁塞”的可能性。
為了更清楚地說明本發(fā)明具體實施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對本發(fā)明具體實施例或現(xiàn)有描述中所需要使用的附圖作簡單地介紹,顯而易見地,下述附圖僅為本發(fā)明的一部分附圖,對于本領(lǐng)域普通技術(shù)人員而言,在不作出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖I是本發(fā)明一實施例中區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng)的原理圖;圖2是本發(fā)明一實施例中區(qū)分轉(zhuǎn)發(fā)大象流的方法的基本步驟流程圖;圖3是本發(fā)明一實施例中區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng)的單元示意圖。
具體實施方式
以下將結(jié)合附圖所示的具體實施方式
對本發(fā)明進行詳細描述。但這些實施方式并不限制本發(fā)明,基于本發(fā)明的各實施例,本領(lǐng)域的普通技術(shù)人員在未作出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,均應(yīng)包含在本發(fā)明的保護范圍內(nèi)。
請參照圖I及圖2所示,其為本發(fā)明區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng)及相應(yīng)方法的具體實施例。由于現(xiàn)有的流控制方案中,對TCAM的依賴程度較高,受限于TCAM的成本及大小,很難支持較大的流表表項。于是,在本發(fā)明實施例中,主要采用哈希(Hash)表來實現(xiàn),其中, 該系統(tǒng)主要包括訪問控制列表(Access Control List, ACL) 10、大象流識別器20、大象流切換開關(guān)40、微流表33以及用于轉(zhuǎn)發(fā)普通流的二層轉(zhuǎn)發(fā)表31及三層轉(zhuǎn)發(fā)表32。其中, ACL流表10是TCAM表,大象識別器20包含了 4個哈希表(該識別器通過bloom filter算法實現(xiàn),其為本領(lǐng)域技術(shù)人員所熟知的技術(shù)),大象流切換開關(guān)40包含了一個大數(shù)組,而微流表33則是一個比較大的哈希表。
如圖2所示,在本實施例中,所述區(qū)分轉(zhuǎn)發(fā)大象流的方法,其包括如下步驟Si、設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流;其中,在優(yōu)選的實施例中,其具體過程如下首先,在ACL表里面安裝若干特征流表項;之后,一旦檢測到有流命中所述特征流表項的一種,則將該流送達到大象流識別器進行流量統(tǒng)計,該識別器會檢測該流的絕對的數(shù)據(jù)量或者每秒的數(shù)據(jù)量,若統(tǒng)計該流的流量大于特定閾值(該值由管理員根據(jù)情況設(shè)定,其為可調(diào)配的),則將當(dāng)前流確定為大象流,并通知CPU;其中,在本實施例中,所述特征流表項用于捕捉的大象流包括目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有TCP的流等。
S2、提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑;CPU在接收到大象流被捕捉的通知后,便可根據(jù)事先的配置,提取出一些關(guān)于該流的特征,在本實施例中,這些特征包括報文的IP五元組(即IP目的地址+IP源地址+ 協(xié)議號+4層目的端口 +4層源端口),之后將提取出的上述特征安裝于微流表中。當(dāng)然,在本發(fā)明其他實施例中,若想提取更復(fù)雜的特征,也可以安裝到ACL表項的前面。
此外,安裝這些特定的流表項的時候,需要指定流表項的關(guān)鍵字和該流所要走的路徑。在上述實施例中,流表項的關(guān)鍵字就是這五元組(如果是使用ACL則可以是更復(fù)雜的關(guān)鍵字組合),而路徑則可以有很多條,這個時候我們會從多條路徑中選擇一條負載最輕的或者是符合某些安全策略的路徑(稱之為最佳路徑),其中,確定最佳路徑”的步驟具體包括在多條發(fā)送路徑中分別通過計數(shù)器統(tǒng)計其負載值;芯片自動比較以獲得所述路徑中負載值最小的路徑,并將其設(shè)定為最佳路徑。
S3、查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。其中,由于報文可能同時做二、三層和微流表查找,所以需要通過大象流切換開關(guān)來選擇一個結(jié)果,換言之,對于報文原來走正常二、三層轉(zhuǎn)發(fā),現(xiàn)要切換到微流表轉(zhuǎn)發(fā),所以需要在后面通過切換開關(guān)來仲裁。
在本實施例中,為了避免報文走不同的路徑亂序(之前走正常轉(zhuǎn)發(fā),現(xiàn)在要切換到新的路徑),在需要切換路徑時,不能讓該流馬上切換到新路徑,而是通過大象流切換開關(guān)來選中流的間隙(如TCP報文的三次握手之間有間隙),并在檢測到間隙之后再進行路徑切換。其中,檢測間隙的原理如下在間隙期,該流表項是沒有報文命中它的,所以我們只需要對該流表項起一個定時器,每次有報文來的時候,就重置這個定時器,如果一段時間沒有被重置,該定時器超時了,就把該流表項標記為空閑狀態(tài),表示可以切換路徑。
此外,在本發(fā)明實施例中,大象流安裝之后,過了一段時間也許這個流就停了,需要老化掉,于是,本發(fā)明通過大象流識別器監(jiān)控大象流何時停止,若一段時間內(nèi)不再收到該流的報文,就認為這條流可以老化掉了,這時會通知CPU刪除被安裝到所述微表中的關(guān)鍵字組合。
請參照圖3所示,在本發(fā)明一實施例中,一種區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng),其包括識別單元101、安裝單元102、轉(zhuǎn)發(fā)單元103、路徑切換單元104、及老化處理單元105。
識別單元101用于設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流;其中,在本實施例中,所述特征流表項用于捕捉的大象流包括: 目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有TCP的流等。
其中,優(yōu)選地,所述識別單元101具體包括一設(shè)定單元、用于在ACL表里面安裝若干特征流表項;一捕捉處理單元、用于在檢測到有流命中所述特征流表項的一種,將該流送達到大象流識別器進行流量統(tǒng)計,若統(tǒng)計該流的流量大于特定閾值,則將當(dāng)前流確定為大象流;其中,所述特征流表項用于捕捉的大象流包括目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有TCP的流。
安裝單元102用于提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑;優(yōu)選地,所述安裝單元102具體用于在多條發(fā)送路徑中分別通過計數(shù)器統(tǒng)計其負載值;比較以獲得所述路徑中負載值最小的路徑,并將其設(shè)定為最佳路徑。
轉(zhuǎn)發(fā)單元103用于查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。
路徑切換單元104用于設(shè)置一用于檢測流的間隙的大象流切換開關(guān),以在檢測到流之間的間隙后,再進行路徑的切換;及老化處理單元105用于監(jiān)測所述大象流的停止,并在所述大象流停止后,刪除被安裝到所述微表中的關(guān)鍵字組合。
值得一提的是,文中所記載的有關(guān)區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng)的實施例中的相關(guān)具體技術(shù)細節(jié)請參文中所記載的區(qū)分轉(zhuǎn)發(fā)大象流的方法的實施例,在此,申請人不在予以贅述。
綜上所述,本發(fā)明通過捕捉出屬于大象流的流,并對大象流數(shù)據(jù)包進行區(qū)別對待, 并選擇一條最佳的轉(zhuǎn)發(fā)路徑進行大象流的轉(zhuǎn)發(fā),從而大大減低出現(xiàn)“擁塞”的可能性;并且本發(fā)明采用哈希表來實現(xiàn)較大的流表項的支持,在一定程度上,也降低了芯片的成本開銷。
以上所描述的裝置實施方式僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施方式方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
應(yīng)當(dāng)理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式僅包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個整體,各實施方式中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。
上文所列出的一系列的詳細說明僅僅是針對本發(fā)明的可行性實施方式的具體說明,它們并非用以限制本發(fā)明的保護范圍,凡未脫離本發(fā)明技藝精神所作的等效實施方式或變更均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種區(qū)分轉(zhuǎn)發(fā)大象流的方法,其特征在于,其包括如下步驟 51、設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流; 52、提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑; 53、查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述步驟SI具體包括 在ACL表里面安裝若干特征流表項; 一旦檢測到有流命中所述特征流表項的一種,則將該流送達到大象流識別器進行流量統(tǒng)計,若統(tǒng)計該流的流量大于特定閾值,則將當(dāng)前流確定為大象流; 其中,所述特征流表項用于捕捉的大象流包括目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有TCP的流。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述“確定最佳路徑”的步驟具體包括 在多條發(fā)送路徑中分別通過計數(shù)器統(tǒng)計其負載值; 比較以獲得所述路徑中負載值最小的路徑,并將其設(shè)定為最佳路徑。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,該方法還包括 設(shè)置一用于檢測流的間隙的大象流切換開關(guān),以在檢測到流之間的間隙后,再進行路徑的切換。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,該方法還包括 監(jiān)測所述大象流的停止,并在所述大象流停止后,刪除被安裝到所述微表中的關(guān)鍵字組合。
6.根據(jù)權(quán)利要求I至5任意一項所述的方法,其特征在于,所述關(guān)鍵字組合包括報文IP目的地址、IP源地址、協(xié)議號、4層目的端口以及4層源端口。
7.—種區(qū)分轉(zhuǎn)發(fā)大象流的系統(tǒng),其特征在于,其包括 識別單元、用于設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流; 安裝單元、用于提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑;及 轉(zhuǎn)發(fā)單元、用于查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述識別單元具體包括 設(shè)定單元、用于在ACL表里面安裝若干特征流表項; 捕捉處理單元、用于在檢測到有流命中所述特征流表項的一種,將該流送達到大象流識別器進行流量統(tǒng)計,若統(tǒng)計該流的流量大于特定閾值,則將當(dāng)前流確定為大象流;其中,所述特征流表項用于捕捉的大象流包括目的四層端口號為80的流,或者發(fā)送到服務(wù)器的流,或者所有TCP的流。
9.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述安裝單元具體用于 在多條發(fā)送路徑中分別通過計數(shù)器統(tǒng)計其負載值;比較以獲得所述路徑中負載值最小的路徑,并將其設(shè)定為最佳路徑。
10.根據(jù)權(quán)利要求7至9任意一項所述的系統(tǒng),其特征在于,該系統(tǒng)還包括 路徑切換單元、用于設(shè)置一用于檢測流的間隙的大象流切換開關(guān),以在檢測到流之間的間隙后,再進行路徑的切換 '及 老化處理單元、用于監(jiān)測所述大象流的停止,并在所述大象流停止后,刪除被安裝到所述微表中的關(guān)鍵字組合。
全文摘要
本發(fā)明提供一種區(qū)分轉(zhuǎn)發(fā)大象流的方法及系統(tǒng),其中,所述方法包括如下步驟S1.設(shè)定大象流的特征流表項及一用于設(shè)別大象流的大象流識別器,以捕捉屬于大象流的流;S2.提取被捕捉的流中的關(guān)鍵字組合以安裝于一微流表中,并確定轉(zhuǎn)發(fā)該數(shù)據(jù)流的最佳路徑;S3.查找所述微流表并基于所述最佳路徑轉(zhuǎn)發(fā)所述大象流,查找二層、或三層轉(zhuǎn)發(fā)表進行普通流的轉(zhuǎn)發(fā)。本發(fā)明通過捕捉出屬于大象流的流,并對大象流數(shù)據(jù)包進行區(qū)別對待,并選擇一條最佳的轉(zhuǎn)發(fā)路徑進行大象流的轉(zhuǎn)發(fā),從而大大減低出現(xiàn)“擁塞”的可能性。
文檔編號H04L12/721GK102984064SQ20121058225
公開日2013年3月20日 申請日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日
發(fā)明者張衛(wèi)峰, 方沛昱, 廖繼平 申請人:盛科網(wǎng)絡(luò)(蘇州)有限公司