p2psim软件中官方的最大节点数的拓扑文件也就2048个节点,这对于需要模拟大量节点的仿真就存在一些问题。
之前走了一些弯路,以为官方只给了2048个节点的拓扑 就意味着p2psim模拟的最大节点数为2048个。其实不是这样,官方给的拓扑仅仅是模拟真实的网络环境中的时延,但是对于不需要时延那么准确的实验来说,可以自己来制作拓扑。
前几天写了一个小代码来生成拓扑:
#include <iostream>
#include <stdlib.h>
#include <fstream>
using namespace std;
void main()
{
int i,j,num;
num = 10000; //在这里定义节点数
ofstream file("topology.txt",ios::binary);
file<<"topology/tE2EGraph/t"<<num<<"/n"; //拓扑类型为e2egraph
file<<"failure_model/tConstantFailureModel/tdelay=1/n";
file<<"loss_rate/t0/n/n";
for(i = 1 ; i<=num ;i++ )
{
file<<"node"<<"/t"<<i<<"/n";
}
for( i = 1; i <= num;i++ )
for(j=i+1;j<=num;j++)
file<<i<<","<<j<<"/t"<<rand()%200<<"/n";
//随机生成的节点时延,这里的产生0-200ms的时延,可以自己设置,如rand()%100
file.close();
}