PDA

View Full Version : [tcl] script per ns-2


basileus_82
14-07-2009, 14:03
Volevo sapere:

perchè gli ACK del tcp1 non fanno la stessa strada a ritroso ma seguono il DV?
Come poter rimediare a questa cosa, ossia come poter dire agli ack di effettuare lo stesso percorso dei tcp1 a ritroso?

questo è il mio script dove c'è un percorso manuale da n1 a n12 (tcp1) + il DV (Distance Vector)



#Create a simulator object
set ns [new Simulator]

# routing protocol

$ns rtproto DV
$ns src_rting 1

$ns color 1 Blue
$ns color 2 Red
$ns color 3 Green

#Open the nam trace file
set nf [open example3.tr w]
$ns trace-all $nf
set f [open example3.nam w]
$ns namtrace-all $f

proc finish {} {
global ns nf f
$ns flush-trace
close $nf
#close trace file
close $f
exec nam example3.nam
exit 0
}

#Create four nodes
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 n11 [$ns node]
set n12 [$ns node]


#Create links between the nodes
$ns duplex-link $n1 $n2 1Mb 10ms DropTail
$ns duplex-link $n2 $n3 1Mb 10ms DropTail
$ns duplex-link $n3 $n4 1Mb 10ms DropTail
$ns duplex-link $n4 $n5 1Mb 10ms DropTail
$ns duplex-link $n5 $n6 1Mb 10ms DropTail
$ns duplex-link $n5 $n9 1Mb 10ms DropTail
$ns duplex-link $n5 $n11 1Mb 10ms DropTail
$ns duplex-link $n6 $n7 1Mb 10ms DropTail
$ns duplex-link $n7 $n8 1Mb 10ms DropTail
$ns duplex-link $n9 $n10 1Mb 10ms DropTail
$ns duplex-link $n10 $n11 1Mb 10ms DropTail
$ns duplex-link $n11 $n12 1Mb 10ms DropTail

[$ns link $n5 $n11] cost 6
[$ns link $n11 $n5] cost 6
#[$ns link $n1 $n3] cost 6
#[$ns link $n3 $n1] cost 6


#Create a TCP agent and attach it to node n0
set tcp1 [new Agent/TCP]
$ns attach-agent $n1 $tcp1
$tcp1 set fid_ 1
set null1 [new Agent/TCPSink]
$ns attach-agent $n3 $null1
$ns connect $tcp1 $null1

set tcp2 [new Agent/TCP]
$ns attach-agent $n8 $tcp2
set null2 [new Agent/TCPSink]
$tcp2 set fid_ 2
$ns attach-agent $n12 $null2
$ns connect $tcp2 $null2

set tcp3 [new Agent/TCP]
$ns attach-agent $n12 $tcp3
set null3 [new Agent/TCPSink]
$tcp3 set fid_ 3
$ns attach-agent $n8 $null3
$ns connect $tcp3 $null3

set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $tcp1

set cbr2 [new Application/Traffic/CBR]
$cbr2 attach-agent $tcp2

set cbr3 [new Application/Traffic/CBR]
$cbr3 attach-agent $tcp3

$tcp1 target [$n1 set src_agent_]

set temp [$n1 set src_agent_]

$ns at 0.1 "$temp install_connection [$tcp1 set fid_] [$n1 id] [$n12 id] [$n1 id] [$n2 id] [$n3 id] [$n4 id] [$n5 id] [$n11 id] [$n12 id] "


$ns at 0.1 "$cbr1 start"
$ns at 2.0 "$cbr1 stop"

$ns at 0.1 "$cbr2 start"
$ns at 2.0 "$cbr2 stop"

$ns at 0.1 "$cbr3 start"
$ns at 2.0 "$cbr3 stop"

$ns at 2.5 "finish"

$ns run