Hi All, Our website moved to a new URL. Please bookmark the new link: https://ns2bloggers.blogspot.com/

Thursday 2 September 2021

Tour de Technology Facts Coming Soon


History of NS2

 

Ns started as a variant of the important network simulator software in 1989 and has progressed considerably over the past few years. In 1995 ns development was encouraged by agency called DARPA through the VINT project at LBL, Xerox PARC, UCB, and USC/ISI. Currently ns development is sustained through Defense Advanced Research Projects Agency (DARPA) with SAMAN and thru National Science Foundation with CONSER, each united with alternative researchers like ACIRI. Ns has invariably enclosed substantial contributions from alternative researchers, that includes wireless code from the UCB Daedelus and CMU Monarch comes and Sun Microsystems.

Average Packet End to End Delay Calculation

 




Suppose we run a simulation ,and obtain a trace file. We have to compute the average values of delay. Let’s define delay as the duration since a packet enters a queue of a beginning node until it it arrives at the ending node. The definition of beginning and ending nodes depends on the type of delay under consideration as follows:

Average delay is computed by :
 E(delay)= summation of all delay samples/ no. of samples
where a delay sample is delay associated with a packet. 
The key to collect delay sample is to record packet arrival time in an associative array variable, namely t_arr whose index is the packet unique ID. 
When a new packet enters a queue of a beginning node, the associated time is recorded in a variable $t_arr[pid], where pid is the packet unique ID. 
When a packet with the same unique ID arrives at an ending node, the delay is computed as “(current time) - $t_arr[pid]”. 
The delay same is accumulated in the variable $total_delay, and the number of samles is incremented by one.
At the end of the program, the average delay is computed and stored in a variable avg_delay.


A sample execution of the AWK script is shown below:


============ awk for delay =========
BEGIN {
fromNode=2; toNode=3;
num_samples = 0;
total_delay = 0;
}
/^\+/&&$3==fromNode&&$4==toNode {
t_arr[$12] = $2;
};
/^r/&&$3==fromNode&&$4==toNode {
if (t_arr[$12] > 0) {
num_samples++;
delay = $2 - t_arr[$12];
total_delay += delay;
};
};
END{
avg_delay = total_delay/num_samples;
print "Average queuing transmission delay is " avg_delay " seconds";
print "Measurement details:";
print " - Start when packets enter the node " fromNode;
print " - Until the packets arrive the node " toNode;
};
============ abbfile.awk =========
BEGIN {
src="0.0"; dst="3.0";
num_samples = 0;
total_delay = 0;
}
/^\+/&&$9==src&&$10==dst {
t_arr[$12] = $2;
};
/^r/&&$9==src&&$10==dst{
if (t_arr[$12] > 0) {
num_samples++;
delay = $2 - t_arr[$12];
total_delay += delay;
};
};
END{
avg_delay = total_delay/num_samples;
print "Average end-to-end transmission delay is " avg_delay " seconds";
print "Measurement details:";
print " - Since packets are created from the address " src;
print " - Until the packets are destroyed at the address " dst;
};



Enjoy. Happy Coding.