一種基于多重分類器對數據包進行流量分類的sdn控制器的制造方法
【專利摘要】本發明公開了一種基于多重分類器對數據包進行流量分類的SDN控制器,是指一種在多核處理器環境中,在現有SDN控制器上設置了多重分類器,依據多重分類器對數據包進行流量分類的應用程序的任務分配。本方法實現了將控制器應用與控制器自身邏輯的分離。能夠克服現有方法在使用多核處理器作為SDN控制器時,直接在控制器中運行流量分類應用所導致的控制器資源消耗過大、并行加速比不高、編程不夠靈活的問題。提高了處理器資源利用率和控制器吞吐量,簡化了控制器應用程序編程。
【專利說明】一種基于多重分類器對數據包進行流量分類的SDN控制器
【技術領域】
[0001] 本發明涉及一種SDN控制器,更特別地說,是指一種在多核處理器環境中,在現有SDN控制器上設置了多重分類器,依據多重分類器對數據包進行流量分類的應用程序的任 務分配。
【背景技術】
[0002] 2013年9月第1次印刷,電子工業出版社,《SDN核心技術剖析和實戰指南》雷葆 華等編著。在第15頁圖1-6公開的SDN核心技術體系圖中(記為圖1),介紹了在SDN架構 的不同層及其技術。其目標是有效地分離控制層面與轉發層面,支持邏輯上集中化的統一 控制,提供靈活的開發接口等。其中,控制層是整個SDN的核心,系統中的南向接口與北向 接口也是以它為中心進行命名的。轉發層面通過一個Packet_in消息將數據包(Packet, 也稱為報文)發送給控制層面。SDN(SofewareDefinedNetworking,軟件定義網絡)是一 種新興的基于軟件的網絡架構及技術,其最大的特點在于具有松耦合的控制平面與數據平 面、支持集中化的網絡狀態控制、實現底層網絡設施對上層應用的透明。正如SDN的名字所 言,它具有靈活的軟件編程能力,使得網絡的自動化管理和控制能力獲得了空前的提升,能 夠有效地解決當前網絡系統所要面臨的資源規模擴展受限、組網靈活性差、難以滿足業務 快速變化的需求等問題。
[0003] OpenFlow是一種新提出的網絡架構,OpenFlow交換機將原來完全由交換機/路 由器控制的報文轉發過程轉化為由OpenFlow交換機(OpenFlowSwitch)和控制服務器 (Controller)來共同完成,從而實現了數據轉發和路由控制的分離。控制器可以通過事先 規定好的接口操作來控制OpenFlow交換機中的流表,從而達到控制數據轉發的目的。結合 SDN/OpenFlow的特性,應用識別變得更加重要。從網絡流量中識別一個應用的名字或者類 型正變得越來越重要。
[0004] 作為控制與轉發相分離的結果,SDN交換機僅僅具有簡單的查詢與轉發功能,而整 個網絡的控制邏輯都需要通過SDN網絡中的關鍵部分--SDN控制器來完成,作為整個SDN 網絡中的核心,SDN控制器需要處理所有來自其下方SDN交換機的數據包數據,其負載隨著 網絡規模的增大而迅速增大。
[0005] 網絡流量分類(NetworkTrafficClassification)是指將混合有各種應用的流 量,按產生這些流量的應用協議進行分類。當進行二類分類時往往又可稱為網絡協議檢測 或網絡協議鑒別。網絡流量分類技術在現代網絡安全和管理方面起著很重要的作用。網絡 流量不僅數據量迅速增加,而且類型也不斷增多,如何在新型的SDN網絡架構下快速對網 絡流量進行快速的識別與分類成為一個重要課題。
[0006] 而為了識別進入SDN/OpenFlow控制器的網絡流量以便對其進行正確的處理,識 別的方法一般有基于標準端口匹配、基于深度包檢測、基于協議解析和基于統計學習算法。 各種方法有其自身的優點、缺陷和適用范圍。參考2013年10月第1版《網絡流量分類方 法與實踐》,汪立東、錢麗萍主編。上述的網絡流量分類方法均有占用計算資源多,作為整個 SDN/OpenFlow控制器的核心部分,SDN/OpenFlow控制器本身就需要處理大量的來自SDN交 換機的Packet_in數據包,因而通過傳統的方式在SDN/OpenFlow控制器上添加網絡流量分 類的應用,會消耗大量控制器本身有限的珍貴計算資源,從而降低了SDN/OpenFlow控制器 的性能。
【發明內容】
[0007] 為了解決網絡流量分類在SDN/OpenFlow控制器中占用過多控制器資源,本發明 采用將網絡流量分類應用以獨立進程的方式部署在SDN/OpenFlow控制器的不同處理器核 CPU-C上。網絡流量分類應用采用并行的方式對進入的流Flow進行本發明的基于多重分類 器的分類處理,同時,網絡流量分類應用可以采用不同的流量分類方法,包括但不限于基于 深度包檢測流量分類方法和基于K-均值聚類的分類方法。
[0008] 在本發明中,SDN/OpenFlow控制器是在現有SDN控制器中增加了去消息頭模塊、 五元組哈希值提取模塊和基于多重分類器的流連接分配模塊。
[0009] 去消息頭模塊用于去除Packet_In數據包中的OpenFlow協議頭,得到Packet_In 數據包的五元組內容。
[0010] 五元組哈希值提取模塊用于對所述五元組內容進行哈希值計算,得到五元組哈希 值;然后根據所述五元組哈希值拾取得到流、及流對應的流連接。
[0011] 基于多重分類器的流連接分配模塊依據流的流連接進行不同分類器的分配,從而 得到任意一條流匹配的網絡流量分類及網絡流量分類對應的處理器核CPU-C。
[0012] 在本發明中,一種網絡流量分類對應一個處理器核CPU-C。一個SDN/OpenFlow控 制器上有多個處理器核CPU-C。
[0013] 當一個數據包進入OpenFlow交換機時,交換機將對其通過OpenFlow協議打包 成一個Packet_In數據包發送給SDN/OpenFlow控制器;在SDN/OpenFlow控制器接收到 Packet_In數據包后,交由多重分類器模塊;多重分類器根據其流的五元組哈希值將其交 給不同的流量分類應用,流量分類應用對其分類后將獲取到的流一類別信息。本發明通過 在SDN/OpenFlow控制器中部署應用層多重分類器的方式,使全網都具備了對流量的應用 層信息,從而實現了對全網統一的流量分類結果及在全網所有OpenFlow交換機上進行應 用程流量管理。
[0014] 本發明基于多重分類器對數據包進行流量分類的SDN控制器與傳統SDN控制器相 比,具有如下優點:
[0015] 1SDN/OpenFlow控制器的應用程序部署在不同的處理器核上,相比于將應用程序 部署在SDN控制器本身上,能大大降低SDN/OpenFlow控制器本身的開銷的同時實現了基于 SDN/OpenFlow控制器的應用層流量分類。
[0016] 2本發明能充分利用SDN/OpenFlow控制器的多核處理器,及處理器核眾多的優 勢,提高多核處理器資源利用率。
[0017] 3同一種應用程序能在不同的處理器核上部署多份,并行執行,能大大提高數據 包網絡流量分類的效率。
[0018] 4SDN/OpenFlow控制器應用程序的實現無需SDN控制器本身的運行環境,可以作 為一個與SDN控制器相同等級的操作系統上的進程實體,編程更加靈活、自由,移植更加方 便。
【專利附圖】
【附圖說明】
[0019] 圖1是傳統的SDN控制器的體系結構圖。
[0020] 圖2是本發明基于多重分類器對數據包進行流量分類的SDN控制器的結構框圖。
[0021] 圖3是本發明基于多重分類器對數據包進行流量分類的流程圖。
【具體實施方式】
[0022] 下面將結合附圖對本發明做進一步的詳細說明。
[0023] 本發明提出了一種多核處理器平臺下的SDN控制器對網絡流量的任務分配,所述 的SDN控制器采用了OpenFlow網絡架構,即稱為SDN/OpenFlow控制器;所述SDN/OpenFlow 控制器有多個處理器核CPU-Core= {CPU-CK,CPU-CDPI,CPU-CQ},每個處理器核上可以運行 一個應用層分類程序或者不運行任何應用層分類程序。在本發明中,網絡流量分類應用可 以采用不同的流量分類方法,包括但不限于基于深度包檢測OeepPacketInspection,簡 稱為DPI)流量分類方法和基于K-均值聚類的分類方法。
[0024] 在本發明中,運行K-均值聚類的流量分類方法的處理器核記為
【權利要求】
1. 一種基于多重分類器對數據包進行流量分類的SDN控制器,其特征在于:SDN/ OpenFlow控制器是在現有SDN控制器中增加了去消息頭模塊、五元組哈希值提取模塊和基 于多重分類器的流連接分配模塊; 去消息頭模塊用于去除Packet_In數據包中的OpenFlow協議頭,得到Packet_In數 據包的五元組內容;接收到的OFPAK協議數據包OFPAK ={ (head, Op1),(head, op2),… ,(head, opz)}進行去除OpenFlow協議頭head,得到原始數據包OP= Iop1, ορ2, "·,ορζ};五 元組內容 OPz= {srcPort, dstPort, tran, srcIP, dstIP}; 五元組哈希值提取模塊用于對原始數據包OP = Iop1, 〇P2,…,〇Pz}中每個五元組內容 Opz= {srcPort, dstPort, tran, srcIP, dstIP}進行哈希值計算,得到五元組哈希值HC = Oic1, hc2,…,hcB};然后根據所述五元組哈希值HC = Oic1, hc2,…,hcB}拾取得到流、及流對 應的流連接CT = Ict1, Ct2,…,ctB}; 基于多重分類器的流連接分配模塊依據流的流連接CT = Ict1, ct2,…,ctB}進行不同 分類器的分配,從而得到任意一條流匹配的網絡流量分類及網絡流量分類對應的處理器核 CPU-C0
2. 根據權利要求1所述的基于多重分類器對數據包進行流量分類的SDN控制器,其特 征在于:一種網絡流量分類對應一個處理器核CPU-C。一個SDN/OpenFlow控制器上有多個 處理器核CPU-C。
3. 根據權利要求1所述的基于多重分類器對數據包進行流量分類的SDN控制器,其 特征在于:應用MD5法計算出流連接CT = Ict1, Ct2,…,ctB}中的每一條流連接的哈希值 HC = Oic1, hc2,…,hcB};任意一條流連接的哈希值hcBS 32位整形數;根據所述的HC = Oic1, hc2,…,hcB}來分配流連接CT = Ict1, ct2,…,ctB}所對應的處理器核CPU-Core = {CPU-CK,CPU-Cdpi, CPU-CQ},從而得到流連接所屬的應用層分類程序AP = {aPl,ap2,…,apD}。
【文檔編號】H04L12/801GK104518984SQ201410811205
【公開日】2015年4月15日 申請日期:2014年12月22日 優先權日:2014年12月22日
【發明者】李云春, 李靖軒 申請人:北京航空航天大學