How to Install:
sudo apt-get install xgraph
NS2 Program Based on UDP
NS2 Program Based on TCP
You will need both source code to plot ns2 simulations in this example.
Additionally we have to use these perl scripts to extract data from output trace generated from NS2
# type: perl throughput.pl <trace file> <required node> <granlarity> > output file
$infile=$ARGV[0];
$tonode=$ARGV[1];
$granularity=$ARGV[2];
#we compute how many bytes were transmitted during time interval specified
#by granularity parameter in seconds
$sum=0;
$clock=0;
open (DATA,"<$infile")
|| die "Can't open $infile $!";
while (<DATA>) {
@x = split(' ');
#column 1 is time
if ($x[1]-$clock <= $granularity)
{
#checking if the event corresponds to a reception
if ($x[0] eq 'r')
{
#checking if the destination corresponds to arg 1
if ($x[3] eq $tonode)
{
#checking if the packet type is TCP
if ($x[4] eq 'tcp')
{
$sum=$sum+$x[5];#number of bytes in the period
}
}
}
}
else
{ $throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
}
}#end while
$throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
close DATA;
exit(0);
# type: perl throughput.pl <trace file> <required node> <granlarity> > output file
$infile=$ARGV[0];
$tonode=$ARGV[1];
$granularity=$ARGV[2];
#we compute how many bytes were transmitted during time interval specified
#by granularity parameter in seconds
$sum=0;
$clock=0;
open (DATA,"<$infile")
|| die "Can't open $infile $!";
while (<DATA>) {
@x = split(' ');
#column 1 is time
if ($x[1]-$clock <= $granularity)
{
#checking if the event corresponds to a reception
if ($x[0] eq 'r')
{
#checking if the destination corresponds to arg 1
if ($x[3] eq $tonode)
{
#checking if the packet type is TCP
if ($x[4] eq 'cbr')
{
$sum=$sum+$x[5];#number of bytes in the period
}
}
}
}
else
{ $throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
}
}#end while
$throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
close DATA;
exit(0);
We have written a shell script to do our job quickly.
#!bin/bash
perl Perltcp.pl outudp.tr 4 0.5 > tcp-udp-one.tr
perl Perlcbr.pl outudp.tr 5 0.5 > tcp-udp-two.tr
xgraph -bg white tcp-udp-one.tr tcp-udp-two.tr &
perl Perltcp.pl outtcp.tr 4 0.5 > tcp-tcp-one.tr
perl Perltcp.pl outtcp.tr 5 0.5 > tcp-tcp-two.tr
xgraph -bg white tcp-tcp-one.tr tcp-tcp-two.tr &
sh genGraph.sh
OUTPUT
sudo apt-get install xgraph
NS2 Program Based on UDP
NS2 Program Based on TCP
You will need both source code to plot ns2 simulations in this example.
Additionally we have to use these perl scripts to extract data from output trace generated from NS2
# type: perl throughput.pl <trace file> <required node> <granlarity> > output file
$infile=$ARGV[0];
$tonode=$ARGV[1];
$granularity=$ARGV[2];
#we compute how many bytes were transmitted during time interval specified
#by granularity parameter in seconds
$sum=0;
$clock=0;
open (DATA,"<$infile")
|| die "Can't open $infile $!";
while (<DATA>) {
@x = split(' ');
#column 1 is time
if ($x[1]-$clock <= $granularity)
{
#checking if the event corresponds to a reception
if ($x[0] eq 'r')
{
#checking if the destination corresponds to arg 1
if ($x[3] eq $tonode)
{
#checking if the packet type is TCP
if ($x[4] eq 'tcp')
{
$sum=$sum+$x[5];#number of bytes in the period
}
}
}
}
else
{ $throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
}
}#end while
$throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
close DATA;
exit(0);
# type: perl throughput.pl <trace file> <required node> <granlarity> > output file
$infile=$ARGV[0];
$tonode=$ARGV[1];
$granularity=$ARGV[2];
#we compute how many bytes were transmitted during time interval specified
#by granularity parameter in seconds
$sum=0;
$clock=0;
open (DATA,"<$infile")
|| die "Can't open $infile $!";
while (<DATA>) {
@x = split(' ');
#column 1 is time
if ($x[1]-$clock <= $granularity)
{
#checking if the event corresponds to a reception
if ($x[0] eq 'r')
{
#checking if the destination corresponds to arg 1
if ($x[3] eq $tonode)
{
#checking if the packet type is TCP
if ($x[4] eq 'cbr')
{
$sum=$sum+$x[5];#number of bytes in the period
}
}
}
}
else
{ $throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
}
}#end while
$throughput=$sum/$granularity;
print STDOUT "$x[1] $throughput\n";
$clock=$clock+$granularity;
$sum=0;
close DATA;
exit(0);
We have written a shell script to do our job quickly.
#!bin/bash
perl Perltcp.pl outudp.tr 4 0.5 > tcp-udp-one.tr
perl Perlcbr.pl outudp.tr 5 0.5 > tcp-udp-two.tr
xgraph -bg white tcp-udp-one.tr tcp-udp-two.tr &
perl Perltcp.pl outtcp.tr 4 0.5 > tcp-tcp-one.tr
perl Perltcp.pl outtcp.tr 5 0.5 > tcp-tcp-two.tr
xgraph -bg white tcp-tcp-one.tr tcp-tcp-two.tr &
sh genGraph.sh
OUTPUT
Contact:
Mobile: +91-7276355704
WhatsApp: +91-7276355704
Email: roshanphelonde@rediffmail.com