martes, 9 de abril de 2013

Actividad 6: Simulación de ruteo en ns2

Para la tarea de esta semana tenemos que simular el ruteo en una topología de red con el programa ns2. Yo escogí hacer una topología de anillo.

ALGO DE TEORÍA

Topología
Esta topología es una de las más viejas, y tiene las siguientes ventajas:

- Fácil de instalar y reconfigurar
- Para añadir o quitar dispositivos solo hay que mover dos conexiones.
- Es una arquitectura muy compacta y pocas veces tiene conflictos con otros usuarios.
- Provee una organización de igual a igual para todas las computadoras.
- No disminuye el rendimiento cuando hay muchos usuarios.

Sin embargo, esta topología también tiene ciertas desventajas:

- Hay restricciones en cuanto a la longitud del anillo y también en cuanto a la cantidad de dispositivos conectados a la red.
- Todas las señales van en una sola dirección y para llegar a una computadora deben pasar por todas las computadoras del medio.
- Cuando una computadora falla altera toda la red.

Ruteo
En cuanto a los protocolos de ruteo existen dos clases principales: uno es el protocolo de vector de distancias, y el otro es el protocolo de estado de enlace. El último es el que se implementa en este ejemplo.

Este protocolo consiste en los siguientes pasos:
1. Descubre a sus vecinos y sus direcciones
2. Mide el costo a cada uno de sus vecinos.
3. Construye el paquete con la información que ha recolectado.
4. Lo envía a los demás routers.
5. Calcula la ruta mínima a dichos routers.

SIMULACIÓN

El código para la simulación de la topología en anillo es el siguiente:

set ns [new Simulator]
#Enrutamiento Estado de enlace (Link State)
$ns rtproto LS
#Archivos para crear la red en nam
set nf [open a.nam w]
set nt [open trace.tr w]
$ns namtrace-all $nf
$ns trace-all $nt
proc finish {} {
global ns nf nt
$ns flush-trace
close $nf
close $nt
exec nam -a a.nam &
exit 0
}
#Nodos y Conexiones
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
set n4 [$ns node]
$ns duplex-link $n0 $n1 1Mb 10ms DropTail
$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 $n0 1Mb 10ms DropTail
#Creamos el agente UDP
set udp0 [new Agent/UDP]
$ns attach-agent $n0 $udp0
set cbr0 [new Application/Traffic/CBR]
$cbr0 set packetSize_ 500
$cbr0 set interval_ 0.005
$cbr0 attach-agent $udp0
set null0 [new Agent/Null]
$ns attach-agent $n3 $null0
$ns connect $udp0 $null0
$ns at 0.5 "$cbr0 start"
$ns rtmodel-at 1.0 down $n0 $n1
$ns rtmodel-at 2.0 up $n0 $n1
$ns at 4.5 "$cbr0 stop"
#Terminamos el proceso después de 5 segundos
$ns at 5.0 "finish"
#Ejecutar
$ns run

Y la ejecución es la siguiente:


Referencias
http://gigatecno.blogspot.mx/2012/03/ventajas-y-desventajas-topologia-anillo.html

http://en.wikipedia.org/wiki/Link-state_routing_protocol

2 comentarios: