Heterogeneous Flow Table Distribution in Software-Defined Networks筆記

一、幾個概念

  • homogeneous flow table:同構流表(策略)
    一個入口交換機應該執行相同的策略(ACL)——>由於TCAM容量限制,入口交換機的策略可以分配到由此導出的每條路徑上——>爲確保每條路徑上的流都能匹配到規則,應該在每條路徑上存貯相同的規則集(palette),這些被分割的相同的規則集就是同構流表。
    總結:流的需求一樣——>所有流經過的路徑規則集都一樣

  • heterogeneous flow table:異構流表(策略)
    每條路徑上可以存貯不同的規則集,即一塊策略分割出的不同規則集(可以有重疊部分),那麼這條路徑只能經過特定(只能匹配到被分割的規則集)的流——>但是規則集變少了。
    總結:流的需求可以不一樣——>不同流經過的不同路徑的規則集可以不同

  • TCAMs:TCAMs是指交換機中一組小的TCAM片,可以存貯一個子表。——>①將子表的預定大小與TCAM片的容量綁定,即一個TCAM片相當於一個子表②一個TCAM(交換機)可以放多個子表

二、Rule partition and allocation

palette模型——>

一句話:將原始規則表分割成均等的C個子表,(其中圖中最短路徑的長度是C的上界)然後使用彩虹路徑方法將子表放入交換機中,保證每條路徑上都要有所有的子表

  • 分割:CBD算法,最小化最大子表,以使子表的規則數最少
  • 分配:貪心算法,首選佔有最多路徑的節點用顏色c進行染色,直到每條路徑都染上了顏色c,然後進行下一次迭代。但是一個交換機只放入一個子表。

本篇論文的模型——>

1、Rule partition 規則分割

將策略分割成預定數量的、規則不相交的子表。這裏的意思就是對規則集進行分類。新概念:子表——>same sub-table(相同子表,下面有解釋)。

  • 和Palette的分割算法比較:
    • 不同: 這裏的預定數量自定義,不是最短路徑的節點數
    • 相似:對於有依賴關係的規則,也採用CBD算法分割
  • same sub-table(相同子表):這裏子表中的規則屬性滿足下面三個條件就放在一起(分類標準)——>
    • Policy:規則都服從子策略p。首先相同的規則集Sp ,有|Sp |個規則(|Sp |>|sub-table|),z是預定的子表大小——>則表示有Sp /z個子表
    • Dependency:最好將有依賴關係的規則放入同一個子表,以節約規則空間
    • Popularity:受歡迎度。
      ①對於子策略P,衡量標準是會有多少流匹配到P;②對於交換機,衡量標準是會有多少流經過交換機;③合理的情況是高歡迎度的交換機存貯高歡迎度的子策略
  • 可以將不相交的、但是歡迎度相似的規則放在一起,在一個子表中。
  • 默認規則即轉發規則,優先級最低。

具體僞代碼——>
這裏寫圖片描述

——>得到的這些子表可以看成是一種顏色。這裏的子表數大於一條路徑中交換機個數。數如何將子表放入一條路徑的交換機中呢(一個交換機可以放多個子表)?即如何染色呢?


2、Rule allocation 規則分配

——>首先,我們補充下染色問題。

(0) coloring Algorithm 染色問題

圖的染色問題是圖論中的一個經典難題,是著名的 NP-完全問題之一。內容包括點染色、邊染色、全染色、組合地圖的面染色等。

我們主要介紹頂點染色。給定圖G = (V, E),設頂點集V(G) = { v1 ,v2 ,…,vn },則其點染色是指將圖G中頂點集V(G)中的每個元素進行染色,頂點全部染色之後,要求使每個鄰接頂點的顏色不同。並希望最小化顏色數。

本篇論文應用的就是頂點染色的Welsh-powell 染色算法。

1)貪心染色法

思想是首先用第一種顏色對圖中儘可能多的頂點染色,然後用第二種顏色對餘下的頂點中儘可能多的頂點進行染色,以此類推,直到把所有的頂點都染色完畢,而且使圖中任意兩個頂點的染色都不同。

優缺點:貪心算法染色最重要的一個優點是簡單、方便、有效,在求解最小色數的近似解時不失爲一種好的算法。但是它的缺點是該算法不能從問題的全局考慮作出最佳選擇,只能從問題當前的狀態考慮作出當前看似最佳的選擇,而且一旦該算
法作出選擇則不能更改。

