Bakshi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

Experiment -4

Evaluate the performance of DropTail and RED


Queue management schemes
Aim:
To write a TCL script to create two nodes with duplex links between them

Materials Required:
• Ubuntu OS
• NSG2.1 Simulator
• NS2
• NAM

Theory:
In the context of NS2 (Network Simulator 2), transmission modes typically refer
to the ways in which data is transmitted between nodes in a simulated network
environment. NS2 is a discrete event network simulator commonly used for
research and educational purposes.
In NS2, the transmission modes are often defined based on the network
protocols being simulated and the specific characteristics of the communication
being modeled.
Simplex Transmission: In simplex transmission mode in NS2, data flows in only
one direction between the communicating nodes.
Half-Duplex Transmission: Half-duplex transmission mode in NS2 allows data to
flow in both directions between nodes, but not simultaneously.
Full-Duplex Transmission: Full-duplex transmission mode in NS2 enables
simultaneous two-way communication between nodes. This means that nodes
can transmit and receive data simultaneously, leading to more efficient
communication. Full-duplex transmission is commonly used in modeling
scenarios like wired Ethernet networks or point-to-point links.
The choice of transmission mode depends on the specific requirements of the
simulation and the characteristics of the network being modelled
Procedure:
1. Download the required software like NS, NSG2.1, NAM on Ubuntu OS.
2. Open the network simulator and select wired scenario.
3. Select the nodes and connect them with a duplex link.
4. Create the network with TCP protocol and FTP function.
5. Now save the TCL script generated from TCL and trace , nam files from
parameters with a unique name.
6. Open the command prompt and enter ns file.tcl.
7. If network animation is generated or trace , nam files are generated then
the code is a success.
8. Now open the cmd and enter “awk -f awkfile.awk file.tr”,to use the awk
files to calculate throughput and end-to-end delay.
9. Repeat the experiment with 1500 and 3000 packet size with DropTail and
RED queue and record the observation.

Network Simulation - 1:

TCL Script -1: #for 11 nodes network


# This script is created by NSG2 beta1
# <http://wushoupong.googlepages.com/nsg>
#===================================
# Simulation parameters setup
#===================================
set val(stop) 10.0 ;# time of simulation end
#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]
#Open the NS trace file
set tracefile [open wiredring.tr w]
$ns trace-all $tracefile
#Open the NAM trace file
set namfile [open wiredring.nam w]
$ns namtrace-all $namfile
#===================================
# Nodes Definition
#===================================
#Create 11 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]
set n8 [$ns node]
set n9 [$ns node]
set n10 [$ns node]
#===================================
# Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n2 $n0 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n2 $n0 25
$ns duplex-link $n0 $n8 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n0 $n8 25
$ns duplex-link $n8 $n1 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n8 $n1 25
$ns duplex-link $n1 $n5 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n1 $n5 25
$ns duplex-link $n3 $n0 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n3 $n0 25
$ns duplex-link $n1 $n6 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n1 $n6 50
$ns duplex-link $n4 $n0 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n4 $n0 25
$ns duplex-link $n7 $n1 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n7 $n1 25
$ns duplex-link $n0 $n10 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n0 $n10 25
$ns duplex-link $n10 $n1 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n10 $n1 25
$ns duplex-link $n0 $n9 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n0 $n9 25
$ns duplex-link $n9 $n1 100.0Mb 10ms RED # or DropTail
$ns queue-limit $n9 $n1 25
#Give node position (for NAM)
$ns duplex-link-op $n2 $n0 orient right-down
$ns duplex-link-op $n0 $n8 orient right
$ns duplex-link-op $n8 $n1 orient right
$ns duplex-link-op $n1 $n5 orient right-up
$ns duplex-link-op $n3 $n0 orient right
$ns duplex-link-op $n1 $n6 orient right
$ns duplex-link-op $n4 $n0 orient right-up
$ns duplex-link-op $n7 $n1 orient left-up
$ns duplex-link-op $n0 $n10 orient right-up
$ns duplex-link-op $n10 $n1 orient right-down
$ns duplex-link-op $n0 $n9 orient right-down
$ns duplex-link-op $n9 $n1 orient right-up
#===================================
# Agents Definition
#===================================
#Setup a TCP connection
set tcp0 [new Agent/TCP]
$ns attach-agent $n2 $tcp0
set sink1 [new Agent/TCPSink]
$ns attach-agent $n7 $sink1
$ns connect $tcp0 $sink1
$tcp0 set packetSize_ 1500 # or 3000
#===================================
# Applications Definition
#===================================
#Setup a FTP Application over TCP connection
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ns at 1.0 "$ftp0 start"
$ns at 2.0 "$ftp0 stop"
#===================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefile namfile
$ns flush-trace
close $tracefile
close $namfile
exec nam wiredring.nam &
exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run
Trace File - 1:

