1. 程式人生 > 其它 >網路拓撲 fat-tree vs. Jellyfish

網路拓撲 fat-tree vs. Jellyfish

NSDI2012 的一篇經典文章 《Jellyfish: Networking Data Centers Randomly》提出使用新的拓撲結構 Jellyfish 來設計網路。

Jellyfish 模型是在 《Jellyfish: A conceptual model for the as internet topology》 這篇文章提出的,是在現有 Internet 拓撲結構研究基礎之上提出的一個概念模型。其實這個模型算是大規模隨機圖的一個共同特點,不只是 Internet 圖有這個特點。

NSDI2012 這篇文章提出,使用Jellyfish 設計的網路拓撲結構,與傳統的 fat
-tree 結構相比,吞吐量一點都不差,而且靈活性還更多,更好擴充套件。這篇工作還挺重要的,網上可以找到不少 review、reproducing 的工作。

fat-tree 結構是這樣的:

jellyfish 結構是這樣的:

放大來看,fat-tree 結構這樣組織交換機:

注意,這裡為什麼叫 fat-tree 而不是直接的 tree 呢?因為它相比於普通的 tree 要更 fat 一點(廢話!)
看下圖,普通 n叉樹結構做網路拓撲是不合適,原因之一是不夠健壯,一個交換機壞了下面的主機就不可達了,這可不行;另一個原因在於頻寬,層層減少的交換機,帶來的結構必然是頻寬緊張,越靠近骨幹網路頻寬越小怎麼行!
所以fat-tree 就出現了,通過在 n 叉樹的基礎上設立多份“冗餘”副本,來提高網路健壯性和頻寬。

看評測結果,主機數量上來之後,n叉樹的表現還是很符合理論分析的:

但是 fat-tree 有兩個問題:一個是網路規模受限,不可能支援無限多主機;另一個是網路結構要在設計時定下來,不好動態更改。
於是 Jellyfish 就出來了,這個從網路結構中來、到網路結構中去的隨機圖模型解決了這兩個問題。

相比於fat-tree,jellyfish有兩大優點:一是可以支援的主機數量不受限制,不必像fat-tree那樣受交換機埠個數的限制;另一個是可以動態擴充套件主機數量,不必像fat-tree那樣一開始就固定死網路的形態。

but,實際用的時候機器怎麼接……?總得有點道道吧,不可能每次都找印度工程師來接吧?(誤

參考文獻