How to Install:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo apt-get install xgraph |
1. NS2 UDP Example
2. NS2 TCP Example
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!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 & |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sh genGraph.sh |
Sample out put:
thanx machan! very usefull
ReplyDeletesir please explain what is the meaning of this perl script
ReplyDeleteperl Perltcp.pl outudp.tr 4 0.5 > tcp-udp-one.tr
what is 4 and 0.5 here
Thanks
# type: perl throughput.pl > output file
Delete#we compute how many bytes were transmitted during time interval specified by granularity parameter in seconds
go through your out put trace files.
sir please provide a perl script to calculate energy of nodes in a sensor networks
ReplyDeleteThanks
i am writing the code perfectly, yet it says that no file or directory is found at line 8! Please help.
ReplyDeleteyou need to provide out put files from ns 2 simulations,
Deletehello can u tell me how to draw xgraph for 802.11 and 802.15.4 in ns2 i have trace and nam file both i dont know how to plot exatly both the curve in xgraph n write code gone thr many examples but still not getting it plz mail me @ kaveris.career@gmail.com
ReplyDeleteHello sir
ReplyDeleteI am using awk scripts for plotting graphs in ns2 using awk -f abc.awk abc.tr > abc.xg
and after that i plot graph with xgraph abc.xg
this command displays values for single input i.e abc.xg
Now i want to plot a graph in which i can compare values for different xg files to get the graphs shown in this blog using perl scripting.
Please tell me how to do this with awk scripts.
Thanks
sir please explain what is the meaning of the 10 the power 3
ReplyDelete