0% found this document useful (0 votes)
25 views

Lab 2

Uploaded by

sarvesh.ds
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Lab 2

Uploaded by

sarvesh.ds
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

2.

Implement simple ESS and with transmitting nodes in wire-less LAN by


simulation and determine the throughput with respect to transmission of
packets.
.tcl file:
# Create a NS simulator
set ns [new Simulator]

# Open the NS trace file


set tf [open lab2.tr w]
$ns trace-all $tf

# Setup topography object


set topo [new Topography]
$topo load_flatgrid 1000 1000

# Open the NAM trace file


set nf [open lab2.nam w]
$ns namtrace-all-wireless $nf 1000 1000

# Mobile node parameter setup


$ns node-config -adhocRouting DSDV \
-llType LL \
-macType Mac/802_11 \
-ifqType Queue/DropTail \
-ifqLen 50 \
-phyType Phy/WirelessPhy \
-channelType Channel/WirelessChannel \
-propType Propagation/TwoRayGround \
-antType Antenna/OmniAntenna \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON

# Nodes definition
create-god 3 # General Operations Director

# Create 3 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
$n0 label "tcp0"
$n1 label "sink1/tcp1"
$n2 label "sink2"
$n0 set X_ 50
$n0 set Y_ 50
$n0 set Z_ 0
$n1 set X_ 100
$n1 set Y_ 100
$n1 set Z_ 0
$n2 set X_ 600
$n2 set Y_ 600
$n2 set Z_ 0
$ns at 0.1 "$n0 setdest 50 50 15"
$ns at 0.1 "$n1 setdest 100 100 25"
$ns at 0.1 "$n2 setdest 600 600 25"

# Agent definition
set tcp0 [new Agent/TCP]
$ns attach-agent $n0 $tcp0
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
set sink1 [new Agent/TCPSink]
$ns attach-agent $n1 $sink1
$ns connect $tcp0 $sink1
set tcp1 [new Agent/TCP]
$ns attach-agent $n1 $tcp1
set ftp1 [new Application/FTP]
$ftp1 attach-agent $tcp1
set sink2 [new Agent/TCPSink]
$ns attach-agent $n2 $sink2
$ns connect $tcp1 $sink2
$ns at 5 "$ftp0 start"
$ns at 5 "$ftp1 start"
$ns at 100 "$n1 setdest 550 550 15"
$ns at 190 "$n1 setdest 70 70 15"

# Define a finish procedure


proc finish {} {
global ns nf tf
$ns flush-trace
exec nam lab2.nam &
close $tf
exit 0
}
$ns at 250 "finish"

# Start simulation
$ns run

.awk file:

BEGIN {
count1 = 0;
count 2 = 0;
pack1 = 0;
pack2 = 0;
time1 = 0;
time2 = 0;
}
{
if ($1 == "r" && $3 == "_1_" && $4 == "AGT") {
count1++;
pack1 += $8;
time1 = $2;
}
if ($1 == "r" && $3 == "_2_" && $4 == "AGT") {
count2++;
pack2 += $8;
time2 = $2;
}
}
END {
printf("The throughput from n0 to n1 is %f Mbps\n", (count1 * pack1 * 8) / (t1 *
1000000));
printf("The throughput from n1 to n2 is %f Mbps\n", (count2 * pack2 * 8) / (t2 *
1000000));
}
Steps for execution
o Open gedit editor and type program. Program name should have the extension “ .tcl ”
[root@localhost ~]# gedit lab2.tcl
o Save the program and close the file.
o Open gedit editor and type awk program. Program name should have the extension
“.awk ”
[root@localhost ~]# gedit lab2.awk
o Save the program and close the file.
o Run the simulation program
[root@localhost~]# sudo ns lab4.tcl.
Here “ns” indicates network simulator.
o Now press the play button in the simulation window and the simulation will begins.
o After simulation is completed run awk file to see the output ,
[root@localhost~]# awk –f lab4.awk lab4.tr
o To see the trace file contents open the file as ,
[root@localhost~]# gedit lab4.tr

You might also like