一種基于普通交換芯片的OpenFlow多級流表的實現方法【
技術領域:
】[0001]本發明涉及數據通信領域,特別涉及一種基于普通交換芯片的OpenFlow多級流表的實現方法。【
背景技術:
】[0002]隨著數據通信設備的復雜程度不斷提高,云計算及其業務的發展,服務器的應用需求產生了爆炸性的增長,隨著社交網絡,移動互聯網,物聯網等業務領域的快速發展,大數據正日益成為當前的焦點,其面向的海量數據處理也對當今的網絡提出了更高的要求。傳統的網絡架構已經不能夠滿足今天的企業,運營商和終端用戶的需求。【
發明內容】[0003]鑒于上述技術問題,本發明的目的在于提供一種基于普通交換芯片的OpenFlow多級流表的實現方法,以滿足現有網絡對數據通信處理的要求。[0004]為了達到上述目的,本發明采用如下的技術方案:[0005]一種基于普通交換芯片的OpenFlow多級流表的實現方法,該方法由網絡設備維護一個或者若干個多級流表(FlowTable),并且數據流只按照這些流表進行轉發,所述流表由一些關鍵字和執行動作組成的靈活規則,并且每個關鍵字字段都是可以通配的,流表本身的生成、維護、下發完全由外置的控制器(Controller)來管理。[0006]優選的,所述多級流表(FlowTable)的下發可以是主動的,也可以是被動的,在主動模式下,控制器(Controller)將自己收集的流表信息主動下發給網絡設備,隨后網絡設備可以直接根據流表進行轉發;在被動模式下,網絡設備收到一個報文沒有匹配的流表(FlowTable)記錄時,將該報文轉發給控制器(Controller),由控制器(Controller)進行決策該如何轉發,并下發相應的流表。[0007]優選的,所述多級流表(FlowTable)里設有pipeline管道,基于該pipeline管道形成報文處理流水線,整個處理流程在報文入方向有32個匹配階段(MatchStage),同時在報文出方向有32個匹配階段(MatchStage)。[0008]優選的,所述pipeline管道基于以下三個步驟來實現:[0009]a)找到對應流表中最高優先級的匹配項;[0010]b)將匹配項中的指令(instruct1ns)應用到packet、match、act1n上,并更新對應流表中的動作信息;[0011]C)將報文中的匹配項和動作集送往多級流表中的下一個表(table)。如果沒有在多級流表的所有的表(table)中匹配,那么有多種默認行為可以實現,如丟包、繼續下一個表、發往controller。[0012]優選的,所述流表由流量實體(FlowEntry)組成,一個流表中包含多個流表項。[0013]優選的,所述流表流表項包括匹配字段(MatchFields)、計數器和指令集三個部分,所述匹配字段(MatchFields)是報文匹配的輸入關鍵字,計數器是管理所需,指令集是決定報文如何轉發,最基本的轉發行為包括轉發給某個端口、封裝改寫報文后轉發以及丟棄。[0014]優選的,所述流表項通過匹配字段和優先級決定,在一個流表中匹配字段和優先級共同確定唯一的流表項,其中所有字段通配和優先級等于O的流表項為table-miss流表項,所述table-miss表項指定在流表中如何處理與其他流表項未匹配的數據包。[0015]優選的,在進行流表項匹配時,優先級最高的流表項必須被選擇,此時與選擇流表項相關的計數器也會被更新,選定流表項的指令集也被執行。[0016]優選的,對于table-miss表項,默認情況下,在流表中不存在table-miss表項,控制器可以在任何時候添加或刪除它,而且它可能會超時失效,able-miss表項可以匹配流表中其他表項中不能匹配的數據,當數據包與table-miss表項匹配時,table-miss表項指令就會執行,如果該table-miss表項直接將數據包通過CONTROLLER端口發送到控制器,那么報文中的信息必須與一個table-miss表項匹配;如果該table-miss表項不存在,默認情況下,流表項無法將數據包丟棄。[0017]優選的,所述多級流表(FlowTable)按順序編號,從O開始,據此構成的流水線處理總是從第一流表開始,數據包第一個與流表O的流表項匹配,其它流表根據第一個表的匹配結果來調用。[0018]優選的,所述流表進行處理時,將數據包與流表中的流表項進行匹配,從而選擇流表項,如果匹配到了流表項,那么包括在該流表項的指令集被執行時,這些指令可能明確指導數據包傳遞到另一個流表,在那里同樣的處理被重復執行。[0019]優選的,數據包與流表中的流表項進行匹配時,從數據包中提取相應的數據包匹配字段,利用該數據包匹配字段基于流水線處理進行表查找,該數據包匹配字段依賴于數據包類型,該類型包括各種數據包的報頭字段;數據包匹配字段中的值用于查找匹配的流表項,如果流表項字段具有值的ANY(表示任意字段),則可以匹配報頭中的所有可能的值;如果相應的交換機支持任意的位掩碼對特定的匹配字段,這些掩碼可以更精確地進行匹配。[0020]優選的,除了通過數據包報頭字段進行匹配,也可以通過入口端口和元數據字段進行匹配。[0021]優選的,流表項只能指導數據包到大于自己表號的流表,如果匹配的流表項并沒有指導數據包到另一個流表,流水線處理將停止在該表中,當流水線處理停止,數據包被與之相關的行動集處理并通常被轉發;如果數據包在流表中沒有匹配到流表項,這是一個table-miss的行為,table-miss行為依賴于表的配置。[0022]優選的,所述流表項可以通過控制器的請求或交換機流超時機制在流表中刪除。[0023]本發明提供的OpenFlow的多級流表實現方案可以集中控制多廠商的環境,通過自動化減少復雜性,更高的創新,提高網絡的可靠性和安全性,更細粒度的網絡控制,以及更好的用戶體驗。[0024]本方案基于遠程控制端Controller和OpenFlow多級流表實現,可以滿足現有網絡的需求,對于網絡,邏輯上集中的控制層面能夠支持網絡資源的靈活調度,開放的接口能夠支持網絡能力的按需調度,標準的統一能夠實現網絡的虛擬透明。其能夠有力的為云計算,大數據,日益增長的移動互聯需求提供更高效,安全,方便的網絡支持。【附圖說明】[0025]以下結合附圖和【具體實施方式】來進一步說明本發明。[0026]圖1為本發明方法中OpenFlow概念圖。[0027]圖2為本發明方法中OpenFlow流表結構。[0028]圖3為本發明方法中OpenFlow流水線流表結構。[0029]圖4為本發明方法中OpenFlow多級流表匹配流程。[0030]圖5為本發明方法中OpenFlow多級流表處理流程。【具體實施方式】[0031]為了使本發明實現的技術手段、創作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發明。[0032]參見圖1,本發明提供的基于普通交換芯片實現的OpenFl當前第1頁1 2 3 4