本發(fā)明涉及sdn
技術(shù)領域:
,具體為一種基于sdn架構(gòu)的流量管理系統(tǒng)及方法。
背景技術(shù):
:軟件定義網(wǎng)絡sdn(software-definednetworking)作為一種新型的網(wǎng)絡架構(gòu),將控制功能從各個交換機中抽離出來,集中到控制器,便于通過編程實現(xiàn)對交換機的靈活配置,提高了網(wǎng)絡管理的效率。sdn還支持一組應用程序編程接口api(applicationprograminginterface),用于支持和兼容常見的網(wǎng)絡服務,例如:路由器功能、ip多播、網(wǎng)絡安全、網(wǎng)絡訪問控制、網(wǎng)絡帶寬管理、網(wǎng)絡流量工程、網(wǎng)絡服務質(zhì)量和存儲優(yōu)化等,使得用戶能根據(jù)業(yè)務需求進行靈活裁剪,快速滿足業(yè)務需求變化。目前,sdn技術(shù)已經(jīng)在校園網(wǎng)、企業(yè)網(wǎng)、數(shù)據(jù)中心網(wǎng)絡等領域獲得了成功應用。在現(xiàn)有的sdn網(wǎng)絡架構(gòu)中,控制器負責維護監(jiān)控全網(wǎng)信息,例如網(wǎng)絡拓撲,網(wǎng)絡資源等,進而依據(jù)數(shù)據(jù)包的管理策略生成響應的處理規(guī)則,即流表項,并將這些流表項下發(fā)到交換機中,交換機將這些流表項添加至流表,其中,流表包括多個流表向,每個流表項包括匹配域、計數(shù)器、計時器和動作集。交換機不斷從端口獲取數(shù)據(jù)包,從數(shù)據(jù)包中提取相應的字段作為匹配字段,將提取出的匹配字段與所述流表項中匹配與中的匹配項進行匹配。匹配成功則按照該流表項中的動作集對數(shù)據(jù)包進行處理,例如轉(zhuǎn)發(fā)、丟棄等動作;而匹配失敗則將該數(shù)據(jù)包封裝成流表項請求消息發(fā)送給控制器,用于請求相應的流表項??刂破鹘邮樟鞅眄椪埱笙⒉⑻幚砗笙掳l(fā)相應的流表項,交換機接收到該流表項并將其增加到流表中,隨后,控制器下發(fā)封裝該數(shù)據(jù)包和處理該數(shù)據(jù)包的規(guī)則的消息至交換機。其中,處理該數(shù)據(jù)包的規(guī)則與控制器下發(fā)的流表項中的動作集相同,交換機接收到該消息后對該數(shù)據(jù)包進行相應處理。所有匹配失敗的數(shù)據(jù)包的流表項請求消息在由交換機生成并發(fā)送給控制器以及控制器處理這些消息的順序都按照先入先出隊列fifo(firstinputfirstoutput)的順序進行,當流表項請求消息達到一定規(guī)模時,后到的流表項請求消息需要等待較長時間才能被處理,使得該后到的流表項請求消息所對應的數(shù)據(jù)包被丟棄的概率被大大提高。但是,當前sdn中的業(yè)務存在不同延遲需求,例如高延時敏感性低數(shù)據(jù)量的數(shù)據(jù)包更期望被及時處理,現(xiàn)有的sdn不能滿足這種要求。為了解決上述技術(shù)問題,申請公布號cn105553880a,申請公布日2016年05月04日的發(fā)明專利申請公開了一種應用于交換機的軟件定義網(wǎng)絡中的數(shù)據(jù)處理方法及裝置。包括:在接收到目標數(shù)據(jù)包后,判斷目標數(shù)據(jù)包是否與當前所存在的流表匹配,如果不匹配,將目標數(shù)據(jù)包封裝成目標流表項請求消息;在預設的業(yè)務優(yōu)先表中確定所述目標數(shù)據(jù)包所對應的目標業(yè)務優(yōu)先級表項;為所述目標流表項請求消息設置優(yōu)先級標簽,并將所述帶標簽的目標流表項請求消息存放至預先構(gòu)建的第一類優(yōu)先級緩存隊列;將位于所述第一類優(yōu)先級隊列中的帶標簽的目標流表項請求發(fā)送至所述控制器;將目標流表象添加到流表中,并按照處理該目標數(shù)據(jù)包的規(guī)則處理目標數(shù)據(jù)包。使得需要被盡早處理的數(shù)據(jù)包能夠及時接入網(wǎng)絡并得到處理。但是,如果送往sdn控制器的諸如上述目標流表項請求消息不加以控制,當網(wǎng)絡被攻擊的時候,sdn控制器將會受到很大的沖擊,高優(yōu)先級的協(xié)議報文將被丟棄。技術(shù)實現(xiàn)要素:為了解決上述問題,本發(fā)明為交換機和控制器之間的每種報文都分配一個優(yōu)先等級,通過該優(yōu)先等級可以設置報文上送至控制器的速率;同時每個優(yōu)先等級的報文都被放入相應的隊列,對每個隊列也進行相應的限速,確保每個隊列送往控制器的報文不會超出正常的應用要求。同時,在控制器的接收側(cè),也對所有的報文進行流量整形,保證控制器不會因為報文的沖擊而出現(xiàn)異常。一種流量管理系統(tǒng),包括控制器和交換機,其特征在于:所述控制器包括用于存儲報文的控制器處理隊列,以及用于處理所述控制器處理隊列中的所述報文的處理模塊,所述控制器處理隊列包括第一處理隊列和第二處理隊列,所述第一處理隊列和所述第二處理隊列的最高傳輸速率不同;所述交換機包括用于存儲所述報文的交換機發(fā)送隊列,以及用于發(fā)送所述交換機發(fā)送隊列中的所述報文的發(fā)送模塊,所述交換機發(fā)送隊列包括第一發(fā)送隊列和第二發(fā)送隊列,所述第一發(fā)送隊列和所述第二發(fā)送隊列的最高傳輸速率不同。作為優(yōu)選,所述控制器包括限流策略表,所述控制器根據(jù)所述限流策略表確定下發(fā)至交換機的流表項,所述控制器根據(jù)所述限流策略表將所述報文分配至所述控制器處理隊列,所述交換機根據(jù)所述流表項將所述報文分配至所述交換機發(fā)送隊列;所述限流策略表包括報文類型信息、與所述報文類型信息對應的優(yōu)先級信息、與所述優(yōu)先級信息對應的控制器處理隊列信息、以及所述控制器處理隊列的最高傳輸速率信息;所述流表項包括所述報文類型信息、與所述報文類型對應的優(yōu)先級信息、與所述優(yōu)先級信息對應的交換機發(fā)送隊列信息、以及所述交換機發(fā)送隊列的最高傳輸速率信息。作為優(yōu)選,所述控制器包括控制器報文類型提取模塊和控制器報文分配模塊,所述控制器報文類型提取模塊提取所述報文的報文類型信息,所述控制器報文分配模塊在流表中查找與所述報文類型信息對應的控制器處理隊列信息,并將所述報文存儲至所述控制器處理隊列信息對應的所述控制器處理隊列中。作為優(yōu)選,所述交換機包括交換機報文類型提取模塊和交換機報文分配模塊,所述交換機報文類型提取模塊提取所述報文的報文類型信息,所述交換機報文分配模塊根據(jù)所述報文類型信息在限流策略表中查找與所述報文類型信息對應的交換機發(fā)送隊列信息,并將所述報文存儲至與所述交換機發(fā)送隊列信息對應的交換機發(fā)送隊列中。作為優(yōu)選,所述報文包括控制協(xié)議報文、數(shù)據(jù)協(xié)議報文、維護協(xié)議報文、交互協(xié)議報文以及擴展協(xié)議報文。作為優(yōu)選,所述交換機包括端口報文匹配模塊,所述端口報文匹配模塊將來自交換端的端口報文與所述流表匹配,并且根據(jù)匹配失敗的所述端口報文生成所述數(shù)據(jù)協(xié)議報文并存儲至所述第一發(fā)送隊列中,所述發(fā)送隊列的最高傳輸速率最大。本發(fā)明還提供一種流量管理方法,適用于對交換機和控制器之間的控制報文流量管理,其特征在于,包括步驟:步驟s1,交換機上報報文,并且根據(jù)所述報文的報文類型信息限制所述交換機報文的上報速率;步驟s2,控制器接收所述報文,并且根據(jù)所述報文的報文類型信息限制所述報文的處理速度。作為優(yōu)選,所述控制器根據(jù)限流策略表確定下發(fā)至交換機的流表項;所述控制器根據(jù)所述限流策略表將所述報文分配至所述控制器處理隊列,所述交換機根據(jù)所述流表項將所述報文分配至所述交換機發(fā)送隊列;所述限流策略表包括報文類型信息、與所述報文類型信息對應的優(yōu)先級信息、與所述優(yōu)先級信息對應的控制器處理隊列信息、以及所述控制器處理隊列的最高傳輸速率信息;所述流表項包括所述報文類型信息、與所述報文類型對應的優(yōu)先級信息、與所述優(yōu)先級信息對應的交換機發(fā)送隊列信息、以及所述交換機發(fā)送隊列的最高傳輸速率信息。作為優(yōu)選,所述步驟s1包括:步驟s1-1,根據(jù)所述報文類型信息確定所述報文的優(yōu)先等級;步驟s1-2,根據(jù)所述優(yōu)先等級將所述報文存儲至與其對應的交換機發(fā)送隊列中;所述交換機發(fā)送隊列包括第一發(fā)送隊列和第二發(fā)送隊列,所述第一發(fā)送隊列和所述第二發(fā)送隊列的最高傳輸速率不同。作為優(yōu)選,所述步驟s2包括:步驟s2-1,根據(jù)所述報文類型信息確定所述報文的優(yōu)先等級;步驟s2-2,根據(jù)所述優(yōu)先等級將所述報文存儲至與其對應的控制器處理隊列中;所述控制器處理隊列包括第一處理隊列和第二處理隊列,所述第一處理隊列和所述第二處理隊列的最高傳輸速率不同。附圖說明圖1是本發(fā)明實施例的系統(tǒng)圖;圖2是本發(fā)明實施例的交換機的報文上報流程圖;圖3是本發(fā)明實施例的sdn’控制器的處理流程圖。具體實施方式以下是本發(fā)明的具體實施例并結(jié)合附圖,對本發(fā)明的技術(shù)方案作進一步的描述,但本發(fā)明并不限于這些實施例。實施例一以下具體實施例僅僅是對本發(fā)明的解釋,其并不是對本發(fā)明的限制,本領域技術(shù)人員在閱讀完本說明書后可以根據(jù)需要對本實施例做出沒有創(chuàng)造性貢獻的修改,但只要在本發(fā)明的權(quán)利要求范圍內(nèi)都受到專利法的保護。實施例一如圖1,一種流量管理系統(tǒng),包括sdn控制器和交換機(s0、s1、s2、s3)。sdn控制器負責維護監(jiān)控全網(wǎng)信息,如網(wǎng)絡拓撲,網(wǎng)絡資源等;交換機負責接收并轉(zhuǎn)發(fā)來自端口的端口報文,實現(xiàn)客戶端a、客戶端b和服務器端的數(shù)據(jù)傳輸。sdn控制器依據(jù)對端口報文的管理策略生成相應的處理規(guī)則通過協(xié)議報文發(fā)送至交換機。交換機發(fā)送協(xié)議報文至sdn控制器以響應sdn控制器,或者將sdn控制器的協(xié)議報文中的流表項信息添加至流表。,每個流表項包括匹配域、計數(shù)器、計時器和動作機集,交換機則根據(jù)其流表對報文進行控制。sdn控制器包括用于存儲報文的控制器處理隊列,以及用于處理控制器處理隊列中的報文的處理模塊。其中控制器處理隊列總共包括8條基于硬件的、分別具有不同的最高傳輸速率的處理隊列,如下表:控制器處理隊列優(yōu)先等級最高傳輸速率(單位pps)第一處理隊列7(高)不限速第二處理隊列6(中)6000pps第三處理隊列5(中)5000pps第四處理隊列4(中)4000pps第五處理隊列3(低)3000pps第六處理隊列2(低)2000pps第七處理隊列1(低)1000pps第八處理隊列0(低)500pps表1控制器處理隊列優(yōu)先等級從0-7。7的優(yōu)先等級最高,其對應的第一處理隊列的傳輸速率最快,能夠優(yōu)先快速發(fā)送到sdn控制器的處理模塊。0的優(yōu)先等級最低,其對應的第八處理隊列的傳輸速率最慢。sdn控制器還包括可由用戶靜態(tài)修改配置的限流策略表,sdn控制器根據(jù)限流策略表確定下發(fā)至交換機的流表項。如表2,限流策略表包括報文類型信息、與報文類型信息對應的優(yōu)先級信息、與優(yōu)先級信息對應的控制器處理隊列信息、以及控制器處理隊列的最高傳輸速率信息。其中,sdn控制器與交換機之間的報文包括:控制協(xié)議報文(如featurse報文、modify-state報文等)、數(shù)據(jù)協(xié)議報文(即packet-in報文和packet-out報文)、維護協(xié)議報文(如barrier報文、role-request報文)、交互協(xié)議報文(hello報文和echo報文)、以及擴展協(xié)議報文(experimenter報文)。sdn控制器包括控制器報文類型提取模塊和控制器報文分配模塊。控制器報文類型提取模塊提取待處理報文的報文類型信息,控制器報文分配模塊將由控制器報文類型提取模塊提取的報文類型信息與限流策略表中的報文類型信息進行匹配,查找該待處理報文對應的優(yōu)先等級,并將其存放至與該優(yōu)先等級對應的控制器處理隊列中。優(yōu)先等級高的待處理報文,如控制協(xié)議報文configuration,被存儲至不限速的第七處理隊列中,能夠以最快的速度被sdn控制器的處理模塊處理。優(yōu)先等級低的待處理報文,如維護協(xié)議報文features發(fā)送頻率低,延時敏感性低,被存儲至最高傳輸速率為1000pps的第七處理隊列中,可以較慢的速度處理也不會引起阻塞。表2sdn控制器中的限流策略表交換機包括用于接收來自客戶端a、客戶端b、服務器端、或者其他交換器端的端口報文的端口、用于與sdn控制器進行數(shù)據(jù)交互的發(fā)送模塊、交換機發(fā)送隊列、交換機報文類型提取模塊、交換機報文分配模塊以及端口報文匹配模塊。交換機通過發(fā)送模塊將存儲在交換機發(fā)送隊列中的報文發(fā)送至sdn控制器。其中交換機發(fā)送隊列總共包括8條基于硬件的、分別具有不同的最高傳輸速率的發(fā)送隊列,如下表:交換機發(fā)送隊列優(yōu)先等級最高傳輸速率(單位pps)第一發(fā)送隊列7(高)不限速第二發(fā)送隊列6(中)6000pps第三發(fā)送隊列5(中)5000pps第四發(fā)送隊列4(中)4000pps第五發(fā)送隊列3(低)3000pps第六發(fā)送隊列2(低)2000pps第七發(fā)送隊列1(低)1000pps第八發(fā)送隊列0(低)500pps表3交換機發(fā)送隊列優(yōu)先等級從0-7。其中,7的優(yōu)先等級最高,其對應的第一發(fā)送隊列的傳輸速率最快,能夠優(yōu)先快速發(fā)送到sdn控制器。0的優(yōu)先等級最低,其對應的第八發(fā)送隊列的傳輸速率最慢。交換機將sdn控制器下發(fā)的packet-out數(shù)據(jù)報文中的流表項信息添加至流表。交換機不斷的從端口獲取端口報文并發(fā)送至端口報文匹配模塊,端口報文匹配模塊從端口報文中提取響應的字段作為匹配字段,將提取出的匹配字段與所述流表項中匹配域中的匹配項進行匹配。其中,匹配項可以為openflow1.3specification中定義的oxm_tlv格式,常用的匹配項有ipv4源地址和目的地址、tcp/udp端口號、mpls/vlan標簽id、以太網(wǎng)幀類型等字段,具體的,匹配成功則按照該流表項中的動作集對數(shù)據(jù)包進行處理,例如轉(zhuǎn)發(fā)丟棄等17種動作。匹配失敗的端口報文被交換機封裝為packet-in數(shù)據(jù)報文上發(fā)至sdn控制器,請求sdn控制器下發(fā)與該端口報文的流表項信息。交換機的流表項信息還包括用于限制交換機發(fā)送至sdn控制器的報文的發(fā)送速率的流表項,其包括報文類型信息、與報文類型對應的優(yōu)先級信息、與優(yōu)先級信息對應的交換機發(fā)送隊列信息、以及交換機發(fā)送隊列的最高傳輸速率信息,與表2類似。交換機的需要發(fā)送至sdn控制器的待發(fā)送報文,通過其報文類型提取模塊提取報文的報文類型信息,并由交換機報文分配模塊根據(jù)報文類型信息在流表中查找與報文類型信息對應的交換機發(fā)送隊列信息,并將該待發(fā)送的報文存儲至與交換機發(fā)送隊列信息對應的交換機發(fā)送隊列中。優(yōu)先等級高的待發(fā)送報文,如控制協(xié)議報文flow-removed,被存儲至不限速的第七處理隊列中,能夠以最快的速度發(fā)送至sdn控制器。優(yōu)先等級低的待處理報文,如維護協(xié)議報文hello發(fā)送頻率低,延時敏感性低,被存儲至最高傳輸速率為1000pps的第七處理隊列中,可以較慢的速度處理也不會引起阻塞,導致sdn控制器崩潰。基于本發(fā)明實施例的流量控制器系統(tǒng)的流量過程包括:步驟s1,交換機上報報文至sdn控制器,并且根據(jù)報文的報文類型信息限制交換機報文的上報速率。具體如圖2所示,包括:步驟s1-1,根據(jù)報文類型信息確定報文的優(yōu)先等級。交換機報文類型提取模塊提取報文類型,檢索流表查找與所述報文類型對應的優(yōu)先等級。步驟s1-2,根據(jù)優(yōu)先等級將報文存儲至與其對應的交換機發(fā)送隊列中。交換機報文分配模塊檢索流表查找與所述報文類型對應的交換機發(fā)送隊列,將報文存儲至對應的交換機發(fā)送隊列中。步驟s2,sdn控制器接收報文,并且根據(jù)報文的報文類型信息限制報文的處理速度。具體如圖3所示,包括步驟:步驟s2-1,根據(jù)報文類型信息確定報文的優(yōu)先等級??刂破鲌笪念愋吞崛∧K提取報文類型,檢索限流策略表查找與所述報文類型對應的優(yōu)先等級。步驟s2-2,根據(jù)優(yōu)先等級將報文存儲至與其對應的控制器處理隊列中??刂破鲌笪姆峙淠K檢索限流策略表查找與所述報文類型對應的控制器處理隊列,將報文存儲至對應的控制器處理隊列中。另外,sdn控制器端具有開啟或者關(guān)閉流量控制的功能。并且使得該流量控制功能盡在網(wǎng)絡擁塞的時候開啟。在開啟流量控制功能時,sdn控制器通過下發(fā)流表項統(tǒng)一制定流量控制策略,基于交換機發(fā)送隊列和控制器處理隊列實現(xiàn)對流量的小粒度控制。本發(fā)明基于sdn架構(gòu),將所有的控制都集中與sdn控制器,配置方便而簡單,可以由sdn控制器統(tǒng)一的全局控制?;诒景l(fā)明實施例的系統(tǒng)進行測試,搭建如圖1所示的測試環(huán)境。產(chǎn)生流量一,未匹配流表的流量;流量二,由交換機構(gòu)造的大量hello報文。在網(wǎng)絡正常時,流量一和流量二的傳輸速度為普通的20000pps(數(shù)據(jù)包/秒)。而在網(wǎng)絡擁塞發(fā)生的時候,流量一的流量不會限速,流量二被限速為1000pps。本文中所描述的具體實施例僅僅是對本發(fā)明精神作舉例說明。本發(fā)明所屬
技術(shù)領域:
的技術(shù)人員可以對所描述的具體實施例做各種各樣的修改或補充或采用類似的方式替代,但并不會偏離本發(fā)明的精神或者超越所附權(quán)利要求書所定義的范圍。當前第1頁12