2013-11-24 40 views
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(); 

我在哪裏錯了?

回答

0

此對話已移至ndnSIM電子郵件列表。