Network Simulation - 2:
TCL Script - 2: #for 21 nodes network
# This script is created by NSG2 beta1
# <http://wushoupong.googlepages.com/nsg>
#===================================
# Simulation parameters setup
#===================================
set val(stop) 10.0 ;# time of simulation end
#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]
#Open the NS trace file
set tracefile [open exp42.tr w]
$ns trace-all $tracefile
#Open the NAM trace file
set namfile [open exp42.nam w]
$ns namtrace-all $namfile
#===================================
# Nodes Definition
#===================================
#Create 21 nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]
set n6 [$ns node]
set n7 [$ns node]
set n8 [$ns node]
set n9 [$ns node]
set n10 [$ns node]
set n19 [$ns node]
set n20 [$ns node]
set n21 [$ns node]
set n22 [$ns node]
set n23 [$ns node]
set n24 [$ns node]
set n25 [$ns node]
set n26 [$ns node]
set n27 [$ns node]
set n28 [$ns node]
#===================================
# Links Definition
#===================================
#Createlinks between nodes
$ns duplex-link $n2 $n19 100.0Mb 10ms RED
$ns queue-limit $n2 $n19 25
$ns duplex-link $n3 $n20 100.0Mb 10ms RED
$ns queue-limit $n3 $n20 25
$ns duplex-link $n4 $n21 100.0Mb 10ms RED
$ns queue-limit $n4 $n21 25
$ns duplex-link $n19 $n0 100.0Mb 10ms RED
$ns queue-limit $n19 $n0 25
$ns duplex-link $n20 $n0 100.0Mb 10ms RED
$ns queue-limit $n20 $n0 25
$ns duplex-link $n21 $n0 100.0Mb 10ms RED
$ns queue-limit $n21 $n0 25
$ns duplex-link $n0 $n22 100.0Mb 10ms RED
$ns queue-limit $n0 $n22 25
$ns duplex-link $n22 $n8 100.0Mb 10ms RED
$ns queue-limit $n22 $n8 25
$ns duplex-link $n8 $n23 100.0Mb 10ms RED
$ns queue-limit $n8 $n23 25
$ns duplex-link $n23 $n1 100.0Mb 10ms RED
$ns queue-limit $n23 $n1 25
$ns duplex-link $n1 $n24 100.0Mb 10ms RED
$ns queue-limit $n1 $n24 25
$ns duplex-link $n24 $n5 100.0Mb 10ms RED
$ns queue-limit $n24 $n5 25
$ns duplex-link $n1 $n25 100.0Mb 10ms RED
$ns queue-limit $n1 $n25 25
$ns duplex-link $n25 $n6 100.0Mb 10ms RED
$ns queue-limit $n25 $n6 25
$ns duplex-link $n1 $n26 100.0Mb 10ms RED
$ns queue-limit $n1 $n26 25
$ns duplex-link $n26 $n7 100.0Mb 10ms RED
$ns queue-limit $n26 $n7 25
$ns duplex-link $n22 $n27 100.0Mb 10ms RED
$ns queue-limit $n22 $n27 25
$ns duplex-link $n27 $n23 100.0Mb 10ms RED
$ns queue-limit $n27 $n23 25
$ns duplex-link $n22 $n28 100.0Mb 10ms RED
$ns queue-limit $n22 $n28 25
$ns duplex-link $n28 $n23 100.0Mb 10ms RED
$ns queue-limit $n28 $n23 25
$ns duplex-link $n0 $n10 100.0Mb 10ms RED
$ns queue-limit $n0 $n10 25
$ns duplex-link $n10 $n1 100.0Mb 10ms RED
$ns queue-limit $n10 $n1 25
$ns duplex-link $n0 $n9 100.0Mb 10ms RED
$ns queue-limit $n0 $n9 25
$ns duplex-link $n1 $n9 100.0Mb 10ms RED
$ns queue-limit $n1 $n9 25

#Give node position (for NAM)


$ns duplex-link-op $n2 $n19 orient right-down
$ns duplex-link-op $n3 $n20 orient right
$ns duplex-link-op $n4 $n21 orient right-up
$ns duplex-link-op $n19 $n0 orient right-down
$ns duplex-link-op $n20 $n0 orient right
$ns duplex-link-op $n21 $n0 orient right-up
$ns duplex-link-op $n0 $n22 orient right
$ns duplex-link-op $n22 $n8 orient right
$ns duplex-link-op $n8 $n23 orient right
$ns duplex-link-op $n23 $n1 orient right
$ns duplex-link-op $n1 $n24 orient right-up
$ns duplex-link-op $n24 $n5 orient right-up
$ns duplex-link-op $n1 $n25 orient right
$ns duplex-link-op $n25 $n6 orient right
$ns duplex-link-op $n1 $n26 orient right-down
$ns duplex-link-op $n26 $n7 orient right-down
$ns duplex-link-op $n22 $n27 orient right-up
$ns duplex-link-op $n27 $n23 orient right-down
$ns duplex-link-op $n22 $n28 orient right-down
$ns duplex-link-op $n28 $n23 orient right-up
$ns duplex-link-op $n0 $n10 orient right-up
$ns duplex-link-op $n10 $n1 orient right-down
$ns duplex-link-op $n0 $n9 orient right-down
$ns duplex-link-op $n1 $n9 orient left-down
#===================================
# Agents Definition
#===================================
#Setup a TCP connection
set tcp0 [new Agent/TCP]
$ns attach-agent $n2 $tcp0
set sink1 [new Agent/TCPSink]
$ns attach-agent $n7 $sink1
$ns connect $tcp0 $sink1
$tcp0 set packetSize_ 1500
#===================================
# Applications Definition
#===================================
#Setup a FTP Application over TCP connection
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp0
$ns at 1.0 "$ftp0 start"
$ns at 2.0 "$ftp0 stop"
#===================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefile namfile
$ns flush-trace
close $tracefile
close $namfile
exec nam exp42.nam &
exit 0
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run
Trace File - 2:

Observation:

Result:
The performance of DropTail and RED queue is evaluated for 1500 and 3000
packet size using throughput and e2e-delay .

You might also like