2)Welsh-powell 染色算法(窮舉法)

步驟:

  1. 將圖 G 中的頂點按度數從大到小(即遞減的次序)進行排列(相同度數的頂點排序可以隨意)。
  2. 把第一個頂點染上第一種顏色,緊接着按步驟( 1)中排列的次序對與第一個頂點不相鄰的頂點染上同一種顏色,即第一種顏色。
  3. 用剩下的顏色繼續對步驟( 1)已排序頂點中尚未染色的頂點及與其不相鄰 的頂點染色,直到圖中所有的頂點都被染色。

例:
這裏寫圖片描述

  • 圖中各頂點按度數大小排列,排列的結果是 C、A、B、F、G、H、D、E。
  • 第一種顏色:CAG,第二種顏色:BHDE,第三種顏色:F,即x(G) = 3。

優缺點:Welch-powell 染色算法跟貪心染色算法一樣是一種較爲簡單、方便、有效的方法。但是跟貪心算法比較,Welch-powell 算法可以得出最優解,但是在這裏有一個疑問:當頂點度數排列唯一時,這個算法得出的解是最優解,但如果頂點度數的排列不唯一時,染色的方法不固定,這個算法的解會不會是整體最優解是不確定的。


染色問題中每個頂點都是相互平等。但是規則分配中因爲還有交換機TCAM組的約束,子表(頂點)不是平等的。染色問題不能直接運用到規則分配中。需要先構造染色模型。

——>路徑P分爲以下兩種情況討論:

(1)路徑中沒有共享交換機

這是最簡單的情況,路徑中沒有共享的交換機。我們首先分析網路拓撲中只有一條路徑。

對於一條路徑Pi ,有Ni 個交換機。怎麼存放ti 個子表呢(ti >Ni )?——>爲了保持交換機對規則的負載均衡,均勻分配子表,每個交換機Si 至少要存放Li =ti /Ni個子表。——>染色問題的變形。

這裏寫圖片描述

幾個概念:

  • ti :路徑Pi 上需要存放的ti 個子表。
  • α-clique:α表示策略中所有的子表數。represented clique,這裏稱爲路徑Pi 的團體,代表一條路徑Pi 可能有的總子表,用於構造染色問題,代表染色問題的所有顏色。
  • auxiliary nodes,輔助節點:α − ti 的節點,用做染色問題的約束節點。
  • Li 應是一個整數。若計算後不是整數,則在路徑Pi 隨機取一個交換機節點放入⌈Li ⌉子表(向上取整),剩下的節點放入⌊Li ⌋子表。

如上圖,加入這麼多實線的意思就是抽象成染色問題的約束條件:一條路徑(團體C)中的相鄰節點不能染同樣的顏色,即在一條路徑中一個顏色(子表)只能放一個。加入輔助節點,這裏等同於規定了顏色的數量。

上圖完成對一條路徑的染色問題構造Clique construction (α, pi)。


(2)路徑中有共享交換機

上升到一般性問題。假設網絡拓撲中有兩條路徑Pi ,Pj ,並且有一個共享交換機S1

問題的步驟:
這裏寫圖片描述

  1. 對每條路徑分別構造染色問題(Clique)
  2. 將構造好的所有路徑進行整合
  3. 最後依次染色

——>我們下面對步驟一個個分析:

這裏寫圖片描述

1)Clique construction (α, pi)

如上面路徑無共享交換機問題的分析,首先計算出每條路徑Pi 的Li 。然後構造Clique(染色問題)。

僞代碼如下:
這裏寫圖片描述

2)Integration (H, Ci)

——>兩條路徑有共享交換做爲關節點,如何整合呢?

即在共享交換機中的找到各個路徑中最小的Li ,爲共享子表節點。在每條路徑中該節點可以分別染同一個顏色。節約了路徑中的規則存放空間。

如圖中Pi的Li爲3,Pj的Lj爲2,最小的L就爲2,則整合後的共享節點爲2。

僞代碼如下:
這裏寫圖片描述

3)Refinement

——>最後如何染色是問題的重點

概念:

  • invalid color:無效顏色。有效顏色還未染完,但是由於相鄰的約束條件,不能在該節點染色。該顏色j>α。
  • valid color:有效顏色。該顏色j在α其中,j<α。

對共享節點進行染色會出現α個顏色中顏色k不能染,只能染上無效顏色。爲什麼未染色的共享節點不能染顏色k?

