[ndnSIM] Tracing RTT values of PIT entries

Amin Karami amin at ac.upc.edu
Wed Nov 27 04:25:14 PST 2013


Hi Alex,
I design a simple scenario as follows:
c1--->
c2---> R3 ----> R2 ----> p1
c3--->

c1,c2 and c3 are connected to R3. In the first 3 seconds, just c1 sends 
Interest packets. When I printed the RTT values of PIT entries in R3, I 
face with below output:

1    R3    PIT Size: 3
=========
/dst1/%00%01P
mean of RTT: 0.00966371, Variance of RTT: 0.000361557
Prefix: /dst1/%00%01P
In: dev[10]=net(0,0-10)
Out: dev[10]=net(1,9-10)
Nonces: 2647520711
=========
/dst1/%00%01R
mean of RTT: 0.00966371, Variance of RTT: 0.000361557
Prefix: /dst1/%00%01R
In: dev[10]=net(0,0-10)
Out: dev[10]=net(1,9-10)
Nonces: 3120749414
=========
/dst1/%00%01Q
mean of RTT: 0.00966371, Variance of RTT: 0.000361557
Prefix: /dst1/%00%01Q
In: dev[10]=net(0,0-10)
Out: dev[10]=net(1,9-10)
Nonces: 315221540

2    R3    PIT Size: 3
=========
/dst1/%00%02%C6
mean of RTT: 0.0100666, Variance of RTT: 0.000979842
Prefix: /dst1/%00%02%C6
In: dev[10]=net(0,0-10)
Out: dev[10]=net(1,9-10)
Nonces: 2858765059
=========
/dst1/%00%02%C7
mean of RTT: 0.0100666, Variance of RTT: 0.000979842
Prefix: /dst1/%00%02%C7
In: dev[10]=net(0,0-10)
Out: dev[10]=net(1,9-10)
Nonces: 629247679
=========
/dst1/%00%02%C8
mean of RTT: 0.0100666, Variance of RTT: 0.000979842
Prefix: /dst1/%00%02%C8
In: dev[10]=net(0,0-10)
Out: dev[10]=net(1,9-10)
Nonces: 2514818005


The rate of sending Interests is 400 per second for c1. As you seen, in 
each second, just 3 entries accommodate in PIT for routing purpose in 
FIB. What is the problem? Where is other about 397 Interest packets?

My implementation for printing RTT values are:

void PeriodicStatsPrinter (Ptr<Node> node, Time next)
{
Ptr<ndn::Pit> pit = node->GetObject<ndn::Pit> ();
   std::cout << Simulator::Now ().ToDouble (Time::S) << "\t"
             << Names::FindName (node) << "\t"
             << "PIT Size: " << pit->GetSize () << "\t"
for (Ptr<ndn::pit::Entry> entry = pit->Begin (); entry != pit->End (); 
entry = pit->Next (entry))
   {
     std::cout << "=========" << std::endl;
     std::cout << entry->GetPrefix () << std::endl;
     for (FaceMetricContainer::type::index<i_nth>::type::iterator metric 
= entry->GetFibEntry()->m_faces.get<i_nth> ().begin(); metric != 
entry->GetFibEntry()->m_faces.get<i_nth> ().end(); metric++)
     {
     std::cout << "mean of RTT: " << metric->GetSRtt 
().ToDouble(Time::S) << ", Variance of RTT: " << 
metric->GetRttVar().ToDouble(Time::S) << "\n";
     }
      std::cout << *entry << std::endl;
   }
   Simulator::Schedule (next, PeriodicStatsPrinter, node, next);
}



Best Regards,
Amin




More information about the ndnSIM mailing list