puts "Corriendo Simulación de Topología de Anillo"

#Creamos el simulador a usar
set ns [new Simulator]

#Enrutamiento Distance Vector
$ns rtproto DV

#Abrimos un archivo .nam el cual almacenara el trafico producido por el simulador
set nf [open out.nam w]
$ns namtrace-all $nf

#Se define el proceso que tendra la simulacion
proc finish {} {
	#Se definen las variables ns y nf
	global ns nf
	#Se guarda en la variable nf el trafico lo que a su vez se guarda en el archivo .nam
	$ns flush-trace
	#Se cierra la variable nf para que no almacene mas información
	close $nf
	#Se ejecuta el archivo .nam
	exec nam out.nam &
	exit 0
}

#Creamos los nodos a utilizar
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
set n5 [$ns node]

#Conectamos los nodos a una velocidad de 2Mb con un tiempo de envio de 10ms
$ns duplex-link $n0 $n1 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 2Mb 10ms DropTail
$ns duplex-link $n3 $n4 2Mb 10ms DropTail
$ns duplex-link $n4 $n5 2Mb 10ms DropTail
$ns duplex-link $n5 $n0 2Mb 10ms DropTail

#Se acomodan los nodos en la simulacion
$ns duplex-link-op $n0 $n1 orient left-up
$ns duplex-link-op $n1 $n2 orient left
$ns duplex-link-op $n2 $n3 orient left-down
$ns duplex-link-op $n3 $n4 orient right-down
$ns duplex-link-op $n4 $n5 orient right
$ns duplex-link-op $n5 $n0 orient right-up

#Se crea una conexion UDP y esta comenzara en el nodo n0
set udp [new Agent/UDP]
$ns attach-agent $n0 $udp

set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false

set null [new Agent/Null]
$ns attach-agent $n3 $null

$ns connect $udp $null

$ns at 0.1 "$cbr start"
$ns at 2.5 "$cbr stop"

$ns at 3.0 "finish"

#Corremos la simulacion
$ns run