bcube是sigcomm2009提出的一種雲計算資料中心網路拓撲結構,雖然說目前業界使用的dcn拓撲結構仍然以樹形結構為主,但這絲毫不能影響bcube在學術界地位,如果你做的工作只能適用於clos型結構,必然就會有人那bcube來質疑你。
bcube是以伺服器作為交換核心,整個結構採用遞迴定義,結構雖然工整但是比較複雜。因此對交換機歸類就對我們研究網路自配置有一定的意義(其他方面的意義還沒有深入思考過)。
對bcube switch的歸類,我們打算採用基於層次的劃分,雖然在拓撲圖上看switch的層次明顯,但是在只有拓撲鄰接矩陣和節點裝置型別作為輸入的情況下,也並不是很容易。經過研究,我們基於以下規律設計拓撲層次劃分演算法:處於同一層次的switch所連線的server是沒有交集的。因此我們的演算法設計如下:
將所有server和switch節點裝入兩個鍊錶中(serverlist,switchlist),從switch中取出乙個節點,然後在serverlist中找出與這個switch相連的節點,把乙個標誌位置為1,然後再取出別的switch節點,當所有serverlist中的節點標誌位都為1的時候,把switchlist裡剩的元素的layer都加1,然後在把所有server的標誌位置回0,重新開始這個過程,知道switchlist為空。當然在這個過程中肯定會出現回溯。所以在實現上我採用了遞迴的方法,整個演算法過程有點類似於列印數字全排列。具體的**如下:
public class bcubelayer catch (filenotfoundexception e)
try catch (ioexception e)
enumeration enums = prop.keys();
while (enums.hasmoreelements()) else
} for(int i = 0 ; i < switches.size() ; i++)
system.out.println("..........................");
for(int i = 0 ; i < server.size() ; i++)
system.out.println(".........................."); }
///分層
public static void layer()
} system.out.println(flag+"**********===");
if(flag == 0)
}for(int i = 0 ; i < server.size() ; i++)
} //switch list變成空,演算法結束
int flag2 = 0;
for(int i = 0 ; i < switches.size() ; i++)
} system.out.println(flag2+"........");
if(flag2 == 0)
for(int i = 0 ; i < switches.size() ; i++)else if(switches.get(i).relation.get(m).equals(server.get(j).number) && server.get(j).state!=0)
}if(flag3==0)
switches.get(i).state=1;
layer();
switches.get(i).state=0;}}
} }
public static void main(string args)
for(int i = 0 ; i < server.size() ; i++)
}}
網路拓撲結構
網路拓撲結構網路拓撲結構是指用傳輸 互聯各種裝置的物理布局。將參與lan工作的各種裝置用 互聯在一起有多種方法,實際上只有幾種方式能適合lan的工作。如果乙個網路只連線幾台裝置,最簡單的方法是將它們都直接相連在一起,這種連線稱為點對點連線。用這種方式形成的網路稱為全網際網路絡,如下圖所示。圖中有6個...
網路拓撲結構
計算機網路的拓撲結構是引用拓撲學中研究與大小,形狀無關的點,線關係的方法。把網路中的計算機和通訊裝置抽象為乙個點,把傳輸介質抽象為一條線,由點和線組成的幾何圖形就是計算機網路的拓撲結構。網路的拓撲結構反映出網中個實體的結構關係,是建設計算機網路的第一步,是實現各種網路協議的基礎,它對網路的效能,系統...
網路拓撲結構
拓撲圖 給出的是網路伺服器 工作站的網路配置和相互間的連線。主要結構 1 星型 目前資料處理和聲音通訊的資訊網大多採用星型網。節點 目前多採用一種稱為集線器hub 或交換裝置的硬體作為 節點。2 環型 3 匯流排型 它是將網路中的各個節點裝置用一根匯流排 如電纜等 掛接起來,實現計算機網路的功能。4...