• 沒有找到結果。

第五章 模擬與分析

5.2 總合模擬

5.2.1 總合模擬之環境

如 2.2.1 小節所述,一般的真實網路環境下的規則分布都散佈於 tuple[16~32,

16~32]以及 wildcard(tuple[0,0~32]及 tuple[0~32,0])之間,另一方面也必須考慮 衝突對整個演算法的影響,傳統的 tuple space 搭配 Rectangle search 演算法中因無 須考量 tuple 跟 IncompatibleTuple 間的影響,然而在 Diagonal tuple space search 以 及我們所提出的 Advanced regional diagonal tuple space search 演算法卻會因為避 免衝突的問題產生而須加進 Mirror rule 以及相對應的 marker,因此對此二個演算 法來說,會產生衝突的 marker 越多,越會在空間以及時間造成不利的影響,而會 產生衝突的 marker 的產生則是因為存在著會產生衝突的規則。因此為了比較 Rectangle search,Diagonal tuple space search 以及 Advanced regional diagonal tuple space search 這三個演算法在不同環境下的影響,我們選擇了以下的幾個因子來做 控制變因並分析其結果:造成衝突規則的多寡以及位於 wildcard 區域的規則的比 例,並以 1000 調規則來分析其結果。

5.2.2 模擬結果

表 5-1:當有 0%的規則位於 Wildcard 區域時,各個演算法分別生成的 marker 總數量以及平均搜尋結果。

表 5-2:當有 20%的規則位於 Wildcard 區域時,各個演算法分別生成的 marker 總數量以及平均搜尋結果。

表 5-3:當有 50%的規則位於 Wildcard 區域時,各個演算法分別生成的 marker 總數量以及平均搜尋結果。

表 5-1,表 5-2 及表 5-3 分別為規則總數為 1000 且其中的 0%,20%,50%散

佈於 Wildcard 區域時的情況,另外又有固定的 40%的規則散佈於 tuple[16~32,

16~32]之間,而 Conflict rule 的生成方式為由剩餘的規則之中隨機取一個,並隨機 修改 Source prefix length,Destination prefix length,Source specified bits 的隨機長 度的末幾 bit 的內容,Destination specified bits 的隨機長度的末幾 bit 的內容以及 規則的優先權,以製造出容易產生衝突的環境,而測量方式又分為規則總數的 0%,40%以及 80%與剩餘的 100%,60%以及 20%的規則產生衝突。而透過實驗 結果可以發現當衝突的規則數量增加時,由於 Rectangle search 並無必要針對衝突 作額外的處理,因此當衝突規則增加時,對 marker 的生成並無顯著的負面影響,

甚至能夠因為衝突規則與規則之間生成的 marker 有極大的重複性而不被生成,當 規則越集中於 Wildcard 時能夠取消更多的 marker;相反地,對 Diagonal tuple space search 來說,儘管也能因為規則集中而將重複的 marker 消除,但因為針對衝突必 須增設 mirror rule 以及相對應的 marker,反而使得 marker 的生成量大為增加,如 在 tuple(0,32)的規則與 tuple(31,31)的某一 marker 產生衝突,亦等於說對 tuple(1,

1)至 tuple(30,30)都存在著衝突的影響,因此所增加 marker 數量極為可觀;而我 們所提出的方法雖然亦存在著相同的問題,但透過跳躍式的生成 marker 以及各區 域間的 marker 不互相流通的方式,使得 marker 大量生成的問題能夠稍微減緩些,

而透過跳躍生成的方式也使得在搜尋階段能夠避開一些無用的 tuple 進行搜尋,然 而當規則衝突情形極為嚴重時,marker 所佔用的記憶體空間仍較 Rectangle search 嚴重,另外也由於雙方向衝突之問題亦會增加 marker,而當規則越分佈於 Wildcard 區域時越容易造成此一問題,因此因應這問題而生的 marker 便極為龐大。

而在平均每個封包對 tuple 的搜尋次數上,由於 rectangle search 至少必須搜 尋一個維度長的 tuple 量,因此該演算法在搜尋的表現上是極為不理想的,然而衝 突的規則增加對該演算法的影響卻不大,並且相較於 Diagonal tuple space search 以及我們所提出的演算法皆會隨著規則散佈於 Wildcard 區域的密集度增加而使搜 尋效率降低的情形,Rectangle search 更能夠因為 Wildcard 區域的密集度增加而使

搜尋效率提升,其原因在於因為 Wildcard 的規則數量增多,而使得在 tuple space 的搜尋路徑幾乎能成為二直線而不會產生太多的稜角,然而整體搜尋狀況仍是相 當不理想;而對 Diagonal tuple space search 來說,當一封包必須搜尋至 wildcard 區域時為該演算法之最糟狀態,因所需的三次二元搜尋皆是整個 Diagonal tuple space search 的最長路徑(16 長度,33 長度,33 長度),因此當規則越集中於 Wildcard 區域時,平均的搜尋次數亦會跟著提升,然而當單方向衝突之比例越上升時,月 有助於整體搜尋效率提升,因透過 mirror rule 之引導能使封包再第一次二元搜尋 不至於找到 tuple(0,0);而在我們提出的演算法中,雖然在最糟情況下可能也需 要二次的二元搜尋,然而第二次之搜尋除非在最糟情況下才會與二元搜尋之表現 無異,而最糟情況在於對小區域內的規則之密度提昇。