#Creamos el objeto a simulador
set ns [new Simulator]
#Define los diferentes colores del
flujo de datos
$ns color 1 Blue
$ns color 2 Red
#Abrimos el archivo de trazado
set nf [open out.nam w]
$ns namtrace-all $nf
#Defimos el procedimiento 'finish'
proc finish {} {
global ns nf
$ns flush-trace
#Cerramos el
archivo de trazado
close $nf
#Execumos en
NAM el archivo de trazado
exec nam out.nam &
exit 0
}
#Creamos los cuatro nodos
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Creamos la union de los distintos
nodos
$ns duplex-link $n0 $n2 1Mb 10ms
DropTail
$ns duplex-link $n1 $n2 1Mb 10ms
DropTail
$ns duplex-link $n3 $n2 1Mb 10ms
DropTail
#Le indicamos donde queremos que
aparezcan en NAM los nodos
$ns duplex-link-op $n0 $n2 orient
right-down
$ns duplex-link-op $n1 $n2 orient
right-up
$ns duplex-link-op $n2 $n3 orient
right
#Creamos el agente UDP asociado al
nodo n0
set udp0 [new Agent/UDP]
$udp0 set class_ 1
$ns attach-agent $n0 $udp0
#Creamos un tráfico CBR de
la fuente asociado a udp0
set cbr0 [new
Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
#Creamos el agente UDP asociado
con el nodo n1
set udp1 [new Agent/UDP]
$udp1 set class_ 2
$ns attach-agent $n1 $udp1
#Monitor de cola para la union
entre el nodo 2 y el nodo 3
$ns duplex-link-op $n2 $n3
queuePos 0.5
#Crear un trafico CBR asociado a
la fuante de udp1
set cbr1 [new
Application/Traffic/CBR]
$cbr1 set packetSize_ 500
$cbr1 set interval_ 0.005
$cbr1 attach-agent $udp1
#crear un agente nulo (un trafico
sink?) asociado al nodo n3
set null0 [new Agent/Null]
$ns attach-agent $n3 $null0
#Conectar las fuentes de
trafico con el alsink
$ns connect $udp0 $null0
$ns connect $udp1 $null0
#Planificamos la secuencia de
sucesos de los agentes CBR
$ns at 0.5 "$cbr0 start"
$ns at 1.0 "$cbr1 start"
$ns at 4.0 "$cbr1 stop"
$ns at 4.5 "$cbr0 stop"
#Llamamos al procedimiento finish
despues de 5 segundos de simulacion
$ns at 5.0 "finish"
#Hacemos correr la simulacion
$ns run