0
我正在研究一個簡單的樹形拓撲。我想讓一個特定節點(路由器)像劫機者一樣工作,所以我試圖將此節點設置爲劫機者,但此節點的工作方式與普通節點相同,並將所有節點都轉發到正確的目的地。如果我嘗試模擬應用程序,每個PIT都是空的,但是使用可視化工具,我可以看到每個數據包都會傳遞給每個節點。此外,我無法填充拓撲的每個節點的PIT。ndnSIM:劫機者不工作和空PIT
這是我的代碼:
// Install CCNx stack on all nodes
ndn::StackHelper ccnxHelper;
ccnxHelper.SetForwardingStrategy ("ns3::ndn::fw::BestRoute");
ccnxHelper.SetPit ("ns3::ndn::pit::SerializedSize", "MaxSize", "100");
ccnxHelper.SetContentStore ("ns3::ndn::cs::Lru", "MaxSize", "1"); // Content Store OFF
ccnxHelper.InstallAll();
// Installing global routing interface on all nodes
ndn::GlobalRoutingHelper ccnxGlobalRoutingHelper;
ccnxGlobalRoutingHelper.InstallAll();
// Getting containers for the consumer/producer
Ptr<Node> consumer1 = Names::Find<Node> ("leaf-1");
Ptr<Node> consumer2 = Names::Find<Node> ("leaf-2");
Ptr<Node> consumer4 = Names::Find<Node> ("leaf-4");
Ptr<Node> producer = Names::Find<Node> ("leaf-3");
Ptr<Node> router3 = Names::Find<Node> ("rtr-3");
Ptr<Node> router2 = Names::Find<Node> ("rtr-2");
Ptr<Node> router1 = Names::Find<Node> ("rtr-1");
//consumerswindow
ndn::AppHelper consumerHelper ("ns3::ndn::ConsumerWindow");
consumerHelper.SetAttribute ("Window", UintegerValue (100));
consumerHelper.SetAttribute ("Size", StringValue("0.1"));
consumerHelper.SetPrefix ("/rtr-3/leaf-3");
consumerHelper.Install (consumer1);
consumerHelper.SetPrefix ("/rtr-3/leaf-3");
consumerHelper.Install (consumer2);
//hijaker router1
ndn::AppHelper hijackerHelper ("Hijacker");
hijackerHelper.Install (router1);
//attacker consumercbr
ndn::AppHelper consumerHelper_attack ("ns3::ndn::ConsumerCbr");
consumerHelper_attack.SetAttribute ("Frequency", StringValue ("1"));
consumerHelper_attack.SetPrefix ("/rtr-3/leaf-3");
consumerHelper_attack.Install (consumer4);
//producer leaf-3
ndn::AppHelper producerHelper ("ns3::ndn::Producer");
producerHelper.SetAttribute ("PayloadSize", StringValue("1024"));
ccnxGlobalRoutingHelper.AddOrigins ("/rtr-3", producer);
producerHelper.SetPrefix ("/rtr-3");
producerHelper.Install (producer);
// Calculate and install FIBs
ccnxGlobalRoutingHelper.CalculateRoutes();
Simulator::Schedule (Seconds (1.0), printPitStats, router1); //print statistics about PIT
Simulator::Stop (Seconds (5.0));
Simulator::Run();
Simulator::Destroy();
我在哪裏錯了?