martes, 30 de abril de 2013

Tarea 5: Experimento de congestión

Para la tarea de esta semana se pidió realizar un experimento acerca del control de congestión utilizando el simulador NS-2 con dos esquemas diferentes. Para crear las topologías y generar tráfico, se utilizaron programas de tareas anteriores:
El primer esquema de control de congestión es basado en el enrutamiento, y el principio es simple. Se genera tráfico con diferentes generadores (CBR, Exponencial, Pareto, etc) desde múltiples "subredes" hacia una subred destino. Todo ese tráfico tiene que pasar por un cuello de botella, lo que en cierto punto causa que todo el tráfico generado congestione ese nodo, provocando pérdida de paquetes. 

Para solucionarlo, momentariamente se desvía el tráfico de ciertos nodos por otros caminos más largos menos utilizados (tardar más tiempo en enviar paquetes es mucho mejor a perderlos). De esta forma, el congestionamiento se controla desde antes de la pérdida de paquetes, evitandolo completamente en este caso.

Para realizar lo anterior se utilizo la siguiente topología:


Donde se genera tráfico de la siguiente forma:
  • Desde el nodo 8 al nodo 12, CBR
  • Desde el nodo 7 al nodo 12, Exponencial
  • Desde el nodo 6 al nodo 12, Exponencial
  • Desde el nodo 5 al nodo 12, CBR
  • Desde el nodo 14 al nodo 11, CBR
  • Desde el nodo 13 al nodo 11, CBR
  • Desde el nodo 15 al nodo 10, Exponencial
  • Desde el nodo 16 al nodo 10, Pareto
La animación, sin desviar paquetes para controlar la congestión:


Como se puede observar, la conexión entre el nodo 3 y el 9 se congestiona en un momento dado y comienza la pérdida de paquetes.

Ahora, agregando unos cambios en el ruteo en el momento en el que la cola esta a punto de llenarse.

Aquí cuando la cola llega a un determinado punto de llenado, el ruteo de paquetes entre el nodo 1 y 3 cambia, desviándose por una ruta más larga (el envío de paquetes por el camino 1->3->9->12 es más rápido, por lo cual es el camino por defecto, en cuyo caso se cambia por 1->2->17->12, que tarda un poco más pero esta menos congestionado)

El segundo esquema, utilizando la misma topología consiste en disminuir la tasa de envío de paquetes de algunos nodos en tiempo real, es decir cuando se este congestionando un nodo, mandar una señal a los demás para que reduzcan sus tasas momentaneamente, dando tiempo al nodo de controlar la congestión y liberar la cola. Usandolo en el mismo caso de congestión que la primera animación, el resultado es:




Código:

1 comentario:

  1. No hay un experimento estadístico comparativo y no se adapta a tiempo de ejecución la tabla de ruteo en este código. Explicas y visualizas dos mecanismos, pero con implementación estática que no en sí controla congestión al haberlo detectado, sino lo evita con modificación estructural previa, conociendo de antemano el tráfico. Son 3 pts.

    ResponderEliminar