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

Showing posts with label awk. Show all posts
Showing posts with label awk. Show all posts

Thursday, 2 September 2021

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.

Sunday, 11 May 2014

VISUALIZING TRACE FILE DATA WITH GnuPlot



Gnuplot is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other platforms. The source code is copyrighted but freely distributed (i.e., you don't have to pay for it). It was originally created to allow scientists and students to visualize mathematical functions and data interactively, but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by third-party applications like Octave. Gnuplot has been supported and under active development since 1986. 
Gnuplot can be used to visualize the trace file data; several network parameters can be plotted using this Gnu plot..for more details click here

Saturday, 10 May 2014

SCRIPT TO FIND DESTINATION AND ENERGY OF NODES

Here we created a script to print final position of node and energy of nodes in your terminal.We hope it is useful for you all....!!!!!!

For script and details, Click here 

Screenshot: