Sdn數(shù)據(jù)平面帶狀態(tài)交換設備、系統(tǒng)及轉(zhuǎn)發(fā)處理方法
【技術領域】
[OOOU本發(fā)明設及互聯(lián)網(wǎng)技術領域,具體地說,設及SDN數(shù)據(jù)平面帶狀態(tài)交換設備、系統(tǒng) 及轉(zhuǎn)發(fā)處理方法。
【背景技術】
[000引 軟件定義網(wǎng)絡SDN(Software-DefinedNetworking)在2010年由美國斯坦福大學NickMcKeown教授和加州大學伯克利分校ScottShenker教授等共同提出,其出發(fā)點是通 過對網(wǎng)絡控制的抽象重新構(gòu)建一個轉(zhuǎn)發(fā)平面和控制平面分離的網(wǎng)絡體系,支持網(wǎng)絡功能的 不斷演進。
[0003] 軟件定義網(wǎng)絡將計算機體系結(jié)構(gòu)思想引入網(wǎng)絡研究領域,開放性是軟件定義網(wǎng)絡 的本質(zhì)特性。通過網(wǎng)絡設備的開放、控制平面的開放和協(xié)議實現(xiàn)的開放,使得網(wǎng)絡不再是一 個封閉的系統(tǒng),從而實現(xiàn)網(wǎng)絡體系結(jié)構(gòu)的持續(xù)演進。軟件定義網(wǎng)絡的基本思想是不應無限 制地縱容網(wǎng)絡復雜度的增加,網(wǎng)絡復雜度已經(jīng)越來越難W掌控,需要對網(wǎng)絡進行抽象,W屏 蔽底層復雜度,為上層提供簡單高效的配置與管理。SDN的基本特征有:控制與轉(zhuǎn)發(fā)分離, 控制平面與轉(zhuǎn)發(fā)平面之間的開放接口,邏輯上的集中控制。
[0004] 化enFlow協(xié)議由斯坦福大學于2008年提出?;痚nFlow的基本思想是將傳統(tǒng)網(wǎng) 絡設備中的快速報文轉(zhuǎn)發(fā)部分(數(shù)據(jù)平面)和邏輯路由決策部分(控制平面)進行分離, 數(shù)據(jù)平面駐留在網(wǎng)絡設備內(nèi)部,而控制平面則從網(wǎng)絡設備移出集中至控制服務器,雙方通 過標準化的消息接口來進行通信。同時,在數(shù)據(jù)平面設計了新的硬件形式----流表(Flow T油le),作為網(wǎng)絡設備數(shù)據(jù)平面的抽象模型,提供給外界進行使用,則外界可管控的數(shù)據(jù)平 面統(tǒng)一為FlowT油le形式;在控制平面,網(wǎng)絡設備的控制邏輯采用集中式分析、計算和運 行,通過標準化的消息方式將控制指令發(fā)送給網(wǎng)絡設備,實現(xiàn)對網(wǎng)絡設備的遠程控制,W完 成傳統(tǒng)分布式網(wǎng)絡運行模式下的基本功能,如報文接收、報文轉(zhuǎn)發(fā)、修改轉(zhuǎn)發(fā)表、獲取設備 狀態(tài)等。
[0005] 化enFlow協(xié)議數(shù)據(jù)平面"匹配+動作"的轉(zhuǎn)發(fā)處理范式雖然能夠滿足一些協(xié)議的 需求,但仍然具有較大的局限性?;痚nFlow交換機只能提供對報文的匹配處理功能,不能支 持對狀態(tài)信息的處理。在現(xiàn)有的化enFlow架構(gòu)中,狀態(tài)信息只能在控制器上處理。由于交 換機和控制器通信帶寬和控制器處理能力的瓶頸,把所有的狀態(tài)信息都在控制器上處理會 帶來性能和可擴展性的問題。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所解決的技術問題之一是在SDN數(shù)據(jù)平面實現(xiàn)對數(shù)據(jù)報文、數(shù)據(jù)流、連接 和網(wǎng)絡狀態(tài)信息的處理,解決在交換機和控制器通信帶寬和控制器處理能力存在瓶頸的條 件下,網(wǎng)絡性能受限的缺陷。
[0007] 本發(fā)明的實施例提供了一種SDN數(shù)據(jù)平面帶狀態(tài)交換設備,包括:
[000引SDN數(shù)據(jù)平面帶狀態(tài)轉(zhuǎn)發(fā)處理器,其包括為多種應用協(xié)議設置的狀態(tài)處理模塊和 策略模塊,所述狀態(tài)處理模塊用于維護數(shù)據(jù)平面數(shù)據(jù)包、數(shù)據(jù)流、連接或者網(wǎng)絡的狀態(tài),并 根據(jù)策略模塊提供的處理策略確定控制指令和報文處理指令;
[0009] 轉(zhuǎn)發(fā)引擎,其對接收的數(shù)據(jù)報文頭部進行解析,根據(jù)數(shù)據(jù)報文頭部的信息匹配轉(zhuǎn) 發(fā)表,把報文發(fā)送至對應的狀態(tài)處理模塊,并根據(jù)狀態(tài)處理模塊返回的控制指令查詢轉(zhuǎn)發(fā) 表對數(shù)據(jù)流進行轉(zhuǎn)發(fā)。
[0010] 在一個實施例中,所述轉(zhuǎn)發(fā)引擎通過一個或多個轉(zhuǎn)發(fā)表來將報文發(fā)送至相應的狀 態(tài)處理模塊,所述轉(zhuǎn)發(fā)表中設置匹配域和指令域,所述匹配域的內(nèi)容表示報文匹配區(qū)域,所 述轉(zhuǎn)發(fā)表的指令域中包括將接收的報文轉(zhuǎn)發(fā)至狀態(tài)處理模塊中狀態(tài)表的控制指令。
[0011] 在一個實施例中,所述狀態(tài)處理模塊中包括為多種應用協(xié)議設置的狀態(tài)表,所述 策略模塊中設置與狀態(tài)表對應的狀態(tài)轉(zhuǎn)移策略表.
[0012] 所述狀態(tài)處理模炔基于數(shù)據(jù)平面發(fā)生的事件和當前狀態(tài)查詢狀態(tài)轉(zhuǎn)移策略表,根 據(jù)所述狀態(tài)轉(zhuǎn)移策略表確定狀態(tài)表操作指令,更新所述狀態(tài)表中數(shù)據(jù)包、數(shù)據(jù)流、連接或者 網(wǎng)絡的狀態(tài)信息,并確定相應的控制指令和報文處理指令。
[0013] 在一個實施例中,所述轉(zhuǎn)發(fā)引擎將報文并行發(fā)送至狀態(tài)處理模塊中的多個狀態(tài) 表,對多個狀態(tài)表返回的有沖突的指令進行仲裁后執(zhí)行。
[0014] 在一個實施例中,所述轉(zhuǎn)發(fā)引擎可W支持將報文串行發(fā)送至狀態(tài)處理模塊中的各 個狀態(tài)表,依次進行狀態(tài)更新和指令執(zhí)行。
[0015] 本發(fā)明的實施例還提供一種SDN交換系統(tǒng),包括SDN控制器和如上文所述的SDN數(shù)據(jù)平面帶狀態(tài)交換設備,所述SDN控制器中設置協(xié)議過濾表;
[0016] 其中,在轉(zhuǎn)發(fā)引擎根據(jù)數(shù)據(jù)報文頭部的信息匹配轉(zhuǎn)發(fā)表未成功的情況下,SDN交換 設備將該報文發(fā)送至其SDN控制器,SDN控制器匹配所述協(xié)議過濾表來識別該數(shù)據(jù)流屬于 哪一種應用協(xié)議,并向轉(zhuǎn)發(fā)表下發(fā)相應的轉(zhuǎn)發(fā)表項。
[0017] 在一個實施例中,所述協(xié)議過濾表中設置匹配域和協(xié)議域,所述協(xié)議過濾表中匹 配域的內(nèi)容表示針對應用協(xié)議的報文匹配區(qū)域,所述協(xié)議域的內(nèi)容表示報文的協(xié)議。
[0018] 本發(fā)明的實施例還提供一種SDN數(shù)據(jù)平面帶狀態(tài)轉(zhuǎn)發(fā)處理方法,包括W下步驟:
[0019] 轉(zhuǎn)發(fā)引擎對接收的報文進行解析并發(fā)送至SDN數(shù)據(jù)平面帶狀態(tài)轉(zhuǎn)發(fā)處理器中相 應的狀態(tài)處理模塊;
[0020] 狀態(tài)處理模炔基于接收的報文匹配狀態(tài)表,查詢策略模塊中的狀態(tài)轉(zhuǎn)移策略表, 根據(jù)狀態(tài)轉(zhuǎn)移策略表確定數(shù)據(jù)包、數(shù)據(jù)流、連接或者網(wǎng)絡的下一狀態(tài)、相應的控制指令和報 文處理指令;
[0021] 狀態(tài)處理模塊更新所述狀態(tài)表中數(shù)據(jù)包、數(shù)據(jù)流、連接或者網(wǎng)絡的狀態(tài)信息,根據(jù) 所述報文處理指令對數(shù)據(jù)流或者數(shù)據(jù)包進行處理;
[0022] 轉(zhuǎn)發(fā)引擎查詢轉(zhuǎn)發(fā)表對數(shù)據(jù)流進行轉(zhuǎn)發(fā)。
[0023] 在一個實施例中,所述轉(zhuǎn)發(fā)引擎對接收的報文進行解析并發(fā)送的步驟包括:
[0024] 轉(zhuǎn)發(fā)引擎根據(jù)數(shù)據(jù)報文頭部的信息匹配轉(zhuǎn)發(fā)表;
[0025] 在匹配成功的情況下,轉(zhuǎn)發(fā)引擎根據(jù)轉(zhuǎn)發(fā)表項的控制指令將報文轉(zhuǎn)發(fā)至相應的狀 態(tài)處理模塊;
[0026] 在匹配未成功的情況下,轉(zhuǎn)發(fā)引擎將到達數(shù)據(jù)流的首包上傳至SDN控制器,由SDN控制器向轉(zhuǎn)發(fā)表下發(fā)新的轉(zhuǎn)發(fā)表項。
[0027] 在一個實施例中,還包括初始化步驟;
[002引 SDN控制器下發(fā)初始化命令預先配置所述狀態(tài)表中的匹配域;
[0029] SDN控制器下發(fā)初始化命令預先配置所述狀態(tài)轉(zhuǎn)移策略表中的當前狀態(tài)域、事件 域、下一狀態(tài)域和策略表指令域的值,構(gòu)建與應用協(xié)議相應的有限狀態(tài)機。
[0030] 本發(fā)明能夠在SDN數(shù)據(jù)平面處理數(shù)據(jù)報文、數(shù)據(jù)流、連接和網(wǎng)絡狀態(tài)信息。其中, 轉(zhuǎn)發(fā)處理器FP能夠通過狀態(tài)表ST查詢和存儲數(shù)據(jù)流或者報文的狀態(tài)信息,對到達的事件 (包括到達的報文或SDN控制器下發(fā)的配置信息)作出相應的處理。SDN控制器對轉(zhuǎn)發(fā)處 理器FP擁有完全控制權。
[0031] 轉(zhuǎn)發(fā)處理器FP提供可編程接口,可W靈活擴展報文處理動作,實現(xiàn)對報文頭部或 負載的處理,支持對報文4至7層信息的處理,進一步增強數(shù)據(jù)平面的可編程性。
[0032] 本發(fā)明的實施例能夠根據(jù)應用靈活設定匹配域、靈活擴展報文處理方式。在SDN 控制器中設置協(xié)議過濾表,識別報文屬于哪一種協(xié)議。根據(jù)不用的應用協(xié)議分別設定狀態(tài) 表的匹配域。SDN控制器根據(jù)不同的應用協(xié)議通過初始化指令配置狀態(tài)轉(zhuǎn)移策略表,預先設 定數(shù)據(jù)平面狀態(tài)轉(zhuǎn)移的有限狀態(tài)機和相關指令。
[0033] 本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權利 要求書W及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【附圖說明】