一種基于sdn的網絡流量矩陣測量方法
【技術領域】
[0001]本發(fā)明屬于網絡管理和網絡測量領域,特別是部署了支持OpenFlow協(xié)議的SDN交 換機的網絡管理和測量。
【背景技術】
[0002] 網絡測量是指遵照一定的方法和技術,利用軟件或硬件工具來測試表征網絡狀態(tài) 和性能的指標,獲取網絡拓撲結構、節(jié)點屬性和業(yè)務量特征等一系列活動的總稱。網絡測量 的主要內容包括網絡的時延、丟包率,可用帶寬、網絡拓撲和網絡流量矩陣等。網絡管理員 為了有效地管理網絡,必須及時地了解網絡的運行狀態(tài)。因此,測量網絡運行狀態(tài)指標的網 絡測量技術成為了網絡管理的核心技術之一。其中,流量矩陣表示的是網絡中任意兩個節(jié) 點對間的流量大小。流量矩陣是很多網絡管理任務的關鍵輸入信息,比如流量工程、網絡規(guī) 劃、網絡性能診斷分析和流量計費等。網絡流量矩陣測量是對網絡中承載的所有流量大小 進行測量和估計,以便網絡管理員可以根據(jù)測量得到的流量矩陣,合理的規(guī)劃和安排網絡 流的路由,從而提高業(yè)務的服務質量和網絡資源的利用效率。
[0003] 傳統(tǒng)的網絡流量矩陣測量方法主要包括直接測量法和估計法。直接測量法的基本 原理是將網絡探針安裝在網絡節(jié)點或鏈路上,以便直接獲取所需要的參數(shù)。但是,直接測 量流量矩陣存在多方面的困難,首先,流的數(shù)目一般比較大,不可能直接測量出每個流的大 小,這樣花費的代價太大;其次,測量需要專業(yè)的測量硬件資源,不可能在每個網絡節(jié)點上 安裝這些昂貴的資源,耗費太大;最后,由于網絡是異構的,測量時需要不同網絡之間的相 互協(xié)作,但是由于某些原因(比如網絡安全),很難保證各個網絡之間都能相互協(xié)作,這就 無法保證測量的準確性。
[0004] 估計法的基本思路是通過直接測量的方式獲取容易測量到或花費代價小的測量 信息,再使用這些信息估計出流量矩陣,估計法又叫做間接測量法。在估計法中,可以利用 網絡中的一些附加信息來估計流量矩陣,比如鏈路負載、路由矩陣。鏈路負載表示相連的兩 節(jié)點間鏈路上的流量,是網絡中的流量按照路由矩陣在鏈路上匯聚的流量大小。鏈路負載 可以通過使用SNMP協(xié)議來得到,路由矩陣可以通過收集內部路由協(xié)議的配置信息或者通 過收集路由器之間交互的鏈路狀態(tài)信息獲得。因此,流量矩陣估計即是在鏈路負載和路由 矩陣已知的前提下,估算出流量矩陣的估計值。在網絡中,流的數(shù)目一般遠大于鏈路的數(shù) 目,即路由矩陣是低秩的,無法精確地估計出流量矩陣。為了提高流量矩陣的估計正確率, 必須獲得更多的附加信息,但是由于傳統(tǒng)網絡控制平面的限制,獲取更多的附加信息是非 常困難的。
[0005] 近年來,為了增強對網絡的管控能力,研宄界提出了SDN網絡構架。SDN將網絡的 控制面和數(shù)據(jù)面徹底分開,控制面集中式的運行于網絡控制器之上,而數(shù)據(jù)面則分散的存 在于各個設備上。SDN的這種分離式設計為網絡流量矩陣的測量也帶來了好處。首先,集中 式的控制平面具有全局的網絡視圖,可以統(tǒng)一地調配網絡資源,動態(tài)地配置流表。其次,分 布于網絡設備上的數(shù)據(jù)面提供了若干用于流統(tǒng)計的計數(shù)器,利用這些計數(shù)器我們可以為流 量矩陣的估計提供更多的輸入。因此,研宄基于SDN的網絡流量矩陣測量對網絡管理員能 夠有效地控制和管理網絡是非常有必要的。
[0006] 目前,學術上已經有一些基于SDN的網絡流量矩陣測量方法的研宄。ProgMe提 出了一種可編程的網絡流量測量結構,可以收集用戶指定的流量集合中的流量統(tǒng)計值。 OpenSketch提出了一種基于哈希的測量框架,可以動態(tài)地配置各框架。但是,ProgMe和 OpenSketch都假設所有交換機都支持專業(yè)的測量硬件,這顯然是不可能的。并且這兩種方 法都只是針對某些特定的流量集合來測量,比如Heavy Hitter,它們對流量矩陣的測量都 不太適合。
[0007]Open-TM,DCM和iSTAMP都是基于SDN測量流量矩陣的方法。Open-TM和DCM都是 通過監(jiān)測每個流來直接測量每個流的大小,從而得到流量矩陣。顯而易見,Open-TM和DCM 的擴展性都很差,由于在網絡中流的數(shù)目一般非常大,但是所需的測量資源又是有限的,所 以根本不可能通過直接測量每個流的大小來獲得流量矩陣。為了滿足測量資源的約束,并 且提高測量的準確性,iSTAMP方法首先測量最大的前k個流和一些流匯聚后的大小,然后 估計出流量矩陣。iSTAMP似乎在網絡資源和測量正確率兩者之間作出了平衡,但它還是 有如下的缺陷:首先,SDN交換機轉發(fā)流時是基于優(yōu)先級和通配符的匹配原則來查找轉發(fā) 表的,只有具有相同目的節(jié)點的流才可能被聚合到一個表項中(即稱為流聚合的可行性約 束),但是iSTAMP方法中忽略了此約束,進行任意的聚合;其次,為了找出最大的前k個流, iSTAMP利用全部的TCAM表項來直接測量多個時間段內每個流的大小,這又會帶來不可忽 略的測量代價。
【發(fā)明內容】
[0008] 本發(fā)明的目的是針對【背景技術】存在的缺陷,研宄設計一種基于SDN的網絡流量矩 陣測量方法。利用SDN的特性來設計匯聚矩陣(匯聚矩陣是0-1矩陣,它的每一行對應一個 TCAM表項,表示一條流量測量規(guī)則,其元素(i,j)表示流j是否經規(guī)則i轉發(fā)),然后利用 矩陣完成技術估計出流量矩陣,以達到滿足流聚合可行性約束及網絡測量資源有限約束, 降低流量矩陣的估計誤差,提高探測HeavyHitter的正確概率等目的。
[0009] 本發(fā)明的解決的方案是:假設為了節(jié)省TCAM表項,目的節(jié)點相同的流都聚合在一 起,通過解聚和路由規(guī)則來設計匯聚矩陣;采用兩步法來估計流量矩陣,第一步是選擇一個 聚合流最多的路由規(guī)則(稱為舊規(guī)則)來產生新規(guī)則,使得舊規(guī)則和新規(guī)則聚合流的數(shù)目 相差最小,然后利用矩陣完成技術估計出一個流量矩陣;第二步是以第一步中估計出的流 量矩陣作為基礎,從中選擇最大的前k個流來直接測量,采用求表征流與SDN交換機可用 TCAM表項間的關系的二分圖的最大權最大匹配來解決每個SDN交換機直接測量流集合的 問題;本發(fā)明即以此來實現(xiàn)其目的。因此,本發(fā)明采用方法方案為:
[0010] 一種基于SDN的網絡流量矩陣測量方法,包括以下步驟:
[0011]A.構造初始匯聚矩陣:假設初始時目的節(jié)點相同的流都是聚合的,即只需用一個 TCAM表項來路由具有相同目的節(jié)點的流;設計每個SDN交換機TCAM表項對應的流量測量 規(guī)則,處理過程為:
[0012] 步驟1. 0 :在所有SDN交換機的TCAM表項中,選擇一個聚合流數(shù)目最多的規(guī)則(稱 為舊規(guī)則)來產生新規(guī)則,舊規(guī)則與新規(guī)則除了優(yōu)先級、源IP前綴不一樣外,其余的都相 同,新規(guī)則的優(yōu)先級高于舊規(guī)則,轉步驟2. 0 ;
[0013] 步驟2. 0 :為新規(guī)則尋找一個長度更長的源IP前綴:在以舊規(guī)則的源IP前綴為樹 根的前綴樹中尋找此前綴,使得這兩個規(guī)則聚合流的數(shù)目相差最小,轉步驟2. 1 ;
[0014] 步驟2. 1 :把產生的新規(guī)則部署到SDN交換機的可用TCAM表項中,若所有SDN交 換機的TCAM表都已經滿了,則轉步驟3. 0,否則轉步驟1. 0 ;
[0015] 步驟3. 0 :根據(jù)每個TCAM表項聚合的流,構建一個匯聚矩陣,由于SDN交換機數(shù)量 有限,部分流沒有監(jiān)測到,所以根據(jù)鏈路流量約束把路由矩陣并入到匯聚矩陣中,得到最后 的匯聚矩陣;
[0016] B.估計流量矩陣:根據(jù)步驟A中得到最后的匯聚矩陣來估計流量矩陣,估計方法 采用最小化+44,人為正則系數(shù),其中A為匯聚矩陣,X為所求的流量矩陣,Y 為與匯聚矩A對應的列矩陣,Y矩陣中與并入路由矩陣前的匯聚矩陣對應的元素為每個表 項匯聚的流量大小、與路由矩陣對應的元素為鏈路負載;
[0017] C.重新設計匯聚矩陣:根據(jù)步驟B中估計出的流量矩陣來重新設計各SDN交換機 TCAM表項對應的流量測量規(guī)則,其處理過程為:
[0018] 步驟1. 0 :對于每個SDN交換機,從它能夠監(jiān)測到的流集合中選擇最大的前k(k的 值等于此SDN交換機可用TCAM表項的數(shù)目)個流直接測量,選擇方法為:
[0019] 步驟1.0.0 :構造虛擬二分圖:首先構造第一部分的節(jié)點,表示每個SDN交換機的 可用TCAM表項,若節(jié)點j處的SDN交換機的可用TCAM表項數(shù)目為s,則對應生成s個節(jié)點 j2.....js,每個節(jié)點表示該SDN交換機TCAM表的一個可用表項;接著構造第二部分的 節(jié)點,表示每個流,如若有L個流,則就有L個節(jié)點,流i表示第i個流,即節(jié)點i;最后構 造第一部分節(jié)點與第二部分節(jié)點間的鏈路,若流i經過節(jié)點j處的SDN交換機,則把節(jié)點i 與J\、j2.....義分別相連,鏈路的權重均為流i的大小,其它鏈路的添加方式類似,轉步驟 1. 0. 1 ;
[0020] 步驟1. 0. 1 :求此二分圖的最大權最大匹配:按照二分圖最大權最大匹配算法可 求出此二分圖的最大權最大匹配,然后從此最大權最大匹配中找出每個SDN交換機要直接 測量的最大前k個流;比如j處SDN交換機的2個可用TCAM表項對應的節(jié)點為ji、j2,計算 得到的匹配為i-a,j2-b,則此SDN交換機要直接測量的最大前2個流為a、b;轉步驟2. 0 ;
[0021] 步驟2. 0 :根據(jù)上述步驟得到的最大權最大匹配重新配置每個SDN交換機要直接 測量哪些流后,就可以得到一個新的匯聚矩陣,再把鏈路流量約束并入到匯聚矩陣中,得到 最終新的匯聚矩陣;
[0022] D.估計最后的流量矩陣:根據(jù)步驟C得到的最終新的匯聚矩陣按照步驟B估計流 量矩陣,并計算誤差。
[0023] 本發(fā)明由于在構建匯聚矩陣時,是針對每個表項聚合流的個數(shù)最多的規(guī)則來產生 新規(guī)則,并且盡量保證兩個規(guī)則聚合流的數(shù)目相差最小,然后根據(jù)此時的匯聚矩陣估計流 量矩陣,最后根據(jù)估計出的流量矩陣來尋找每個SDN交換機要直接測量的流集合,不需要 知道每個流的實際大小,降低了測量的周期和直接測量每個流的困難,并且滿足流聚合可 行性約束,估計誤差比較低。
【附圖說明】
[0024] 圖1為本發(fā)明具體實施中有5個節(jié)點構成的網絡物理拓撲網絡示意圖。
[0025] 圖2為本發(fā)明具體實施中選擇最大的前k個流時構造的虛擬二分圖。