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

CN Lab 1

Uploaded by

Aman Raj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

CN Lab 1

Uploaded by

Aman Raj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1

#Create Simulator

set ns [new Simulator]


#Open Trace file and NAM file
set ntrace [open prog1.tr w]
$ns trace-all $ntrace
set namfile [open prog1.nam w] CN Program
$ns namtrace-all $namfile set ns [new Simulator]
#Finish Procedure set nf [open lab1.nam w]
proc Finish {} { $ns namtrace-all $nf
global ns ntrace namfile set tf [open lab1.tr w]
#Dump all the trace data and close the $ns trace-all $tf
files proc finish { } {
$ns flush-trace global ns nf tf
close $ntrace $ns flush-trace
close $namfile close $nf
#Execute the nam animation file close $tf
exec nam prog1.nam & exec nam lab1.nam &
#Show the number of packets dropped exit 0
exec echo "The number of packet drops }
is " & set n0 [$ns node]
exec grep -c "^d" prog1.tr & set n1 [$ns node]
exit 0 set n2 [$ns node]
} set n3 [$ns node]
#Create 3 nodes $ns duplex-link $n0 $n2 200Mb
set n0 [$ns node] 10ms DropTail
set n1 [$ns node] $ns duplex-link $n1 $n2 100Mb 5ms
set n2 [$ns node] DropTail
#Label the nodes $ns duplex-link $n2 $n3 1Mb
$n0 label "TCP Source" 1000ms DropTail
$n2 label "Sink" $ns queue-limit $n0 $n2 10
#Set the color $ns queue-limit $n1 $n2 10
$ns color 1 blue set udp0 [new Agent/UDP]
#Create Links between nodes $ns attach-agent $n0 $udp0
#You need to modify the bandwidth to set cbr0 [new
observe the variation in packet drop Application/Traffic/CBR]
$ns duplex-link $n0 $n1 1Mb 10ms $cbr0 set packetSize_ 500
DropTail $cbr0 set interval_ 0.005
$ns duplex-link $n1 $n2 1Mb 10ms $cbr0 attach-agent $udp0
DropTail set udp1 [new Agent/UDP]
#Make the Link Orientation $ns attach-agent $n1 $udp1
$ns duplex-link-op $n0 $n1 orient right set cbr1 [new
$ns duplex-link-op $n1 $n2 orient right Application/Traffic/CBR]
#Set Queue Size $cbr1 attach-agent $udp1
#You can modify the queue length as set udp2 [new Agent/UDP]
well to observe the variation in packet $ns attach-agent $n2 $udp2
drop set cbr2 [new
$ns queue-limit $n0 $n1 10 Application/Traffic/CBR]
$ns queue-limit $n1 $n2 10 $cbr2 attach-agent $udp2
#Set up a Transport layer connection. set null0 [new Agent/Null]
set tcp0 [new Agent/TCP] $ns attach-agent $n3 $null0
$ns attach-agent $n0 $tcp0 $ns connect $udp0 $null0
set sink0 [new Agent/TCPSink] $ns connect $udp1 $null0
$ns attach-agent $n2 $sink0 $ns at 0.1 "$cbr0 start"
$ns connect $tcp0 $sink0 $ns at 0.2 "$cbr1 start"
#Set up an Application layer Traffic $ns at 1.0 "finish"
set cbr0 [new Application/Traffic/CBR] $ns run
$cbr0 set type_ CBR BEGIN
$cbr0 set packetSize_ 100 {c
$cbr0 set rate_ 1Mb =0;
$cbr0 set random_ false }{i
$cbr0 attach-agent $tcp0 f($1=="d")
$tcp0 set class_ 1 {c
#Schedule Events ++;
$ns at 0.0 "$cbr0 start" printf("%s\t%s\n",$5,$11);
$ns at 5.0 "Finish" }}E
#Run the Simulation ND{ printf("The number of packets
$ns run dropped = %d\n",c);
}

You might also like