——>首先,k是兩條路徑中的相同顏色(子表)。其次,因爲在C’中k已經被染色了。由於兩條路徑在染色問題模型中相鄰,在C中就不能在染了,否則在C’中重複。

步驟:

  1. 先使用Welsh-Powell染色法把能染的有效顏色顏色先染上。
  2. 對未染色的共享節點染上無效顏色。
  3. 最後解決無效顏色問題,增加節點用有效顏色代替。

例:

這裏寫圖片描述

  • 四條路徑有共享交換機

這裏寫圖片描述

  • 對每條路徑構造染色問題

這裏寫圖片描述

  • 先染上有效染色,在對未染色的節點染上無效顏色

這裏寫圖片描述

  • 最後通過增加節點消除路徑相鄰,來消除無效顏色

——>問題:染色問題只說染顏色沒有說可以先染哪種顏色?以更好的解決無效顏色問題


三、實驗結果

(1)Rule partition

實驗條件:假定50個交換機,每個交換機能存貯5個子表(TCAM),每個子表能存貯30個規則,每個規則6位。規則依賴、網絡拓撲(路徑)、流都是隨機產生。

基準方法:參考Palette模型。分割時不管共享交換機,每條路徑都必須放入所有的子表(策略)

1)隨路徑的增加

這裏寫圖片描述

  • 一條路徑中的子表數

這裏寫圖片描述

  • 總子表數(需要TCAM的數量)

結論:

  • 基準方法隨路徑增加子表數增加,因爲每條路徑都要複製放入相應的子表;
  • 本篇論文的方法子表數不怎麼增加。因爲,路徑增加,但是交換機不增加。隨着路徑的增加,許多交換機都成爲共享交換機,則其實路徑不需要增加子表。
  • 優勢的原因是幾條路徑中只需一種子表,因爲有共享交換機

(2)Rule replications

隨着通配符規則的增加:

這裏寫圖片描述

需要複製的規則數:

  • 本篇方法規則複製少的原因:把有依賴的一組規則放在同一個子表,只有當子表規則數太多時分割
  • 基線算法複製多的原因:直接分割,並且每條路徑都要放置所有的 規則

(3)Rule allocation

這裏的基線方法:參考Palette分配規則的q-greedy algorithm(q-貪心算法)。即依次將子表放入共享程度最大的交換機中。並且每條路徑都要存儲所有的子表。

衡量標準:平衡因子,1 − D/T

  • D:交換機存貯的最大子表數與另一個交換存貯的最小子表數之差
  • T:交換機能存貯的子表數
  • 越高說明子表數越平均

4種檢測:

  • 隨着最短路徑的增加
  • 隨着TCAM的增大(交換機能存放的子表數增大)
  • 隨着流的增多
  • 隨着交換機數量的增加

1)隨着最短路徑的增加

這裏寫圖片描述

  • 總子表的變化

這裏寫圖片描述

  • 平衡因子的變化

結論:

  • q-貪心法隨着路徑增加,共享交換機增多,所以總子表數減少。平衡因子接近於0的原因:不是均衡分配子表。而是貪心的。
  • 本篇算法在交換機中均衡分配子表,路徑的增加不帶來規則的變化,總子表數基本不變。

2)隨着TCAM的增大(交換機能存放的子表數增大)

這裏寫圖片描述

  • 總子表的變化

這裏寫圖片描述

  • 平衡因子的變化

結論:

  • 貪心法總子表減少的原因: tcam增大,共享交換機可以存貯更多的規則
  • 本篇方法不變的原因:有很高的平衡因子,均勻分配在各個交換機 中

3)隨着流的增多

這裏寫圖片描述

  • 總子表數的變化

這裏寫圖片描述

  • 平衡因子的變化

結論:

  • q-貪心法在每條路徑存儲了所有的子表,所以流增加時比較穩定。
  • 本篇算法流增加時需要新的子表對應,所以總子表數增加。

4)隨着交換機數量的增加

這裏寫圖片描述

  • 總子表數的變化

這裏寫圖片描述

  • 平衡因子的變化

結論:

  • q-貪心法總子表增加。因爲交換機增加,路徑不變,則共享交換機減少,路徑缺少共享交換機子表需要其他交換機複製子表。
  • 本篇方法保持穩定。總的子表數不隨交換機數量的變化而變化。

四、引用:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章