Поддерживает ли ns3 3d-топологию?
Я использую NS3 для моделирования беспроводного центра обработки данных. Я начал это с 2d топологии, используя "GridPositionAllocator".
MobilityHelper mobility;
mobility.SetPositionAllocator ("ns3::GridPositionAllocator",
"MinX", DoubleValue (0.0),
"MinY", DoubleValue (0.0),
"DeltaX", DoubleValue (1.0),
"DeltaY", DoubleValue (1.0),
"GridWidth", UintegerValue (8),
"LayoutType", StringValue ("ColumnFirst"));
mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
mobility.Install (wifiNodes);
Как я могу изменить его на 3d, чтобы разместить несколько серверов в стойке?
3 ответа
В принципе, ns-3 поддерживает трехмерную мобильность, поскольку векторы мобильности являются трехмерными (X, Y, Z), однако для этого не реализован "PositionAllocator". Вклад приветствуется.
Простое решение состоит в том, чтобы расширить этот GridPositionAllocator, который предполагает Z=0, и добавить 3-е измерение с соответствующим MinZ, DeltaZ.
Да, но добавить 3D-топологию с распределителем позиций сетки невозможно. Вы можете использовать ListPostionAllocator, чтобы вручную указать позиции всех узлов.
Вы можете использовать следующее:
Ptr<ListPostionAllocator> lp =CreateObject<ListPostionAllocator>();
//Adding locations of 2 nodes
lp->ADD(Vector (10.0,10.0,10.0);
lp->ADD(Vector (20.0,20.0,20.0); //Add locations of all the nodes
mobHelper.SetpostionAllocator(lp);
Да. Мы можем использовать 3D-модель мобильности Гаусса-Маркова под ns-3 для моделирования 3D-сети.