Network包
这个包中区别于其他例子程序的地方在于,他在开始模拟值钱,先需要要初始化网络拓扑:
NetworkTopology.buildNetworkTopology("topology.brite");
int briteNode=0;
NetworkTopology.mapNode(datacenter0.getId(),briteNode);
/Broker will correspond to BRITE node 3
briteNode=3;
NetworkTopology.mapNode(broker.getId(),briteNode);
现在来认识一下NetworkTopology这个类究竟是在做什么:
实现是根据一个brite文件建立一个网络拓扑模型
Brite文件类似于:
在这里要分析的是TopologicalGraph这样的一个类,这里面描绘了图的拓扑的数据结构。
这里面包含了两个链表,分别来存储节点TopologicalNode和边TopologicalLink。
节点:包含的信息有:编号,x,y 坐标名称。
边:包含的信息: 变的源和目的节点编号,边上的时延,带宽。
在 TopologicalGraph 通过readGraphFile方法,将文件中的描述,转化为网络拓扑模型。
接着用刚才独到的网络拓扑,生成一个是实体间的时延矩阵和带宽矩阵。generateMatrices()和createBwMatrix() ,其中时延矩阵是根据FloydWarshall来求出最短路径之后,得出的。
什么是时延矩阵:
Eij表示i 和j实体之间的通信的网络时延。
带宽矩阵类似。