Determinación de las Formas de Salida de Paquetes en una Sesión Multicast utilizando Network Coding con Flujo R

El inicio de Network Coding (NC) se le atribuye frecuentemente a Ahlswede, Cai, Li y Yeung en el año 2000. Ellos definieron a Network Coding como “se refiere a codificar en un nodo de una red”. Una característica de una red de computadores que va muy ligado a la calidad del servicio es el throughput...

Full description

Autores:
Salcedo Quintero, Carolina Andrea
Tipo de recurso:
Fecha de publicación:
2018
Institución:
Universidad del Norte
Repositorio:
Repositorio Uninorte
Idioma:
spa
OAI Identifier:
oai:manglar.uninorte.edu.co:10584/7995
Acceso en línea:
http://hdl.handle.net/10584/7995
Palabra clave:
Network Coding
Multicast
throughput
networks
tasa de transferencia
redes
Multidifusión
Rights
License
Universidad del Norte
Description
Summary:El inicio de Network Coding (NC) se le atribuye frecuentemente a Ahlswede, Cai, Li y Yeung en el año 2000. Ellos definieron a Network Coding como “se refiere a codificar en un nodo de una red”. Una característica de una red de computadores que va muy ligado a la calidad del servicio es el throughput, pues entre mayor sea, tomará menos tiempo el envío de información. De las ventajas más conocidas de NC es la de mejorar el throughput. Dado que con en el envío de paquetes en forma multicast, desde un nodo fuente hacia un grupo de sumideros, no siempre se logra la entrega del máximo flujo de paquetes, es importante el uso del paradigma de NC. Orientados a esta problemática, se propone solucionar lo siguiente: Dado un DAG G=(V,E), el cual representa una red de computadores para transmisión multicast uni-sesión, con un nodo s fuente, un conjunto de sumideros T⊂V\\{s}; encontrar todas las posibles formas de salida de r paquetes desde s, donde r representa el máximo flujo asociado a G, de manera que todos lleguen a los sumideros T utilizando NC. Entonces, el objetivo principal del proyecto fue diseñar e implementar un algoritmo que solucionara el problema antes mencionado. Para conseguir dicho objetivo, se llevaron a cabo una serie de pasos: Primero se idearon dos soluciones distintas, se analizó la complejidad de cada solución y se seleccionó la de menor complejidad algorítmica. Luego, se realizó un diseño del algoritmo (figura 1) y posteriormente se implementó. A la implementación se le realizaron pruebas unitarias, es decir, de 2 a 3 pruebas por cada módulo de la implementación, luego se realizaron pruebas de integración, para verificar la funcionalidad completa. Se utilizaron más de 20 grafos con diferentes topologías, cantidad de nodos y máximo flujo, mostrando resultados positivos.