Beruflich Dokumente
Kultur Dokumente
Redes MPLS
Agradecimientos:
2
A Paola Bermolen, por su amable ayuda en la compresin de los
algoritmos de Fair Networks.
Al grupo de proyecto del EasySim (Mauricio Garca, Gastn Madruga y
Vctor Paladino) por brindarnos su proyecto como base para la interfaz
grfica del nuestro.
3
ndice General
I Presentacin del Problema
1. Introduccin y objetivos 8
1.1. Objetivos del proyecto 8
1.2. Motivacin 9
1.3. Especificacin funcional del proyecto 12
1.4. Esquema organizacional del proyecto 14
2. Casos de Uso 16
Caso de Uso#1: Construccin de la topologa 16
Caso de Uso#2: Establecimiento de los LSPs 18
Caso de Uso#3: Visualizacin del estado actual de la red 25
3. Ingeniera de Trfico 27
3.1. Introduccin 27
3.2. Componentes de la Ingeniera de Trfico 28
4
III Arquitectura de Software
8. Interfaz Grfica 57
8.1. El package Programa 57
8.2. Clase Principal y VentanaConf 58
8.3. Clase Intrprete 59
8.4. Clases TxtFileFilter y ArcFileFilter 60
8.5. Clase ConfLink 61
8.6. Clase Cargar topologa 62
8.7. Clases Estadsticas y Propiedades 62
8.8. Clase Utilizacin 64
5
IV Conclusiones
APNDICES
D. Software 107
D.1. Men Archivo y Barra de Herramientas 108
D.2. Crear Matriz de Trfico 110
D.3. Barra Vertical 110
Bibliografa 116
6
Parte I
7
Captulo 1
Introduccin y Objetivos
En este captulo expondremos los objetivos, motivaciones y los distintos casos de
uso de manera que se pueda entender en forma clara lo que hace el software y cul es su
utilidad.
8
La realizacin de este proyecto esta contenida en un marco ms amplio de trabajo,
que cuenta con el financiamiento del BID y del PDT, y que tiene por objeto la
implementacin de una red multi-servicio, utilizando infraestructura similar a la que
soporta los servicios de datos ofrecidos por ANTEL (ANTELDATA), con el objetivo de
probar aplicaciones/servicios que pueda ser implantados en el futuro con garantas de
calidad de servicio.
1.2 Motivacin
9
eligiendo las rutas deseadas o por medio de una herramienta que los compute. Las rutas
pueden ser computadas tanto offline usando alguna herramienta de software, o a travs
del uso de algn algoritmo de computacin online basado en restricciones (CSPF).
Como podemos ir viendo, la Ingeniera de Trfico (TE) intenta optimizar la
performance de las redes, a travs de tres actividades integradas: medicin del trfico,
modelado de la red, y seleccin de mecanismos para el control del trfico.
Desafortunadamente, grandes Proveedores de Servicios de Internet (ISPs) tienen pocos
sistemas de software y herramientas que soporten la medicin del trfico y el modelado
de la red, pilares bsicos de una ingeniera de trfico efectiva. De manera similar,
preguntas sencillas sobre la topologa, trfico y ruteo son sorprendentemente difciles de
contestar en las redes IP de hoy en da. Una gran cantidad de trabajo ha sido dedicado al
desarrollo de mecanismos y protocolos para el control del trfico. Como ejemplo de ello,
la mayor parte del trabajo de la Internet Engineering Task Force (IETF) est relacionado
al control del trfico en lo que a la ingeniera de trfico concierne.
Existen determinados factores que indican la necesidad de ms y mejores
herramientas de ingeniera de trfico para las redes. Entre ellos se destacan la calidad del
servicio, los parmetros ajustables interdependientes, el crecimiento de las redes y la
variabilidad del trfico (Referirse a [1] por ms informacin).
En cuanto a la Calidad del Servicio, los clientes son cada vez ms exigentes en el
cumplimiento de la performance, confiabilidad y seguridad, que se manifiestan en forma
de Service Level Agreements (SLAs). Los clientes desarrollan ms procedimientos de
certificacin y testeos continuos, para asegurar el cumplimiento de dichos SLAs.
Aplicaciones como Voz sobre IP, las cuales por su naturaleza, requieren del transporte de
datos de alta calidad, medido por el retardo, tasa de prdida de paquetes y jitter, estn
emergiendo hoy en da. Por eso es muy importante para los operadores de redes el
coordinar cuidadosamente por dnde fluye el trfico de cada demanda y ver si pueden o
no tolerar la llegada de futuras nuevas demandas sin afectar las ya existentes y por ende,
viendo comprometido el cumplimiento de los SLAs pertinentes.
En lo que a los Parmetros ajustables Interdependientes se refiere, hoy en da,
los proveedores de equipos de red, proveen a los ISPs con poco o ningn control sobre
los mecanismos bsicos responsables de la coordinacin de paquetes, gestin de buffers y
seleccin de caminos. En su lugar, los proveedores de backbones son forzados a entender
una larga cantidad de parmetros interrelacionados que de una manera u otra afectan la
configuracin y operacin. Hasta el da de hoy, un ISP debe gestionar su red de
backbone, y sus complicadas relaciones de frontera con proveedores vecinos, ajustando
los asuntos mencionados anteriormente a travs de una combinacin de intuicin, testeo y
pruebas de intento y error.
El Crecimiento de las Redes se ve reflejado en que por un lado, redes de
backbones individuales estn creciendo rpidamente en tamao, velocidad y espectro
abarcado; mientras que por otro lado, la industria intenta unir redes discordes entre s, en
redes integradas ms grandes. Como resultado, las funciones de gestin de red que una
vez pudieron ser manejadas por un grupo reducido de personas, basndose en la intuicin
y experimentacin, deben ser ahora soportadas por herramientas efectivas de ingeniera
de trfico que unen informacin de configuracin y de uso de una variedad de fuentes.
Por ltimo, la Variabilidad del Trfico. El trfico de Internet es complejo. La
carga ofrecida entre pares origen-destino es tpicamente desconocida. Asimismo, la
10
distribucin del trfico IP usualmente flucta ampliamente a travs del tiempo. Esto
introduce una gran complejidad a la ingeniera de trfico sin alivianar las demandas de
los clientes por una performance de comunicacin predecible. Herramientas efectivas de
TE deben soportar la identificacin rpida de potenciales problemas de performance y un
ambiente flexible para experimentar posibles soluciones.
Es por los motivos expuestos anteriormente que se decidi la creacin del
software NET-TE, como un aporte ms en cuanto a las herramientas que puede encontrar
un usuario para poder realizar tests de ingeniera de trfico en un ambiente simulado. La
idea clave detrs de este software es la de ofrecer al usuario de una plataforma donde
pueda visualizar la topologa de su red de estudio conjuntamente con datos sobre el uso
de los enlaces, qu enlaces se encuentran saturados, establecer afinidades que distingan el
trfico que pasa por cierto grupo de enlaces del resto. Una vez enfrente a la topologa, el
poder inferir sobre ella y visualizar las implicaciones de cambios locales en el trfico y
determinar por dnde se rutean las distintas demandas a medida que van llegando, de
acuerdo al estado actual de la red. Tambin el poder realizar una mirada general sobre
todo el grupo de demandas que se tienen hasta el momento y determinar cul es la mejor
manera de ubicar los LSPs en la red de manera que todas vean sus requerimientos
satisfechos. En el caso de no ser posible satisfacerlas a todas, es deseable el poder
determinar cmo lograr cubrirlas de la manera ms justa posible a todas ellas.
Entendiendo por justicia, la eleccin por parte del usuario de determinado criterio en
cuanto a la manera en que se debe tratar de repartir la carga entre las diferentes demandas
(clientes).
Usando esta herramienta, un proveedor de red pude claramente experimentar con
cambios en la configuracin de la red en un ambiente simulado, en vez en una red
operacional, basndose en una plataforma para investigaciones del tipo what-if de
ingeniera de trfico.
11
1.3 Especificacin Funcional del proyecto
Router ms
prximo
Objetivos de Performance
(restricciones)
MIBs
LSP establecido
Descripcin de la Red:
12
Clculo de caminos candidatos (Dijkstra):
En este bloque el usuario podr establecer restricciones que los futuros LSPs
debern cumplir, como ser el ancho de banda (BW) que debern soportar y el pertenecer
a una determinada Afinidad previamente establecida (P2P, UDP, etc.).
Seleccin de camino:
13
y cules tienen sus recursos sobre o sub-utilizados. Se podr apreciar el porcentaje de
utilizacin de cada enlace tambin.
Visualizacin:
14
Posteriormente se agregaron ms funciones, siempre con el objetivo de darle al
usuario una mayor participacin en la eleccin de los caminos y dndole al programa una
mayor o menor participacin en esa bsqueda. De sta manera, cuantas ms opciones
tenga el usuario, podr crear una mayor variedad de escenarios what-if. Claros
ejemplos de la flexibilidad que se le intenta dar al usuario son los distintos tipos de pesos
que le puede asignar a los enlaces al momento de usar el CSPF, dndole prioridad a la
distancia o al ancho de banda disponible en los enlaces o a cierto peso administrativo que
es fijado por el usuario. Tambin se ofrecen distintos criterios de TE, que hacen una
especie de filtrado sobre los resultados brindados por el algoritmo CSPF, ayudando
tambin a incrementar las combinaciones de escenarios que se pueden crear.
El siguiente paso fue el empezar a idear la manera de agregarle al programa la
funcionalidad de poder cargar la topologa de la red a la que est conectada la PC va
Simple Network Management (SNMP) de manera automtica. Vale destacar que con
cargar la topologa de red se entiende como descubrir todos los routers presentes en cierta
red que estn intercambiando informacin de ruteo mediante el protocolo OSPF. En
nuestro caso la componente de gestin SNMP fue implementada en el software usando el
API de Adventnet. Se tuvo que hacer nuevamente una fuerte investigacin terica,
enfocndose esta vez en la estructura en forma de rbol usada por SNMP para organizar
la gestin de datos; con esto nos estamos refiriendo a las llamadas Bases de gestin de
Informacin (MIBs) (ver Apndice B por ms informacin).
En la prxima etapa surgi la idea de agregar un nuevo algoritmo para el ruteo
dinmico de los LSPs con ancho de banda garantido, en donde las demandas de ruteo van
llegando una por una y no hay conocimiento previo acerca de futuras demandas. Este
problema es motivado por la necesidad de los ISPs de desarrollar rpidamente servicios
de ancho de banda garantidos y la consecuente necesidad en los backbones de redes de un
aprovisionamiento rpido de caminos con ancho de banda garantido. El algoritmo elegido
fue una pequea variante del conocido algoritmo Minimun Interference Routing
Algorithm (MIRA), el cual se basa en el principio de que cada nuevo tnel ruteado (LSP)
debe seguir una ruta que no interfiera demasiado con una ruta que pueda ser
posiblemente crtica para satisfacer una futura demanda. Previo a su eleccin se
analizaron otros posibles algoritmos y luego de compararlos se decidi usar ste.
Finalmente, en una ltima etapa, asumimos que el volumen de carga (BW) para
cada demanda deja de ser una cantidad fija y pasa a ser una especie de demanda elstica.
As nos planteamos la siguiente pregunta: cul debera ser el principio que gobierne la
distribucin de los volumenes de esas demandas entre ciertos recursos de red (capacidad
de los links) que llevan a asignaciones que cumplen con determinado criterio de justicia?
Nos encontramos as con un nuevo tema abarcado por las llamadas redes justas (Fair
Networks), del cual estudiamos sus aspectos ms generales e incorporamos cuatro
diferentes algoritmos, con el objetivo de determinar si el usuario podr alojar en la red
todas las demandas que fueron solicitadas, o en caso de no ser posible, cul es la manera
ms justa de distribuirlas entre los recursos de la misma.
Demos paso entonces, en los prximos captulos, a introducir los conceptos
principales que deber poseer el lector sobre MPLS y TE.
15
Captulo 2
Casos de Uso
Veamos ahora cules son los usos y las distintas funcionalidades que el software
NET-TE tiene para ofrecer.
Se distinguen tres principales utilidades o casos de uso dentro de NET-TE:
construccin de la topologa de la red de trabajo, establecimiento de los LSPs por los
cules pasar el trfico de cada demanda y visualizacin del estado actual de la red. A su
vez, han de destacarse los cuatro mecanismos usados por NET-TE para el
establecimiento de los LSPs: ruteo explcito, CSPF, MIRA y FairNetworks.
Explicaremos ms adelante qu ventaja ofrece cada uno de ellos y los
compararemos.
C
Caso de Uso# 11: Construccin de la topologa
Para empezar a trabajar, lo primero que necesita hacer el usuario es construirse la
topologa de la red sobre la cual va a trabajar. NET-TE ofrece dos maneras de realizar
esto: una manual y otra automtica.
La interfaz grfica donde se apoya NET-TE est formada por dos barras de
herramientas, desde las cuales el usuario puede acceder a las distintas funciones del
software y una pantalla que es el marco de trabajo donde se crea o carga la topologa de
la red.
Empecemos por el mtodo manual de construccin. En este caso, el usuario
dispone de dos posibles objetos para crear su topologa: routers y links. Como la red
donde se trabaja es basada en MPLS, los routers que se ofrecen son de dos tipos: LERs y
LSRs.
NET-TE permite manipular los objetos dentro de la pantalla con total libertad,
pudindolos colocar y desplazndolos de un lugar a otro a gusto del usuario, de manera
que ste pueda disear la red con la forma que desee y pudindola guardar luego en un
archivo en su computadora, en caso de querer reutilizarla luego, si as lo desease.
Esto resulta muy cmodo ya que el usuario puede cargar una vieja topologa que
tenia guardada, y cambiarla a su gusto, para reflejar el estado ms reciente de la misma,
agregando o quitando enlaces o routers de la red.
Los campos que ofrece NET-TE para configurar los enlaces son los siguientes:
ancho de banda, peso administrativo y afinidad. Como se puede apreciar en la Figura 2.1,
el usuario puede describir con bastantes detalles las caractersticas de los elementos de la
red. La opcin del uso de pesos administrativos es especialmente til en los casos en los
que el usuario desea darle ms prioridad a ciertos enlaces sobre otros. Son varios los
motivos que pueden llevar a un usuario el querer priorizar cierto grupo de enlaces sobre
otros. Como ejemplo, podemos mencionar razones de poltica interna por parte del cliente
que regulen el uso de los recursos sobre cierto enlace o grupo de enlaces. Tambin
pueden existir trficos que satisfacen demandas que son crticas o de mayor importancia,
16
con lo cual resultara particularmente til el evitar que futuros LSPs a ser establecidos
pasen por los enlaces que las conforman, a menos que sea necesario. Otra
caracterstica de suma utilidad es poder
17
Pero supongamos que el usuario no tiene conocimiento sobre cmo es la
topologa de la red a la cual esta conectado, y sin embargo quiere poder obtenerla para
poder as crear distintos escenarios sobre la misma. Obviamente la solucin manual no es
la adecuada. Es por ello que NET-TE ofrece tambin un mecanismo automtico,
mediante el cual, tras ingresar determinados parmetros obligatorios tal como la Figura
2.3 nos muestra, comienza a iterar hasta descubrir completamente la red. Vale destacar
que para NET-TE, el cargar la topologa se entiende como descubrir todos los routers
presentes en la red, que estn intercambiando informacin de ruteo mediante el protocolo
OSPF.
Obviamente, esto es sumamente til si la red es una red de gran tamao, ya que
consumira mucho tiempo el crearla manualmente. De esta manera se obtiene el mismo
resultado, pero de una manera mucho ms rpida.
Una vez cargada la topologa en forma automtica, el usuario vuelve a ser libre de
poder modificarla a su gusto, tal como lo hace si la cargara manualmente.
C
Caso de Uso# 2
2: Establecimiento de los LSPs
En MPLS, como todos ya sabemos, el trfico para determinada demanda sigue
determinados LSPs desde que entra a la red MPLS hasta que sale. Es de esa manera que
se puede clasificar los servicios segn la QoS que desee cada usuario. Por eso, es tan
importante el establecimiento de los LSPs, cmo elegirlos y dnde ubicarlos de manera
de cubrir de la mejor manera posible las demandas. NET-TE tiene por ende cuatro
distintos mecanismos para ofrecer al usuario, al momento de elegir cmo y por dnde
ubicar a los LSPs.
18
Ruteo Explcito:
Esta es una
manera que como vemos
no utiliza algoritmo
alguno, sino que slo se
basa en la decisin que
tome el usuario y
depende exclusivamente
del camino que ste
desee. Un ejemplo de
una situacin de este tipo
es cuando el usuario, ya
sea o porque la red tiene
suficiente ancho de
banda como para no
restringir ningn posible
LSP o porque posee
un conocimiento muy
Figura 2.4: Ventana para el Ruteo Explcito.
grande de la red, cree saber ya de entrada por que camino es mejor que vaya el LSP.
Quizs haya un acuerdo con el cliente, el cual obligue al LSP a seguir cierto camino
explcito de manera obligatoria, con lo cual sta sera la manera ms sencilla de
establecerlo.
CSPF:
19
requiere que le aseguren determinado BW. Entonces, salvo que sea una red de tamao
pequeo y sea muy evidente el camino a usar, el usuario necesitar de algn algoritmo
que le halle ese LSP que est buscando, teniendo en cuenta el estado actual de la red.
NET-TE le muestra al usuario cuales son todos los posibles caminos por los
cuales puede rutear su trfico, asegurndose que cumplan con el BW solicitado por el
cliente, adems de un conjunto pre-definido de restricciones que puede l mismo ingresar
y comentaremos ms adelante. Finalmente, ser decisin del usuario el elegir el camino
que ms le convenga, dentro de toda la gama de soluciones.
Dentro de los parmetros obligatorios a ingresar (ver Figura 2.5) por parte del
usuario, se encuentran obviamente, el nodo de origen, el nodo destino y el BW
requerido por el cliente. En caso que se desee buscar soluciones slo por aquellos
enlaces que soportan cierto tipo de trfico se incorpor al NET-TE la posibilidad de
elegir la Afinidad, como parmetro opcional.
Puede suceder que por razones poltico-administrativas de parte del cliente, o por
determinado SLA que debe cumplirse, el usuario necesite que los caminos posibles pasen
por un determinado enlace en particular y no lo hagan por otro, por ejemplo. A manera de
tener en cuenta este tipo de solicitudes, se incorporaron tambin otros dos parmetros
opcionales a elegir, que son: Enlace Presente y Enlace Ausente. NET-TE se encarga de
esta manera de asegurar al cliente que las soluciones a mostrar (en el caso que existan)
cumplirn con estas restricciones.
Ahora bien, ya que el CSPF se basa en el algoritmo Dijkstra, se debe determinar
cul es la mtrica a usar para elegir el camino ms corto (con ms corto, nos referimos
no al camino de menos saltos, sino al camino cuya suma de pesos es la menor). Ac,
NET-TE ofrece 4 diferentes tipos de pesos a asignar a los enlaces: Ruteo Mnimo por
Pesos Administrativos, Ruteo por Mnima Cantidad de Saltos, 1/(BWreservado) y
1/(BWlibre).
El primero de todos es bsicamente basarse en los pesos que fueron pre-definidos
por el usuario para cada enlace. El usuario, al tener la posibilidad de asignar pesos a los
enlaces, puede influir en la toma de decisin de cul es el mejor camino por donde
establecer el LSP.
El segundo, es simplemente establecer la cantidad de saltos, como la mtrica
elegida. NET-TE se fijar solamente en la cantidad de saltos del origen al destino y
buscar los caminos que tengan la menor cantidad de saltos de principio a fin.
La tercera, tal como lo indica su nombre, usa pesos que equivalen al inverso del
BWreservado en cada enlace. Supongamos que el cliente, tiene ya varios LSPs
establecidos sobre la red, los cuales consumen determinado BW de los enlaces por los
que pasan. Esto hace que hayan enlaces ms ocupados y otros ms libres en la red. Llega
un nuevo LSP que necesita ser ubicado en la red y el usuario quiere que ste tienda a usar
los enlaces ms ocupados en la red, de manera tal de dejar a los que estn ms libres,
disponibles para futuras demandas. Es una manera de procurar seguir usando los enlaces
que ya estn siendo ms utilizados por otros LSPs, y no tocar los que estn ms libres.
NET-TE brinda esta posibilidad, con tan slo seleccionar este tipo de peso.
Finalmente, supongamos que el usuario quiere exactamente lo opuesto a lo
anterior. Es decir, quiere que el nuevo LSP a crearse tienda a pasar por aquellos enlaces
que estn ms libres en la red, no tocando aquellos que ya tienen recursos consumidos o
LSPs pasando por ellos. O sea, dicho con otras palabras, que se tienda a ubicar al LSP por
20
aquellas zonas de la red que no han sido usadas an, de manera de no sobrecargar
aquellas que s lo estn siendo. Esto es lo que NET-TE permite si el usuario elige la
cuarta opcin de peso.
Se puede ver que NET-TE ofrece una amplia gama de criterios de pesos, de
manera que el usuario pueda elegir cul desea sea usado por el algoritmo para el clculo
de la nueva ruta, pudiendo jugar as con las distintas combinaciones y viendo cmo afecta
una u otra eleccin. Vale decir que estos son parmetros obligatorios que debe ingresar el
usuario.
Por ltimo, NET-TE le ofrece al usuario, como ltima opcin, la posibilidad de
usar o no determinado criterio de TE, sobre los caminos encontrados: Elegir
manualmente, No saturacin enlaces crticos y Minhop.
Supongamos que luego de que el usuario haya ingresado todos los parmetros
anteriores, NET-TE encuentra ms de un camino que satisfaga los requerimientos de BW,
Afinidad y dems. Y supongamos ahora que el usuario no quiere ver uno a uno cada uno
de sos caminos, analizando sus diferencias, sino que por otro lado, desea aplicarle una
especie de filtro y que slo se desplieguen aquellas soluciones que no contienen a los
enlaces ms crticos, o por aquellas que, dentro del grupo de soluciones posibles, tengan
la menor cantidad de saltos.
Es por lo anterior que se incorporaron tres criterios de TE al software.
El primer criterio, simplemente le indica a NET-TE que despliegue todas las
soluciones posibles que encontr Dijkstra, tomando en cuenta las restricciones y pesos
seleccionados. De esta manera el usuario ve todas las soluciones y l es quien determina
con cul quedarse.
21
Con el segundo criterio, NET-TE lo que hace es comparar las soluciones
encontradas y se queda slo con aquella cuyos enlaces que la componen, tiene el mayor
ancho de banda disponible. De esta manera, no slo se muestra el camino que cumple con
las restricciones y que segn la mtrica elegida es el ms corto, sino que se muestra
aquel que molesta menos a los enlaces ms saturados.
Finalmente, el ltimo criterio de TE es el de Minhop, el cual, tal como su
nombre lo indica, de todas las soluciones encontradas, se queda slo con aquellas que
tienen la menor cantidad de saltos de origen a destino. Esto es especialmente til si se
combina con ciertos tipos de pesos, pudiendo encontrar por ejemplo, no slo las posibles
soluciones que van por la parte ms o menos ocupada de la red, sino tambin, por la ms
corta.
Vale destacar que otra prctica funcionalidad que el NET-TE ofrece al elegir el
segundo o tercer criterio de TE, es una ventana que despliega, en caso de existir mltiples
soluciones, valores como la Capacidad, BW usado y Porcentaje de Utilizacin de los
enlaces que las conforman. Se distinguen las soluciones ofrecidas de aquellas que fueron
descartadas. Esto es muy til para poder visualizar numricamente la razn de la decisin
tomada por NET-TE.
MIRA:
22
mapearn todos
los caminos de
acceso a Internet
por los caminos
ms largos, o
hasta que no
exista otra
posibilidad (sature
por ejemplo algn
enlace). Luego el
usuario podr por
ejemplo correr
CSPF para
establecer los
caminos de
servicios
corporativos.
Figura 2.6: Ventana del algoritmo MIRA.
Fairness:
23
arrojar sobre ella los LSPs que van a cubrir cada una de esas demandas y darles a ellos
la mxima cantidad de recursos que la red me puede brindar, de manera que se haga un
uso de ellos justo entre las demandas.
NET-TE brinda la informacin anterior al usuario, y le da a elegir cuatro
algoritmos a usar distintos: fairness bsico, acotado, con mltiples caminos y con
mltiples caminos acotado. Observar la Figura 2.7.
El primero y el tercero brindan
informacin sobre cul es la cantidad
mxima de BW que puedo tomar de la red
para cada una de las demandas. La nica
diferencia es que el primer algoritmo slo
me considera un camino solucin fijo para
cada demanda, mientras que el tercero toma
todos los caminos solucin posibles. Para el
caso en que hayan mltiples caminos
posibles en el primero, se le brinda la
posibilidad al usuario de elegir el que guste
de entre una lista de posibles opciones, de
manera tal que se quede con uno solamente,
tal como debe ser.
El segundo considera tambin slo
un camino solucin fijo por demanda (tal
como en el primero, el usuario puede elegir el que desee en caso de haber ms de una
opcin disponible), pero le brinda al usuario la opcin de ingresar prioridades a las
demandas y le permite elegir una cota inferior de BW para cada demanda. Si bien el
concepto de incorporar prioridades parece oponerse al de ofrecer un reparto de ancho de
banda justo entre las demandas, es til para aquellos casos en donde deseamos poder
diferenciar a los clientes desde un punto de vista econmico, priorizando a aquellos que
por ejemplo pagan ms de los que pagan menos. Tambin es til cuando el usuario debe
asegurarse que las demandas lleguen a obtener al menos un BW mnimo obligatorio en el
reparto.
Como ejemplo, supongamos que tiene una demanda que requiere 10MB. Como
sabe que quizs el LSP que se cree para esa demanda, tenga que compartir recursos con
otros LSPs de otras demandas, puede suceder que no llegue a obtener esos 10MB. Lo que
puede hacer es poner un mnimo de 5MB por ejemplo y de esa manera se asegura que de
haber solucin, el BW que va a obtener va a estar entre esos dos valores con seguridad.
El cuarto algoritmo es similar al tercero. La diferencia es que en vez de
detenerse el clculo cuando ya no quedan ms recursos que la red pueda ofrecer, se
detiene cuando se lleg a cumplir con el ancho de banda requerido para cada demanda.
Obviamente que en caso de saturar primero la red antes que se llegue al ancho de banda
requerido, tambin se detendr el clculo.
24
ste es particularmente til para un usuario cuando no desea ver cul es la
cantidad mxima de recursos que le puede ofrecer la red para satisfacer sus demandas,
sino saber si puede llegar a cumplirlas, detenindose una vez que fueron satisfechas.
Para la mejor visualizacin del usuario, aquellas demandas que no lograron
satisfacer el BWrequerido, se pintarn de color rojo, a diferencia de aquellas que si lo
lograron satisfacer o superar. Asimismo, para el tercer y cuarto algoritmo, se tiene la
posibilidad de apreciar cada una de las sub-demandas o caminos que conforman las
demandas principales en forma separada, pudiendo ver cunto ancho de banda rutean
cada una de ellas, as como apreciarlas en forma grfica.
Asimismo, se dispondr tambin de una ventana que despliega los resultados
obtenidos en forma numrica para todas las demandas, teniendo el usuario de sta
manera, otra forma sencilla de visualizar cuntas demandas satisfacen y cuntas no, el
ancho de banda requerido.
C
Caso de Uso# 3: Visualizacin del estado actual de la red
El ltimo caso de uso consiste en los mtodos que tiene el usuario con el software
NET-TE de poder ver el estado de la red.
Bsicamente lo puede hacer de dos formas posibles: por medio del uso del botn
Estadsticas o bien del botn Utilizacin.
Con tan slo apretar el botn Estadsticas (ver Figura 2.8), en cualquier momento,
al usuario se le desplegar una pantalla donde figurarn todos los nodos que conforman la
red, los enlaces, as como los LSPs establecidos hasta ahora. Podr ver las caractersticas
de cada uno de ellos, as como tambin por cul o tal nodo o enlace pasa cierto LSP, entre
otros valores. Si as lo desea, se le brinda la posibilidad de visualizar al mismo tiempo
todos los enlaces de la red, y ver el porcentaje de utilizacin de cada uno de ellos. Debido
a la manera en que esta desplegada la informacin, resulta muy prctico a la vista el
comparar unos con otros.
25
Basta tan slo ingresar dos valores de porcentajes, una cota inferior y otra
superior, y NET-TE pintar de colores distintos cada uno de los tres niveles de utilizacin
para cada enlace.
Esta es una manera sencilla de visualizar en pantalla qu zonas de la red estn
ms saturadas que otras. Es en especial prctico para redes de gran tamao, donde ver
valores numricos no sea tan intuitivo como esto.
26
Captulo 3
3.1 Introduccin
La Ingeniera de Trfico (TE) es una disciplina que procura la optimizacin de
la performance de las redes operativas. La Ingeniera de Trfico abarca la aplicacin de la
tecnologa y los principios cientficos a la medicin, caracterizacin, modelado, y control
del trfico que circula por la red. Las mejoras del rendimiento de una red operacional, en
cuanto a trfico y modo de utilizacin de recursos, son los principales objetivos de la
Ingeniera de Trfico. Esto se consigue enfocndose a los requerimientos del rendimiento
orientado al trfico, mientras se utilizan los recursos de la red de una manera fiable y
econmica.
Una ventaja prctica de la aplicacin sistemtica de los conceptos de Ingeniera de
Trfico a las redes operacionales es que ayuda a identificar y estructurar las metas y
prioridades en trminos de mejora de la calidad de servicio dado a los usuarios finales de
los servicios de la red. Tambin la aplicacin de los conceptos de Ingeniera de Trfico
ayuda en la medicin y anlisis del cumplimiento de stas metas.
La ingeniera de trfico se subdivide en dos ramas principalmente diferenciadas
por sus objetivos:
Orientada a trfico: sta rama tiene como prioridad la mejora de los indicadores
relativos al transporte de datos, como por ejemplo: minimizar la prdida de paquetes,
minimizar el retardo, maximizar el throughput, obtener distintos niveles de acuerdo para
brindar calidad de servicio, etc.
27
de recursos en la red. En casos de congestin de algunos enlaces, el problema se resolva
a base de aadir ms capacidad a los enlaces.
La otra causa de congestin es la utilizacin ineficiente de los recursos debido al
mapeado del trfico. El objetivo bsico de la Ingeniera de Trfico es adaptar los flujos
de trfico a los recursos fsicos de la red. La idea es equilibrar de forma ptima la
utilizacin de esos recursos, de manera que no haya algunos que estn sobre-utilizados,
creando cuellos de botella, mientras otros puedan estar subutilizados. En general, los
flujos de trfico siguen el camino ms corto calculado por el algoritmo IGP
correspondiente. La Ingeniera de Trfico consiste en trasladar determinados flujos
seleccionados por el algoritmo IGP sobre enlaces ms congestionados, a otros enlaces
ms descargados, aunque estn fuera de la ruta ms corta (con menos saltos).
En resmen la Ingeniera de Trfico provee por ende, de capacidades para realizar
lo siguiente:
28
La clave detrs de MPLS es el mecanismo de asignacin e intercambio de
etiquetas en que se basa. Esas etiquetas son las que permiten que se establezcan las rutas
que siguen los paquetes entre dos nodos de la red. Esa ruta a seguir se la conoce como
ruta conmutada de etiquetas (LSP). Se crea concatenando uno o ms saltos (hops) en los
que se produce el intercambio de etiquetas, de modo que cada paquete se enva de un
conmutador de etiquetas (Label-Switching Router, LSR) a otro, a travs de la red
MPLS.
Los routers en este tipo de redes pueden ser de dos tipos, routers de frontera de
etiquetas (LERs) y routers de conmutacin de etiquetas (LSRs). Los LERs operan en
los extremos de la red MPLS y se encarga de interconectar a sta con la red de acceso. Al
llegar un paquete a un LER, ste examina la informacin entrante y chequeando una base
de datos, le asigna una etiqueta. A la salida de la red MPLS, stos mismos dispositivos se
encargan de remover la etiqueta para entregar as el paquete tal como fue recibido.
Los paquetes, una vez etiquetados por el LER, viajan por la red MPLS a travs de
los routers de conmutacin de etiquetas (LSRs). Estos se encargan bsicamente de dirigir
el trfico en el interior de la red, segn sea la etiqueta que contenga el paquete. Al llegar
un paquete a un LSR, ste examina su etiqueta y usndola como ndice en una tabla,
determina el siguiente salto y una nueva etiqueta para el paquete. Cambia una por otra
y lo enva hacia el siguiente router, formando as el LSP.
Un conjunto de paquetes que comparten los mismos requerimientos para su
transporte, pertenecen a la misma FEC (Forwarding Equivalence Class). Las FECs son
una manera de distinguir un tipo de trfico de otro. Todos los paquetes que pertenezcan a
la misma FEC seguirn el mismo LSP para llegar a destino. A diferencia del
enrutamiento IP convencional, la asignacin de un paquete a determinado FEC se hace
slo una vez. Otra diferencia con IP, es que las etiquetas en MPLS no contienen una
direccin IP, sino un valor numrico acordado entre dos nodos consecutivos para brindar
una conexin a travs de un LSP. Este valor se asocia a una determinada FEC.
Finalmente, luego que cada router tiene sus tablas de etiquetas puede comenzar el
direccionamiento de paquetes a travs de los LSPs preestablecidos por un determinado
FEC.
Habiendo sealado las principales caractersticas de MPLS, proseguimos con la
segunda componente de TE. sta consiste en requerir de un conocimiento detallado de
la topologa de la red as como tambin informacin dinmica de la carga en la red. La
componente de distribucin de informacin es implementada definiendo extensiones
relativamente simples a los IGPs, tal que los atributos de los enlaces son includos como
parte de cada aviso del estado de enlace en cada router.
Cada router mantiene atributos de los enlaces de la red e informacin de la
topologa de la red en una base de datos de TE especializada (TED). La TED es usada
exclusivamente para el clculo de rutas explcitas, para la ubicacin de LSPs a lo largo de
la topologa fsica. En forma aparte, una base de datos es mantenida, de manera que el
clculo subsiguiente de la ingeniera de trfico sea independiente del IGP y de la base de
datos del estado de enlace del IGP. Mientras tanto, el IGP contina su operacin sin
ninguna modificacin, realizando el clculo tradicional del camino ms corto, basado en
informacin contenida en la base de datos del estado de enlace en el router.
29
En cuanto a la componente de seleccin de caminos, luego que los atributos de
los enlaces y la informacin de la topologa han sido inundados por IGP y localizados en
la TED, cada router de ingreso utiliza la TED para calcular los caminos de su propio
conjunto de LSPs a lo largo del dominio de ruteo. El camino para cada LSP puede ser
representado tanto por lo que se denomina, una ruta explcita estricta o sin trabas(strict
or loose explicit route). El router de ingreso determina el camino fsico para cada LSP
aplicando por ejemplo, un algoritmo de restricciones de camino ms corto (CSPF,
Constrained Shortest Path First) a la informacin en la TED.
A pesar de que se reduce el esfuerzo de administracin (resultado del clculo
online del camino) una herramienta de planeamiento y anlisis offline es necesaria si se
quiere optimizar la TE globalmente. En el clculo online se toma en consideracin las
restricciones de los recursos y se va calculando un LSP a la vez, a medida que van
llegando las demandas. Esto implica que el orden en que los LSPs son calculados es muy
importante, ya que depende de los LSPs ya establecidos, por dnde se dirigir cada nuevo
LSP que llega. Si se cambiara el orden de llegada de los LSPs, es muy probable que los
caminos elegidos para establecerlos cambien tambin. De esta manera, los LSPs que se
calculan primero tienen ms recursos disponibles para utilizar que los que llegan ms
tarde, ya que todo LSP calculado previamente consume recursos.
Por otro lado, una herramienta de planeamiento y anlisis offline, examina en
forma simultnea las restricciones de recursos de cada enlace y los requerimientos de
cada LSP. Si bien el acercamiento offline puede tardar varias horas en completarse,
realiza clculos globales comparando los resultados de cada clculo y selecciona
entonces la mejor solucin de la red tomada como un conjunto. La salida del clculo es
un conjunto de LSPs que optimizan la utilizacin de los recursos de la red. Una vez
finalizado el clculo offline, el LSP puede ser establecido en cualquier orden ya que cada
uno ha sido instalado siguiendo las reglas para una solucin ptima global.
Por ltimo, la componente de sealizacin es la responsable de que el LSP sea
establecido para que sea funcional mediante el intercambio de etiquetas entre los nodos
de la red. La arquitectura MPLS no asume un nico protocolo de distribucin de
etiquetas; de hecho se estn estandarizando algunos existentes con las correspondientes
extensiones como son RSPV y LDP.
30
Parte II
31
Captulo 4
32
Una vez computado el camino, tambin necesitaremos el soportar el envo a
travs de dicho camino. Por lo que el tercer mecanismo es aquel que sea capaz de
soportar el ruteo explcito.
Por ltimo, el establecer una ruta para un conjunto particular de trfico, puede
requerir la reserva de recursos a lo largo de esa ruta, alterando quizs el valor de los
atributos asociados a enlaces individuales de la red. Por lo que el ltimo mecanismo es
uno a travs del cual se puedan reservar recursos de la red y sean modificados los
atributos de los enlaces como resultado de cierto trfico tomando ciertas rutas.
De ahora en ms nos basaremos en comentar el algoritmo Constraint Shortest
Path First (CSPF), el cual, como mencionamos anteriormente, es usado por CBR para
computar un camino.
4.2 CSPF
Como se dijo anteriormente, CBR requiere la habilidad de computar un camino de
manera tal que
Una manera de lograr esos objetivos es usar el algoritmo de shortest path first
(SPF). El algoritmo SPF plano, computa un camino que es ptimo con respecto a cierta
mtrica escalar. Entonces, para computar un camino que no viole restricciones, todo lo
que necesitamos es el modificar el algoritmo de manera tal que pueda tomar en cuenta
33
esas restricciones. Nos referiremos a tal algoritmo como constraint shortest path first
(CSPF) (Ver [3] por ms informacin).
Para entender como SPF debe ser modificado para tomar restricciones en cuenta,
miremos primero como es la operacin del SPF plano. El algoritmo SPF plano trabaja
empezando de un nodo llamado raz, y creando luego a partir del mismo, una estructura
en forma de rbol que contiene el camino ms corto. En cada iteracin del algoritmo, hay
una lista de posibles nodos candidatos (inicialmente esta lista contiene slo a la raz).
En general, los caminos de la raz a los nodos candidatos no son los ms cortos. Sin
embargo, para el nodo candidato que esta ms cerca de la raz (con respecto a la distancia
usada por SPF), el camino a ese nodo es el ms corto garantizadamente. Entonces, en
cada iteracin, el algoritmo toma de la lista de candidatos, al nodo con la distancia ms
corta a la raz. Este nodo es entonces agregado al rbol del camino ms corto y removido
de la lista de nodos candidatos. Una vez que el nodo ha sido agregado al rbol del camino
ms corto, los nodos que no estn en el rbol, pero son adyacentes a ese nodo, son
examinados para una posible adicin o modificacin de la lista de candidatos. El
algoritmo entonces itera nuevamente. Para el caso en donde se desee encontrar el camino
ms corto de la raz a todo el resto de los nodos, el algoritmo termina cuando la lista de
candidatos esta vaca. Para el caso en que se desee simplemente encontrar el camino ms
corto de la raz a algn otro nodo especifico, el algoritmo termina cuando este otro nodo
es agregado al rbol del camino ms corto.
34
esos enlaces satisfacen todas las restricciones planteadas. Slo si el enlace satisface todas
las restricciones, recin ah examinamos el nodo que esta ubicado en el otro extremo del
enlace.
En general, el procedimiento por el cual chequeamos si un enlace satisface una
restriccin en particular, es especfico de la naturaleza de la restriccin. Por ejemplo,
cuando la restriccin que queremos satisfacer es al ancho de banda disponible, entonces
el chequeo es si el ancho de banda disponible en el enlace es mayor o igual al ancho de
banda especificado por la restriccin; slo si lo es, es que examinamos el nodo ubicado
en el otro extremo del enlace.
Tambin observar que el chequear si un enlace satisface una restriccin en
particular, asume que hay una informacin de restriccin relacionada, asociada con el
enlace. La naturaleza de esta informacin relacionada a la restriccin. Por ejemplo,
cuando la restriccin que queremos satisfacer es el ancho de banda disponible, la
informacin que necesitamos es tener al ancho de banda disponible en un enlace.
Notar que el algoritmo CSPF requiere que el router que realiza la computacin del
camino, tenga informacin sobre todos los enlaces en la red. Esto impone una restriccin
en el tipo de protocolo de ruteo que podemos usar para soportar el ruteo basado en
restricciones (CBR). Tenemos que usar protocolos de estado de enlace como IS-IS u
OSPF, ya que protocolos de ruteo de vector distancia como RIP no son capaces de
encontrar estos requerimientos.
Como comentario sobre uno del resto de los mecanismos restantes necesarios para
soportar CBR, la capacidad de ruteo explcito necesaria es provista por MPLS.
En el caso del software NET-TE en este proyecto, se utiliz CSPF para computar
los caminos para los LSPs obligando a que cumplan ciertos requerimientos. El
requerimiento usado en este proyecto fue el ancho de banda disponible en cada enlace de
la red. Adems se le agreg la posibilidad de que el usuario pueda obligar al LSP hayado
que pase por cierto enlace de la red as como que no pase por otro en particular. La razn
por la cual se puede desear querer obligar que un LSP pase por cierto enlace y no lo haga
por otro depende totalmente del usuario y de la forma en que l gestione su red. Adems
es importante destacar que con respecto a los pesos asignados a los enlaces al momento
de correr el SPF, se le ofrece al usuario la oportunidad de usar distintos pesos,
dependiendo de cual sea la mtrica en la que l este interesado de usar (por ejemplo la
cantidad mnima de saltos, minimizar los pesos administrativos asignados por el mismo a
los enlaces o hacer la mtrica en funcin del ancho de banda disponible en los enlaces,
entre otros).
El ruteo basado en QoS ha sido un rea de investigacin muy activa por muchos
aos. Selecciona rutas en la red que satisfagan la QoS requerida para una conexin o
grupo de conexiones. Adems, el ruteo basado en QoS logra una eficiencia global en la
utilizacin eficiente de los recursos. Un ejemplo de esto es al algoritmo Shortest-
Widest-Path (WSP), el cual usa al ancho de banda como una mtrica y selecciona los
caminos que tienen un cuello de botella de ancho de banda mayor. El cuello de botella de
35
ancho de banda representa la capacidad mnima no usada de todos los enlaces en el
camino. En el caso de dos caminos con el mismo cuello de botella de ancho de banda, el
camino con la mnima cantidad de saltos es seleccionado (Ver [4] por ms informacin).
Los algoritmos de ruteo usados en CBR y la complejidad de los mismos, depende
del tipo y del nmero de mtricas que son includas en el clculo de la ruta. Algunas de
las restricciones pueden ser contradictorias (por ejemplo costo vs. ancho de banda, delay
vs. throughput). Resulta que el ancho de banda y la cuenta de saltos son en general
restricciones ms tiles en comparacin con el delay y jitter, ya que muy pocas
aplicaciones no pueden tolerar una ocasional violacin de dichas restricciones, y como el
delay y jitter se pueden determinar por medio del ancho de banda alojado y nmero de
saltos del camino donde va el flujo, stas restricciones pueden ser mapeadas en
restricciones de ancho de banda y nmero de saltos, en caso de ser necesario. Otro factor
es que muchas aplicaciones en tiempo real requieren un determinado ancho de banda. El
nmero de saltos de una ruta tambin es una mtrica importante, ya que cuantos ms
saltos atraviese un flujo, ms recursos consumir.
Con las implementaciones bsicas del esquema de CBR, hay una especie de
balance y equilibrio entre la conservacin de recursos y el balance de carga. Un esquema
de CBR puede seleccionar de las siguientes opciones para un camino viable para un flujo:
36
Captulo 5
En la Figura 5.1 se muestra en que casos ste tipo de algoritmo soluciona los
problemas causados por los algoritmos clsicos como el min-hop algorithm.
37
Figura 5.1: Ejemplo de uso del MIRA
Consideramos que los nodos ingreso-egreso son (A, G), (B, G), (C, G). Se puede
dar la situacin en que se necesiten varios LSPs entre (A,G) y se utiliza el enfoque de
min-hop los LSPs sern mapeados en el camino con menor cantidad de saltos, saturando
los enlaces A-D y D-G y bloqueando futuras demandas entre (B,G) y (C,G), siendo lo
ideal un algoritmo que tenga en consideracin lo crtico que son estos enlaces en stas
futuras demandas, de modo de mapear la demanda entre (A,G) por A-E-F-G aunque ste
camino sea ms largo (en lo que a nmero de saltos se refiere).
Se considera una red de n nodos representados por un grafo G = (V, E), donde V
es el conjunto de nodos en la red y E el conjunto de m enlaces de la red. Un subconjunto
de estos nodos es considerado como nodos ingreso-egreso de futuras demandas y se
denota a este subconjunto como L. Sin embargo, no es necesario conocer este
subconjunto para que el algoritmo funcione, ya que se puede considerar que L=V de
modo que cada par de nodos pueden ser los nodos ingreso-egreso para futuras demandas.
La capacidad disponible R (l) de cada enlace l se asume conocida (mediante alguna
extensin del protocolo de enlace de estado operacional).
38
3- Eliminar todos los enlaces que tienen ancho de banda disponible menor al
requerido por el LSP y formar una nueva topologa con los nodos y enlaces
restantes.
4- Correr SPF con la topologa reducida.
5- Establecer el LSP entre (s, d ) y actualizar los anchos de banda disponible en cada
enlace.
f l s 'd '
w(l ) = s 'd ' R(l ) , l E
( s ', d ')L
(5.2a)
Una vez que los pesos son calculados y asignados, se eliminan los enlaces en E
que tienen el ancho de banda disponible menos al requerido por la demanda
obtenindose una topologa reducida con los pesos asignados incambiados. Luego se
corre el SPF basado en Dijkstra para obtener el LSP entre s y d y se actualiza el ancho de
banda disponible en los enlaces que pertenecen al nuevo LSP.
39
Captulo 6
6.1 Introduccin
Debido a que la distribucin del trfico en las redes de datos cambia rpidamente,
es complicado para los operadores de una red, el determinar cundo y dnde incrementar
la capacidad de la misma, lo cual puede llevar a problemas de sobrecarga.
La toma de decisin sobre cuntos usuarios pueden ser atendidos y cunto trfico
puede generar cada uno de ellos, es un tema del que se encarga el proceso de admisin de
trfico. El mismo, es responsable de garantizar que los usuarios tengan un acceso justo a
los servicios de la red, al mismo tiempo de minimizar la probabilidad de negar un
servicio a un cliente.
El determinar cunto trfico de cada flujo debe ser admitido por la red y por
dnde rutear al mismo una vez que ingresa, satisfaciendo los requerimientos de alta
utilizacin de la red y garantizando justicia a los usuarios, es uno de los retos ms
grandes en el diseo de las redes de telecomunicaciones de hoy en da.
As nos encontramos frente a la pregunta de cmo distribuir econmicamente
cierto volmen de demanda sobre una red, bajo cierto conjunto de restricciones de ruteo y
flujo.
La primera hiptesis es que las demandas entre pares de nodos origen-destino,
pueden utilizar cualquier ancho de banda asignado a ellas en trminos de sus flujos de
caminos, quizs bajo ciertos lmites.
La pregunta es: qu principio debemos seguir al alojar las demandas entre los
recursos que la red tiene pare ofrecer, de manera de cumplir con algn criterio de
justicia?
Una primera solucin que se nos podra ocurrir es asignar la mayor cantidad de
recursos a cada demanda, al mismo tiempo que se intenta mantener los recursos
asignados lo ms similares posible. Esto nos lleva al principio de asignacin llamado
Max-Min Fairness (MMF), usado para formular el esquema de asignacin de recursos
(Ver [10] por ms informacin).
La nocin de justicia se presenta en el contexto de redes basadas en el intercambio
de paquetes, transportando demandas elsticas entre pares de nodos. Con elasticidad nos
referimos a que cada demanda puede consumir cualquier ancho de banda agregado
asignado a sus caminos individuales, quizs dentro de determinados lmites predefinidos.
En las prximas secciones de ste captulo mostraremos los enunciados
principales de los problemas MMF, analizando cmo usar sus nociones para expresar la
justicia en el proceso de admisin de trfico. Se presentarn los cuatro diferentes mtodos
que fueron implementados en el software NET-TE.
40
*La informacin, as como los enunciados y mtodos presentados en ste
captulo, fueron extrados del libro "Routing, Flow and Capacity Design in
Communication and Computer Networks", de Michal Pioro y Deepankar Medhi [10].
Consideremos una red con enlaces de capacidades fijas y con caminos prefijados
nicos asignados para transportar los flujos de las demandas (o sea que en caso de existir
varios caminos posibles entre determinado par de nodos, nos quedamos solamente con
uno slo de ellos, pudiendo ste ser elegido por el usuario a su gusto).
Antes de seguir con el planteo del primer mtodo utilizado de asignacin justa de
recursos, debemos introducir una definicin:
Definicin 6.1:
Un vector de n componentes x = (x1, x2,, xn) ordenado en orden ascendente (x1 x2
xn) es lexicogrficamente mayor que otro vector de n componentes y = (y1, y2,, yn)
ordenado ascendentemente (y1 y2 yn) si existe un ndice k, 0 k n, tal que xi = yi
para i=1, 2,, k y xk > yk.
ndices
d = 1, 2,, D demandas
e = 1, 2,, E enlaces
Constantes
ed = 1 si el enlace e pertenece al camino fijo de la demanda d; 0 en otro caso
ce Capacidad del enlace e
Variables
xd Flujo asignado a la demanda d, x = (x1, x2,, xD)
Objetivo
Hayar el vector de asignacin x, el cual, cuando ordenado en orden ascendente, es
lexicogrficamente mximo entre todos los vectores de asignacin ordenados en orden
ascendente.
41
Restricciones
d
ed xd ce e = 1, 2,..., (6.2.1a)
x0 (6.2.1b)
Obviamente, como es simple de ver, la ecuacion (6.2.1a) quiere decir que, para
cada enlace, la suma de los anchos de banda de cada demanda que pase por ese enlace, no
puede ser mayor que la capacidad de dicho enlace, lo cual es razonable.
De acuerdo a la Definicin 6.1, la solucin x* de ste problema tiene la propiedad
de que para cualquier otro posible vector x = (x1, x2,, xD), cuando ambos vectores estn
ordenados ( xi*(1) xi*(2) ... xi*( D ) y x j (1) x j (2) ... x j ( D ) ) entonces existe un ndice
d, 0 d D, tal que xi*(l ) = x j (l ) para l = 1, 2,, d y xi*( d +1) > x j ( d +1) .
Para establecer la equivalencia de la caracterizacin lexicogrfica de la solucin
ptima al problema MMF/FIXSP (Max-Min Fairness for Fixs Paths; problema que
estamos actualmente analizando) con una caracterizacin justa max-min ms conocida,
para el caso considerado de camino fijo nico, debemos introducir a continuacin una
nueva definicin y proposicin.
Definicin 6.2
Un posible vector de asignacin de flujo x que satisfaga (6.2.1a y 6.2.1b) es max-min
justo si para cada demanda d existe un enlace saturado e ( ed xd = ce ) perteneciente al
d
Proposicin 6.1
Un vector de asignacin x* resuelve el problema anterior si y slo si es max-min justo en
el sentido sealado por la Definicin 6.2. La solucin x* de este problema es nica.
Variables
xd flujo asignado a la demanda d
ued variable auxiliar binaria, ued = 0 si el enlace e pertenece al camino de la
demanda d, e esta saturado y xd es mximo en e; ued = 1 en cualquier otro
caso
ze variable auxiliar del flujo para el enlace e
42
Restricciones
d
ed xd ce e = 1, 2,..., (6.2.2a)
e
ed (1 ed ) 1 d = 1, 2,..., D (6.2.2b)
con todas las xd y ze continuas no negativas y todas las ued binarias (6.2.2f)
Paso 0: Poner x* = 0
Paso 1: t := min ce / ed : e = 1, 2,..., E
d
Paso 2: ce := ce t ed para e = 1,2,..., E; xd* := xd* + t para d = 1,2,..., D
d
43
Remover todos los enlaces saturados (todos los enlaces e con ce=0). Para
cada enlace removido e, remover todos los caminos y correspondientes
demandas que usan ese enlace removido (todas las d con ed = 1 ).
maximizar t (6.2.3a)
sujeto a t ed ce e = 1, 2,..., E (6.2.3b)
d
ndices
d = 1, 2,, D demandas
e = 1, 2,, E enlaces
Constantes
ed = 1 si el enlace e pertenece al camino fijo de la demanda d; 0 en caso
contrario
ce capacidad del enlace e
wd peso de la demanda d
hd lmite inferior para el flujo de la demanda d
Hd lmite superior para el flujo de la demanda d
Variables
xd flujo asignado a la demanda d, x = (x1, x2,, xD)
Objetivo
Encontrar el vector de asignacin x, el cual, cuando est ordenado en orden
ascendente, es lexicogrficamente mximo entre todos los vectores de asignacin
ordenados ascendentemente.
44
Restricciones
hd xd H d d = 1, 2,..., D (6.3.1a)
(6.3.1b)
d
ed wd xd ce e = 1, 2,..., E
x0 (6.3.1c)
maximizar t (6.3.2a)
sujeto a t wd ed ce e = 1, 2,..., E (6.3.2b)
d
Paso 2:
ce := ce t ed wd para e = 1, 2,..., E; xd* := xd* + t para d = 1, 2,..., D
d
Remover todos los enlaces saturados (todos los e con ce=0). Para cada
enlace removido e remover todos los caminos y correspondientes
demandas que usen el enlace removido (todas las d con ed = 1 ).
Paso 3: Si no quedan ms demandas entonces detenerse. En caso contrario ir al
paso 1.
45
Observacin
La implementacin de este algoritmo consiste bsicamente en agregar un enlace
y nodo ficticio para cada demanda, de manera de asegurarse que por dicho enlace pase
solamente sa demanda en particular. O sea que cada demanda tendr un enlace y nodo
ficiticio propio de ella. La capacidad de dicho enlace ficticio ser igual al ancho de banda
requerido para la demanda en cuestin. De esta manera, nos aseguramos que el ancho de
banda no se aumente ms que el ancho de banda requerido por el usuario. Es una manera
de poner un tope superior al ancho de banda.
ndices
d = 1, 2,, D demandas (pares de nodos)
p = 1, 2,, Pd caminos candidatos para la demanda d
e = 1, 2,, E enlaces
Constantes
edp = 1 si el enlace e pertenece al camino p de la demanda d; 0 en caso contrario
ce capacidad del enlace e
Variables
xdp flujo (ancho de banda) asignado al camino p de la demanda d
Xd flujo total (ancho de banda) asignado a la demanda d, X = (X1, X2,,
XD)
46
Objetivo
Encontrar el vector de asignacin de flujo total X, el cual, cuando ordenado en
orden ascendente, es lexicogrficamente mximo entre todos los vectores de
asignacin ordenados en orden ascendente.
Restricciones
xdp = X d
p
d = 1, 2,..., D (6.4.1a)
d p
x = ce
edp dp e = 1, 2,..., E (6.4.1b)
maximizar t (6.4.2a)
t Xd 0 d = 1, 2,..., D (6.4.2c)
d p
x = ce
edp dp e = 1, 2,..., E
(6.4.2d)
47
paso que chequea qu demanda de asignacin Xd puede seguir siendo incrementada sin
afectar al resto de las demandas.
La eficacia del Algoritmo 3 depende de la eficiencia del test de no bloqueo (NBT)
usado en el Paso 1. El test llamado NBT1 consiste en resolver el siguiente problema LP
para cada demanda fija d Z1:
maximizar Xd (6.4.3a)
maximizar t
48
sujeto a X d = xdp d = 1, 2,..., D (6.4.4a)
p
t Xd 0 d = Z1 (6.4.4b)
(6.4.4c)
td X d 0 d = Z0 (td const )
d p
edp e = 1, 2,..., E (6.4.4d)
xdp ce (6.4.4e)
Proposicin 8.2:
El vector final de volumenes de asignacin total X * = ( X 1* , X 2* ,..., X D* ) , que
resulta de la solucin del Problema (6.4.4) obtenida en la ltima iteracin del Algoritmo
3, es nico.
49
para cada demanda, determinando a su vez cunta carga llevara cada sub-demanda. En
este caso lo que se hace, es una especie de tratamiento sobre el resultado arrojado por el
algoritmo 3. Se toman todas las demandas y sus respectivas sub-demandas (resultados
obtenidos del algoritmo 3), y se ordenan de mayor a menor, segn el ancho de banda que
portan. Supongamos que analizamos primero la primer demanda. Tenemos ya sus sub-
demandas ordenadas de mayor a menor. Entonces comparamos el ancho de banda que
lleva la primer sub-demanda con el ancho de banda requerido (valor dado por el usuario).
En caso que el ancho de banda de la sub-demanda ya sea mayor que el requerido para la
demanda nmero uno, se resta el ancho de banda requerido al que porta la sub-demanda y
se descartan el resto de las sub-demandas (ya que al ancho de banda requerido ya fue
satisfecho). Ahora, en caso de no ser mayor, se prosigue a la siguiente sub-demanda y se
ve si el ancho de banda de la primer sub-demanda conjuntamente con el que lleva la
segunda sub-demanda es mayor o no que el requerido. En caso de serlo se descartan el
resto de las sub-demandas y se realiza la resta. Sino, se prosigue de la misma manera, una
y otra vez.
Este proceso se repite para todas las demandas.
Como vemos entonces, los pasos para resolver el algoritmo 4 son los mismos que
los usados en el algoritmo 3. La nica diferencia es que se hace un tratamiento de los
resultados arrojados por el algoritmo 3 de manera de, en caso de ser suficiente el ancho
de banda que porta cada demanda, detenerse en cuanto se llega al valor del ancho de
banda requerido.
50
Parte III
Arquitectura de Software
51
Captulo 7
Representacin de la red e
interaccin con ARCA
En los prximos captulos presentaremos la estructura en la que fue creado el
software NET-TE. Se presentarn los packages utilizados y especificar las principales
tareas de las clases que los conforman, as como su implementacin.
El orden en el que se presentaran los packages ser el siguiente.
En un principio, se empezar en este Captulo 7 con el Package correspondiente a
la topologa de la red en donde se presentarn los elementos que la constituyen as como
una breve descripcin de los mismos. En una diferente seccin dentro de este mismo
captulo, tambin se presentar al package encargado de la interaccin con el ARCA. El
mismo tiene como objetivo el poder crear un rea comn entre ambas aplicaciones para
poder as utilizar el archivo de salida del ARCA como entrada al nuestro y que exista as,
compatibilidad entre ambas aplicaciones.
Pasamos posteriormente a presentar en el Captulo 8 al Package Programa. El
mismo se encarga de la interfaz grfica de la aplicacin. Se encarga de ofrecerle al
usuario, por medio del modo grfico, la manera de acceder a las distintas funcionalidades
del software, como ser ingresar la topologa manualmente, configurar los parmetros de
los enlaces, desplegar los LSPs ya creados y eliminar los que se desee, obtener
informacin sobre el porcentaje de utilizacin de cada enlace en la red y observar de
manera grfica por medio de la diferenciacin de colores los distintos rangos de
utilizacin que el usuario desee analizar, etc.
Luego en el Captulo 9 describimos el Package Cargar Red, encargado de
implementar la funcionalidad de cargar la topologa de la red sobre la cual se esta
trabajando de manera automtica.
Ms adelante, en el Captulo 10, presentamos el Package Crear LSPs, que es
donde se implementa el algoritmo CSPF de computacin de caminos para hayar los
LSPs.
Por ltimo, en el Captulo 11, se trata el Package MT, el cual se encarga de crear
o cargar (en caso de que exista una ya creada) la matriz de trfico de la red, en donde el
usuario especifica todos las demandas representadas por los pares origen-destino, para
luego darla como parmetro de entrada a los algoritmos de redes justas y MIRA.
52
El package Topologa fue el primer package desarrollado en el proyecto y en l
se encuentran las clases con las que representamos los elementos de una red MPLS,
que cuenta con los atributos necesarios para poder aplicar algoritmos de TE.
En la Figura 7.1 podemos ver el diagrama UML del package.
53
7.2 La clase Elemento
Esta clase define un objeto Elemento del cual heredarn los objetos LER, LSR y
Link y define los atributos comunes a ellos. Esto sirve para poder referirnos a estos
objetos como si fueran de la clase Elemento, y mantener as un nivel de abstraccin.
54
7.6.1 Compatibilidad con ARCA - Analizador de Redes de
Caminos Virtuales
55
Figura 7.2: Diagrama UML del Package Arca.InferfazGrfica
56
Captulo 8
Interfaz Grfica
Este captulo se dedica en su mayora a la interfaz grfica de la aplicacin. En el
package Programa, se implementan las distintas ventanas que permitirn al usuario el
acceso a las distintas funcionalidades que posee el software. Entre ellas se puede
enumerar por ejemplo todo lo relacionado al abrir y guardar distintas configuraciones
topolgicas con sus respectivos parmetros; tambin la barra de herramientas ubicada a la
derecha de la pantalla que es la principal herramienta para acceder a las utilidades del
software; adems, la ventana en la cual se introduce la informacin requerida para poder
cargar la red automticamente, as como las utilizadas para ver el estado actual de la red
en cuanto a lo que utilizacin y caractersticas de los LSPs creados hasta el momento se
refiere.
Se procur agrupar los botones de acuerdo a la tarea que cumplen: ingreso de
elementos de red, algoritmos para el establecimiento de los LSPs y herramientas de
visualizacin del estado actual de la red. Todo esto, por medio de una interfaz grfica
sencilla e intuitiva, que sea de fcil manejo para el usuario.
Pasemos ahora a describir el package Programa.
57
Figura 8.1: Diagrama de clases del Package Programa
La clase Principal genera el marco principal que contiene las barras de men y
herramientas con el que se pueden crear, abrir y modificar distintas topologas de red.
La clase VentanaConf implementa los dos paneles principales del software que
son el panel grfico en el que se representan los elementos que componen la red y el
panel que contiene los botones que implementan todas las funcionalidades del software
como ser, crear elementos de red, ver estadsticas o correr distintos algoritmos de
ingeniera de trfico.
58
Figura 8.2: Marco Principal del software
Esta clase permite al usuario generar un archivo de salida, que guarda en forma de
texto todos los elementos de la red y sus atributos. De esta manera el usuario podr
simular varias topologas y guardar los diferentes estados de la red en un archivo .txt que
luego podr abrirlo para que la clase Intrprete lo convierta en elementos grficos de una
forma sencilla.
59
Formato del archivo segn el elemento de red:
60
8.5 Clase ConfLink
Esta clase implementa el marco en el cual el usuario podr al crear un enlace
nuevo en la red configurar todos sus atributos como ser el nombre, ancho de banda, peso
asociado al enlace (usado como costo en CSPF) y afinidades. El mismo marco permite al
usuario crear un nuevo tipo de afinidad que luego podr ser utilizada en todos los enlaces
de la red. Si en algn momento el usuario necesitase modificar alguno de los atributos, el
software crear una nueva instancia a sta clase, pero cargando los atributos actuales del
enlace.
Al usuario crear un nuevo Link se abre la ventana que se muestra en la Figura 8.4,
asociando valores por defecto a los distintos atributos del nuevo enlace. El software
cuenta los enlaces ya creados en la red y le asigna el nombre correspondiente. En la parte
inferior de la ventana el usuario podr asociar al enlace afinidades ya creadas en la red o
crear una, escribiendo la nueva afinidad en el campo Escribir Afinidad. Esta nueva
afinidad podr luego ser asociada a todos los enlaces de la red. Se decidi agregar el
concepto de afinidad a los enlaces de modo de restringir usar ciertos enlaces por ejemplo
por trfico del tipo Best Effort en enlaces crticos. De esta manera el usuario podr correr
CSPF y usar como restricciones las afinidades creadas en la red.
61
8.6 Clase Cargar Topologa
Esta clase implementa el marco en el cual el usuario podr ingresar los
parmetros necesarios para poder descubrir la topologa en estudio.
62
LSPs que pasan por el elemento, o en el caso de los enlaces su utilizacin. Ver Figura
8.6. Por otro lado la clase Estadsticas, genera un marco ms general en el que se puede
ver el estado actual de la red como ser los atributos de los elementos de la red, ver los
enlaces crticos y ver detalles de los LSPs establecidos en la red. Observar la Figura 8.7.
63
8.8 Clase Utilizacin
Es otra de las clases creadas que permiten al usuario conocer el estado de la red
de una manera sencilla. La clase genera un marco al que el usuario puede ingresar valores
que se toman como referencia para definir rangos de utilizacin. Luego se llama a un
mtodo que recorre todos los enlaces de la red y los pinta de un color que depende de la
utilizacin actual del enlace. Observar Figura 8.8.
Esta ventana puede estar abierta siempre y con slo apretar el botn Aceptar se
reflejar de un modo rpido los cambios de utilizacin en los enlaces debido a los nuevos
LSPs creados en la red.
64
Captulo 9
En nuestro caso cargar la topologa de red se entiende como descubrir todos los
routers presentes en la red que estn intercambiando informacin de ruteo mediante el
protocolo de enrutamiento OSPF.
Al ser OSPF un protocolo de estado de enlace cada router slo conoce los routers
de la red con los que forma adyacencias e intercambia informacin de ruteo
(generalmente en ospf slo se forman adyacencias entre los routers directamente
conectados).
Para conocer los vecinos de un router y las velocidades de las interfaces que lo
conectan es necesario acceder a los MIBs de los routers, especficamente a los definidos
en el RFC-1213 y en los OSPF-MIB. En la siguiente Figura 9.1 se pueden ver los grupos
y tablas que lo componen.
65
OSPF-MIB DEFINITIONS RFC1213-MIB DEFINITIONS
ospfGeneralGroup
ospfAreaTable
mib-2
ospfStubAreaTable
system
ospfLsdbTable
interfaces
ospfAreaRangeTable
ifNumber
ospfHostTable
ifTable
ospfIfTable
at
ospfIfMetricTable
ip
ospfVirtIfTable
icmp
ospfNbrTable
tcp
ospfVirtNbrTable
udp
ospfExtLsdbTable
egp
ospfRouteGroup
transmission
ospfAreaAggregateTable
snmp
ospfConformance
Figura 9.1: Grupos y Tablas que componen los MIBs de OSPF y RFC-1213
66
Lo primero que hace el software es cargar el RouterID del router, que es la
direccin IP que identifica unvocamente al router en la red. El software guarda el
RouterID en memoria de modo de saber que ya se conect a este router y no volver a
conectarse. En ese momento carga la tabla ospfNbrTable, que es donde el router guarda
informacin de las adyacencias que forma con los dems routers de la red. El software
carga en memoria los RouterIDs y las direcciones IP de las interfaces por las cuales se
conecta.
En el caso del router directamente conectado tendramos como respuesta a la
consulta del ospfNbrTable:
Se comparan los RouterID de estos nuevos routers con los que el software tiene
en memoria como ya conectados. Si aparece en la lista se omite y se guardan los nuevos
routers descubiertos. De esta manera el software se va conectando a todos los routers,
carga a los vecinos, los compara para saber si son nuevos, si lo son los guarda en
memoria para conectarse luego y si no se omiten. Se sigue esta iteracin hasta que no se
descubren routers nuevos y ya me conect a todos los que tengo en memoria.
67
En resmen,
68
Figura 9.3: Diagrama UML del package CargarRed.
69
Captulo 10
Computacin de caminos
El presente captulo analiza los distintos mecanismos para la computacin de
caminos que van a ser futuros LSPs. Se destaca el algoritmo Constraint Shortest Path
First (CSPF) utilizado para encontrar caminos basndose en el conocido algoritmo
Shortest Path First (SPF) o Dijkstra, con el requerimiento extra de que debe satisfacer
ciertas restricciones. Se le ofrecen al usuario adems distintos criterios a aplicar de
Ingeniera de Trfico (TE), de manera que pueda optimizar el resultado arrojado por el
CSPF, filtrando todas las soluciones posibles y dejando solamente las que ms se
aproximan a lo que desea. Tambin se presenta otro algoritmo online para el
establecimiento de rutas que es el MIRA. Se expone tambin el mtodo manual en donde
el usuario establece los LSP de manera explcita indicando el camino que desee.
Este package esta conformado por 5 clases: Ruteo Explcito, CSPF, Algoritmo,
CarConf y MIRA.
Para poder visualizar mejor el relacionamiento entre dichas clases que componen
este package, a continuacin se muestra el diagrama UML del mismo.
70
A continuacin pasamos a describir en ms detalle cada una de las clases
mencionadas anteriormente.
Esta es la clase usada cuando el usuario de la red desea establecer los LSPs de
manera manual, sealando enlace a enlace, cul es el camino que desea conforme el LSP.
Como cualquier otro LSP, al momento de desplegarse la ventana, se le asigna un
nombre al LSP prximo a crearse.
El usuario debe ingresar como parmetro de entrada el ancho de banda que desea
tenga el LSP y cul es el Nodo de Origen donde desea comience el LSP.
Podemos observar a continuacin en la Figura 10.2 una imagen de cmo luce la
ventana desplegada.
71
10.3 La clase CSPF
Esta clase es la usada para computar caminos para futuros LSPs por medio del
algoritmo CSPF explicado en el Captulo 4.
Esta clase lo que bsicamente hace es recolectar toda la serie de parmetros
ingresados por el usuario, necesarios para determinar cules son las restricciones que
desea cumpla el o los LSPs solucin y qu criterio de ingeniera de trfico desea usar.
Posteriormente, de acuerdo a las opciones elegidas, pasa a llamar a la clase Algoritmo
(explicada en la Seccin 10.4) que es donde reside el mtodo que implementa el Dijkstra
y los dems mtodos encargados de ejecutar el criterio de ingeniera de trfico, si es que
se eligi alguno.
Son varias las distintas opciones que se le presentan al usuario al momento de
ingresar los parmetros al sistema, de manera que pueda crear varias situaciones y
analizar cul es la que ms le conviene. Esto claramente aumenta la cantidad de
escenarios del tipo what if que puede plantearse. Todo esto con el objetivo de poder
ofrecerle al usuario tantas herramientas como sea posible para conseguir la solucin que
ms se ajuste a sus necesidades.
Podemos observar el aspecto de la ventana creada por esta clase en la Figura 10.3.
72
Empecemos sealando cules son los distintos parmetros que debe ingresar el
usuario y las opciones que se le ofrecen para pasar luego a comentar ciertas
caractersticas de cmo fue implementada la clase CSPF.
As como lo muestra la Figura 10.3, automticamente que se abre la ventana el
programa ya le asigna un nombre determinado al LSP a crearse.
Paso siguiente, el usuario debe ingresar, como es usual, el ancho de banda que va
a requerir el LSP que desea establecer.
Asimismo tiene la posibilidad de elegir una Afinidad determinada, del grupo de
Afinidades que hayan sido creadas. Esto permite al usuario el poder correr el algoritmo
CSPF slo sobre los enlaces que pertenecen a una determinada Afinidad, lo cual es
prctico en caso de tener distintos tipos de trficos circulando por los enlaces de la red y
desear correr el algoritmo slo sobre los que portan un determinado tipo.
Finalmente, los siguientes parmetros obligatorios a ingresar son el Nodo de
Origen y de Destino.
Como comentario al margen, vale destacar que la ventana fu diseada para que
las opciones se vayan habilitando a medida que los parmetros vayan siendo ingresados
en orden. Esto obliga al usuario a ingresar si o si los parmetros que son obligatorios para
correr el Dijkstra o SPF.
Ahora pasamos a la parte en donde el usuario debe elegir qu criterio usar para
asignar los pesos a los enlaces. Esto es particularmente importante ya que determina la
mtrica en la cual se basar luego el SPF para el clculo de los caminos solucin.
Las opciones presentadas son las siguientes;
73
A continuacin, una vez elegida la mtrica que se va a tomar en cuenta, el usuario
tiene la posibilidad de elegir un determinado enlace por el que pase el o los caminos
solucin si o si. De esta manera se obliga a las posibles soluciones que contengan
determinado enlace an cuando este no estara contenido en los caminos arrojados por el
Dijkstra. Adems se le da tambin la posibilidad de lo opuesto, que no pase por
determinado enlace, an cuando ste estuviera contenido en los caminos arrojados por el
Dijkstra. La razn de estas dos opciones es que quizs por razones polticas o de
determinado Service Level Agreement (SLA), el usuario est obligado a que se pase o no
por determinado enlace.
Por ltimo, se le da la posibilidad al usuario de elegir entre no usar criterio de
Ingeniera de Trfico alguno, o usar dos posibles.
De la primer manera, no se usa criterio de TE alguno, lo cual implica que las
soluciones desplegadas al usuario sern las arrojadas por el algoritmo SPF en su totalidad
y que cumplen con las restricciones elegidas por el usuario previamente.
La segunda opcin es usar un criterio de TE basado en filtrar los caminos solucin
brindados por el SPF y desplegar de entre esas soluciones, slo aquellas que no utilizan a
los enlaces ms crticos contenidos en los caminos (de ah el nombre no saturacin de
enlaces crticos).
Y por ltimo, se tiene el MINHOP, el cual, simplemente de todas las soluciones
arrojadas por el SPF, se queda con las ms cortas en cuanto a lo que a cantidad de saltos
se refiere.
Lo nico que resta es correr el Algoritmo y se desplegarn en pantalla todas las
posibles soluciones.
En caso de haber elegido el segundo o tercer criterio de TE, se despliega en
pantalla una ventana que muestra los caminos que fueron elegidos y los descartados
luego de aplicar esos criterios de TE. Esta ventana muestra adems la utilizacin y otros
tiles datos de los enlaces que conforman los caminos elegidos y descartados.
Se comentar ms en detalle el algoritmo SPF, criterios de TE y la ventana
mencionada anteriormente, en las prximas secciones.
Pasemos ahora a comentar los mtodos ms importantes y caractersticas de la
implementacin de la clase CSPF.
El primer mtodo a destacar es el mtodo podar(). Dicho mtodo es el encargado
de podar todos los enlaces de la red para pasar como parmetro de entrada al algoritmo
SPF (Dijkstra) solamente a aquellos que cumplen con la condicin del ancho de banda
requerido y pertenecen al mismo tiempo a la Afinidad seleccionada en caso de haberse
elegido una.
Para el caso de haber elegido algn enlace del combo Enlace Ausente,
simplemente retiro a ese enlace de la lista de enlaces a considerar que entran como
parmetro de entrada al algoritmo SPF.
La situacin es ms complicada cuando se elige un Enlace Presente. En este caso,
se debe empezar dividiendo el problema en dos. En caso que no se elija esta opcin,
simplemente se redefinen los pesos de los enlaces de acuerdo a la opcin de mtrica
elegida. Luego se corre el Dijkstra. Si encuentra una solucin ya de entrada, entonces en
ese caso ya la despliega en pantalla. Si se encuentra ms de una, se pasa a fijar si se eligi
algn criterio de TE en particular y de ser as, se aplica ese criterio y despliega en
74
pantalla el resultado conjuntamente con los datos de los caminos descartados, en caso de
haberlos.
Sin embargo en caso de haber elegido la opcin Enlace Presente, se debe tener
ms cuidado en la manera de correr el Dijkstra y cmo hacerlo. Primeramente se
redefinen los pesos de los enlaces de acuerdo a la mtrica elegida. Se deben tomar en
cuenta casos particulares como que uno de los nodos que conforman al Enlace Presente
sea de casualidad el Nodo de Origen o Nodo de Destino, o que justo Enlace Presente sea
el enlace que une al Nodo Origen con el Destino, en cuyo caso ya sera la solucin. En
todos estos casos en particular, se corre el SPF slo 1 vez. Ahora, si no caemos en
ninguno de estos casos en particular, entonces se deber correr el SPF 4 veces. Si
llamamos al Nodo Origen, nodoA; y al Nodo Destino, nodoB. Y supongamos que los
nodos que conforman a Enlace Presente son nodo1 y nodo2. Entonces se corre primero el
Dijkstra entre el NodoA y el nodo1 y luego entre el nodo2 y el NodoB. As se deben
tomar en cuenta todos los posibles caminos que surjan en cada pasada del Dijkstra, y en
caso de haber un error en alguna pasada, tambin se debe tomar en cuenta ya que quizs
no se encuentre camino alguno. Se agrega el Enlace Presente entonces a cada una de
todas las posibles combinaciones que surjan entre todas las soluciones encontradas en las
2 pasadas. Posteriormente, corremos el Dijkstra entre el nodoA y el nodo2 y luego entre
el nodo1 y el nodoB. Ac tomamos tambin en cuenta todos los caminos posibles que
surjan en cada pasada. Y repetimos el razonamiento. En caso de haber encontrado
soluciones en el primer par de pasadas del Dijkstra y en el segundo, se deben juntar todas
y sa es la solucin a mostrar. En todo caso se deber tener especial cuidado con la
aparicin de errores en alguna pasada debido a la no existencia de una solucin.
Finalmente, recurre a la clase Algoritmo en caso de haber ms de una solucin
posible arrojada por el SPF y elegido algn criterio de TE en particular.
Una vez elegida la solucin deseada, quedar guardada con el resto de los LSPs
ya establecidos.
75
arrojado por el Dijkstra, el enlace con menor ancho de banda disponible (llamemos
enlaceCrtico al valor de ancho de banda de dicho enlace). Se compara cada
enlaceCrtico de cada solucin y se descartan los caminos con el enlaceCrtico ms
pequeo. En caso de quedar an ms de una solucin posible, significa que el
enlaceCrtico para cada uno de estos caminos tiene el mismo valor. Entonces se pasa a
ver cuntos enlaces en cada uno de esos caminos, tienen un ancho de banda similar al
guardado en enlaceCrtico. Los caminos que tengan ms cantidad de enlaces con ese
valor, se descartan (ya que se estara perjudicando a un nmero mayor de enlaces en esos
caminos). Y si an despus de eso, seguimos con ms de una posible solucin, buscamos
el siguiente valor ms pequeo que sea mayor que enlaceCrtico y redefinimos
enlaceCrtico para cada solucin. Repetimos as el proceso iterativamente hasta
quedarnos con una solucin solamente o con varias que sean indistintas unas de las otras
en lo que a este criterio se refiere.
Por ltimo, se debe destacar el mtodo podar3(), el cual se encarga de filtrar
tambin las soluciones arrojadas por el Dijkstra, quedndose slo con las ms cortas en
cuanto a lo que nmero de saltos se refiere.
Presenta dos botones. Uno de ellos muestra los caminos que son solucin luego de
aplicar alguno de los criterios de TE. El otro muestra informacin sobre los caminos que
76
fueron descartados (stos son los caminos que pertenecan a la solucin brindada por el
Dijkstra, pero que no cumplieron el requerimiento de TE elegido).
La informacin desplegada es la siguiente para cada camino: los enlaces que
conforman dicho camino, la capacidad de cada uno de los enlaces, la cantidad de Mbps
que est siendo usada en ellos y el porcentaje de utilizacin.
77
Captulo 11
11.1 El package MT
78
Figura 11.1: Diagrama UML del package MT.
79
11.4 La clase GeneroMT
Esta clase implementa el marco en el cual el usuario podr crear el archivo que
representa la matriz de trfico. Al crear cada ruta se debe configurar sus atributos como
ser el nombre (tiene por defecto Ruta seguido de un nmero que se incrementa al crear
una ruta nueva), ancho de banda deseado, nodo origen, nodo destino y afinidad (es
opcional, el camino slo puede pasar por los enlaces con esa afinidad).
A cada ruta creada se le puede modificar todos sus atributos excepto el nombre,
o se puede borrar la ruta completa.
El archivo que se crea es con terminacin .txt y ser usado por las clases
FairnessNetwork y OffLineMira y tambin por GeneroMT cuando se desea modificar un
archivo de matriz de trfico ya creado.
Matriz de trfico
Camino
name Ruta_1
connection LER_1 LER_2
ancho 1.0
afinidad: no tiene
end
80
El archivo comienza con Matriz de trfico que es utilizado por el intrprete para
indicar que es un archivo generado por la clase GeneroMT.
End es utilizado por el intrprete para indicar que se terminaron los atributos del
elemento.
Despus de calcular todos los caminos posibles para cada ruta, se elige uno de
los cuatro algoritmos Fairness. Se selecciona la mtrica a utilizar entre Peso o Minhop y
al apretar el botn Correr se calcula el ancho de banda final de cada camino. Para los
ltimos dos algoritmos no se usan los parmetros Peso o Minhop, por lo que no se
habilitan en se caso. Tambin, en caso de elegir uno de los dos primeros algoritmos, si
existen varios caminos posibles para cada demanda, se le ofrece la posibilidad al usuario
de elegir el que desee por medio del combobox Caminos posibles.
Los mtodos algoritmo1() (que implementa el Fairness Bsico) y algoritmo2()
(que implementa el Fairness acotado) usan un slo camino de los calculados para cada
ruta a diferencia del algoritmo3() (que implementa el Fairness con mltiples caminos) y
algoritmo4() (que implementa el Fairness con mltiples caminos acotado) que usan todos
los caminos calculados para cada ruta.
81
El mtodo algoritmo1() corre el mtodo buscar() que cuenta los caminos que
pasan por cada enlace y el mtodo mnimo1() que incrementa el ancho de banda
reservado de todos los enlaces por donde pasa algn camino, esto lo hace hasta que satura
al menos un enlace de cada camino, a ese enlace le fija su ancho de banda. El mtodo
termina cuando todos caminos tienen fijo su ancho de banda.
El ancho de banda final de cada camino puede ser menor, igual o hasta mayor que
el ancho de banda deseado.
El mtodo algoritmo2() corre el mtodo buscar(), pero antes de llamar al mtodo
mnimo1() se abre una ventana que genera un marco donde el usuario puede ingresar los
valores de prioridad y demandamin de cada ruta.
Despus se crean por cada camino un enlace virtual con el ancho de banda
deseado para esa ruta y se llama mtodo mnimo1(). Los enlaces virtuales creados no se
muestran en pantalla y son necesarios para que el ancho de banda final de cada camino no
sea mayor que el ancho de banda deseado.
Estas diferencias con el mtodo algoritmo1() permiten que el ancho de banda
final de cada camino sea como mnimo igual a demandamin y como mximo igual al
ancho de banda deseado.
El mtodo algoritmo3() corre el mtodo calculatodos() que calcula todos los
caminos posibles para cada ruta, sin considerar mtrica alguna, ni el ancho de banda de
los enlaces. Despus corre los siguientes mtodos creaMatrizFairLink(),
OptimizacionLineal(), OptimizacionLinealChequeo(). Estos mtodos son los encargados
de maximizar las demandas, asignando a cada sub-demanda el ancho de banda calculado.
El ancho de banda final de cada demanda es la suma de los anchos de banda de sus sub-
demandas.
El mtodo algoritmo4() corre los mtodos calculatodos(), creaMatrizFairLink(),
OptimizacionLineal(), OptimizacionLinealChequeo(), igual que en el algoritmo3().
La nica diferencia es que despus de tener calculado el ancho de banda final de
todas las demandas y sub-demandas, busca las demandas que su ancho de banda final
supera el ancho de banda deseado y setea ste igual al ancho de banda deseado.
82
Esto lo hace seteando el ancho de banda final de cada sub-demanda de forma que
la suma de stas no supere el ancho de banda deseado de la demanda a la que pertenecen.
Se pueden correr los cuatro algoritmos sin cerrar la ventana y as poder comparar
los resultados obtenidos para cada uno de ellos. Los resultados obtenidos de cada ruta
para el algoritmo seleccionado se pueden ver al elegir una ruta de Lista de rutas. En
pantalla muestra los enlaces por donde pasa y en la misma ventana muestra sus atributos
como se observa en la siguiente figura.
Para el caso del tercer y cuarto algoritmo, donde se pueden tener mltiples
caminos para cada ruta, se muestran en la pantalla ubicada a la izquierda, las sub-
demandas o caminos que conforman cada ruta. Al hacer click en cada camino, se pinta en
pantalla el mismo y en la pantalla de la derecha se muestran sus atributos en particular. Si
se quieren apreciar todos los caminos que constituyen cierta demanda al mismo tiempo,
nuevamente, conjuntamente con sus atributos, basta hacer click en la ruta deseada otra
vez.
Aquellas demandas que no llegan a obtener el ancho de banda requerido, se
pintarn de color rojo a rayas en pantalla, para su diferenciacin.
83
Figura 11.6: Ventana de la clase LasDemandas
84
En el ltimo caso la clase desplegar una ventana en que el usuario podr
seleccionar los nodos individualmente.
85
Parte IV
Conclusiones
86
Captulo 12
87
prcticamente al instante y no considerable (poco ms de un par de segundos cuando
mximo).
12.2 Conclusiones
En cuanto a los objetivos planteados, podemos decir que se lleg a cumplirlos
todos de manera satisfactoria.
Se logr implementar una interfaz grfica sencilla y fcil de usar por cualquier
usuario, la cual le otorga una amplia flexibilidad al momento de disear o modificar su
red. Adems, se le brind al usuario varios mecanismos para poder visualizar el estado
actual de la red, pudiendo ver informacin de elementos en particular o de la red en
general. Pensando en la comodidad del usuario en la manera de cmo apreciar esa
informacin, se brinda toda esa informacin tanto en forma numrica como grfica.
El problema del establecimiento de los LSPs fue solucionado utilizando el
algoritmo CSPF. Realizamos varias pruebas sobre distintas topologas y situaciones, y
pudimos apreciar el correcto funcionamiento del mismo. Pudimos tambin comprobar
que es muy til el tener varias opciones a elegir, ya que esto nos permiti crear mltiples
escenarios y tener as un abanico ms grande de soluciones de entre las cuales elegir.
Tambin pudimos comprobar la gran utilidad que ofrece el algoritmo MIRA. Se
hicieron pruebas de chequeo sobre topologas en las cuales haban claramente ciertos
enlaces que eran crticos para futuras posibles demandas, y pudimos apreciar como el
algoritmo tenda a evitar dichos enlaces crticos.
Finalmente, nos planteamos escenarios donde el algoritmo CSPF no encontraba
ningn camino posible para ubicar a cierta nueva demanda, y probamos en ese caso los
algoritmos de fairness. Pudimos apreciar con xito como, con el uso de stos ltimos, se
lograba ubicar esa demanda sobre la red, cosa imposible de realizar usando el CSPF.
Adems, comprobamos con xito como NET-TE lograba asignar los recursos de una
manera justa en aquellos casos donde no era posible satisfacer por completo a todas las
demandas.
Con respecto a la carga automtica de la red, se pudo comprobar con xito su
funcionamiento en la red multiservicio del PDT desde el IIE de la Facultad. Se conect
una laptop que tena el software NET-TE instalado, a la red. Una vez conectada, y luego
de ingresar la informacin requerida, se pudo apreciar en consola, como el software se
conectaba a los routers vecinos e iba descubriendo la red. Finalmente, y tal como era de
esperarse, se dibuj en pantalla la topologa descubierta. Debido a restricciones de
seguridad, no pudimos descubrir la red entera, ya que slo tenamos visibilidad hasta los
routers ms prximos de la PC de donde estabamos conectados. De cualquier manera se
pudo comprobar el correcto funcionamiento de esta funcionalidad.
Es por todo lo anterior que creemos que NET-TE es una til herramienta que
puede ser usada por cualquier usuario que desee realizar pruebas y crear distintos
escenarios de Ingenieria de Trfico, sin temor de afectar de alguna manera la red real, ya
que se est en todo momento trabajando sobre escenarios de prueba y no sobre la red en
cuestin.
Como conclusin global se puede afirmar que se lograron realizar con xito todos
los objetivos trazados, juntando diversos criterios y algoritmos para el establecimiento de
88
LSPs en un slo software, el cual puede ahora ser usado como pilar para el desarrollo de
un software ms completo y grande, que agregue ms funcionalidades a las ya presentes.
Si bien se completaron todos los objetivos trazados, existen varias cosas que se
pueden agregar, de manera que el usuario tenga an ms posibilidades y algoritmos a los
cuales acceder.
En cuanto a la carga automtica de la red, actualmente NET-TE se encarga
solamente de levantar la topologa conjuntamente con la velocidad de cada enlace. Son
varios los datos que un usuario puede querer extraer de la red. En primer lugar, podra
levantar y mostrar los estados de las adyacencias entre nodos de la red. En esta primera
versin del software, no nos preocupamos de dichos estados. Tambin se podra levantar
las mtricas de OSPF y el ancho de banda libre de los enlaces. Uno de los datos ms
tiles que interesara extraer en una posible segunda versin del software, son los LSPs
ya establecidos. Datos como el ancho de banda que consume cada uno de esos LSPs, o la
afinidad que presenta tal o cual enlace, pueden resultar muy tiles, en especial ya que son
usados como datos de entrada en los algoritmos implementados en NET-TE. A su vez, el
avisar de cambios en los estados de las adyacencias entre nodos, mediante los traps de
SNMP, resultara bastante prctico.
Otra posible tarea a realizar a futuro, es aumentar la variedad de algoritmos
usados para el clculo de los LSPs. Se pueden agregar tantos algoritmos como el usuario
desee y que se ajusten a sus necesidades particulares. Asimismo, se pueden agregar
nuevos pesos, que por ejemplo reflejen el delay de cada enlace, y calcular as el CSPF en
base al retardo de los mismos.
Por ltimo, actualmente NET-TE lo que nos permite es cargar la topologa de la
red y extraer la velocidad de los enlaces, para as luego determinar dnde se ubicarn
cada uno de los LSPs de manera que se logre la QoS requerida. Pero no hay una forma de
arrojar esos LSPs a la red real. Por ende, una til implementacin en futuras versiones,
es desarrollar una interfaz que permita cargar en los routers de la red real los LSPs que
fueron calculados por NET-TE durante las distintas pruebas. De esa manera se cerrara el
ciclo que comienza con la carga automtica de la red conjuntamente con los LSPs ya
establecidos, contina con el clculo realizado por NET-TE de las nuevas rutas que
satisfacern las nuevas demandas y finaliza con la descarga de dichos LSPs a los routers
de la red, de manera que se vean reflejados los cambios y nuevas rutas establecidas.
89
Apndices
90
Apndice A
91
A.2 Componentes y funcionamiento de una red
MPLS
Los dispositivos que participan en un ambiente como ste pueden clasificarse en
routers frontera de etiquetas (LER) y en routers de conmutacin de etiquetas (LSR).
Un LER es un dispositivo que opera en los extremos de las redes MPLS y funciona como
el punto de interconexin entre sta y la red de acceso. Cuando un paquete llega a uno de
estos routers, el LER examina la informacin entrante y, de acuerdo con una base de
datos, asigna al paquete una etiqueta. En el extremo de salida de una red MPLS se
presenta la situacin opuesta, siendo estos dispositivos los responsables de remover la
etiqueta para entregar el paquete en la forma en que fue recibido.
Despus de que los paquetes han sido etiquetados por el LER, stos comienzan su
viaje a travs de la red MPLS, encontrndose en su trayectoria con los routers de
conmutacin de etiquetas (LSRs). Estos son los encargados de dirigir el trfico en el
interior de la red, de acuerdo con las etiquetas asignadas. Cuando un paquete arriba a un
LSR, ste examina su etiqueta y la utiliza como un ndice en una tabla propia que
especifca el siguiente "salto" y una nueva etiqueta. El LSR intercambia entonces sta
etiqueta por la que contena el paquete y lo enva hacia el siguiente router. La ruta que
sigue un paquete entre dos nodos de la red MPLS se conoce como ruta conmutada de
etiquetas (LSP). En la Figura A.1 se puede observar el esquema funcional de MPLS.
92
Como se coment anteriormente, los LERs se encargan de clasificar paquetes con
base en un nivel de calidad de servicio. A este proceso de clasificacin se le conoce como
Clase Equivalente de Direccionamiento (FEC, por sus siglas en ingls). Un FEC es la
representacin de un conjunto de paquetes que comparten los mismos requerimientos
para su transporte, de manera que todos los paquetes que pertenezcan a un FEC seguirn
el mismo LSP para llegar a su destino. Contrario a lo que sucede en el enrutamiento IP
convencional, la asignacin de un paquete a un determinado FEC en MPLS se hace una
sola vez.
Los LERs utilizan diferentes mtodos para etiquetar el trfico. Bajo el esquema
ms simple, los paquetes IP son ligados a una etiqueta y a un FEC utilizando tablas
preprogramadas como la que se muestra en la Figura A.2. Cuando los paquetes
abandonan el LER e ingresan al LSR correspondiente, la etiqueta MPLS es examinada y
comparada contra una tabla de conectividad conocida como Base de Informacin de
Etiquetas (LIB) para determinar la accin a seguir. El intercambio de instrucciones se
llevar a cabo dependiendo de las instrucciones del LIB. Un ejemplo de esta tabla de
conectividad se muestra en la Figura A.3. Debe sealarse que las etiquetas poseen
nicamente un significado local dentro del router correspondiente.
93
Algunas etiquetas o encabezados de determinados medios de transporte pueden
utilizarse como etiquetas de MPLS. Tal es el caso del identificador de ruta
virtual/identificador de circuito virtual (VPI / VCI) empleado en ATM y el
identificador de conexin de enlace de datos (DLCI) de Frame Relay. Otras
tecnologas, como Ethernet y enlaces punto a punto, requieren de una "etiqueta de
insercin" (shimlabel) que se ubica entre el encabezado de la capa de enlace de datos y el
encabezado de la capa de red (capas 2 y 3) del modelo OSI de un paquete. An cuando la
"etiqueta de insercin" no es parte de ninguno de estos encabezados, sta provee un
medio de relacin entre ambas capas.
La etiqueta MPLS tiene una longitud de 32 bits divididos en cuatro secciones. Los
primeros 20 bits corresponden a la etiqueta en s. Los 3 bits que siguen son considerados
de uso experimental. El siguiente bit es utilizado para denotar la presencia de "stack" y,
finalmente, los 8 bits restantes indican el tiempo de vida del paquete, es decir, un
parmetro que decrementa su valor por cada nodo recorrido hasta llegar a cero.
Obsrvese en la Figura A.4 cmo est compuesta la "etiqueta de insercin" y cul es su
ubicacin dentro de los paquetes IP.
94
mayor control de la red, aunque, en comparacin con el control independiente, presenta
tiempos de convergencia mayores y el router de salida se convierte en el nico punto
susceptible a fallas.
95
protocolos de enrutamiento explcito y protocolos de enrutamiento implcito. El
enrutamiento explcito es idneo para ofrecer Ingeniera de Trfico y permite la creacin
de tneles. El enrutamiento implcito, por el contrario, permite el establecimiento de
LSPs pero no ofrece caractersticas de Ingeniera de Trfico.
El Protocolo de Distribucin de Etiquetas (LDP) es uno de los protocolos de
enrutamiento implcito que se utilizan con frecuencia. LDP define el conjunto de
procedimientos y mensajes a travs de los cuales los LSRs establecen LSPs en una red
MPLS. Otros protocolos de enrutamiento implcito incluyen al Protocolo de Compuerta
de Frontera (BGP) y al protocolo de Sistema Intermedio a Sistema Intermedio (IS-
IS).
Por otro lado, entre los protocolos de enrutamiento explcito ms comunes
encontramos al protocolo LDP de Ruta Restringida (CR-LDP) y al Protocolo de
Reservacin de Recursos con Ingeniera de Trfico (RSVP-TE). El primero de estos
protocolos ofrece, en adicin a LDP, caractersticas de Ingeniera de Trfico, de manera
que sea posible negociar con anticipacin una ruta en especial. Esto permite establecer
LSPs punto a punto con calidad de servicio en MPLS. CR-LDP es un protocolo de estado
slido, es decir, que despus de haberse establecido la conexin, sta se mantiene
"abierta" hasta que se le indique lo contrario.
RSVP-TE opera de manera similar que CR-LDP, pues permite negociar un LSP
punto a punto que garantice un nivel de servicio de extremo a extremo. El protocolo es
una extensin de la versin original RSVP, aunque incorpora el respaldo para MPLS. A
diferencia de CR-LDP, este protocolo permite negociar una ruta para la transmisin de
informacin, misma que debe "refrescarse" constantemente para que sta se mantenga
activa (estado blando). Mediante estos ltimos protocolos y la aplicacin de distintas
estrategias de ingeniera de trfico es posible asignar diferentes niveles de calidad de
servicio en redes MPLS.
96
Apndice B
97
B.2 ASN.1
Como ya se mencion, el corazn del modelo SNMP es el conjunto de objetos
administrados por los agentes y ledos por la estacin administradora. Para hacer posible
la comunicacin multiproveedor, es esencial que estos objetos se definan de una manera
estndar y neutral desde el punto de vista de los proveedores. Es ms, se requiere una
forma estndar de codificarlos para su transferencia a travs de la red. Por esta razn, se
requiere un lenguaje de definicin de objetos estndar, as como reglas de codificacin.
El lenguaje usado por el SNMP se toma del OSI y se llama ASN.1 (Abstract Syntax
Notation One-notacin de sintaxis abstracta uno).
iso.identified.organization.dod.internet.private.enterprise.enterprise.cisco.temporaryvari
ables.AppleTalk.atInput. o por su equivalente 1.3.6.1.4.1.9.3.3.1.
98
Esto es necesario ya que hay que definir algunas reglas si los productos de cientos
de proveedores han de hablar entre s y realmente entender lo que dicen.
En el nivel ms bajo, las variables SNMP se definen como objetos individuales.
Los objetos relacionados se renen en grupos, y los grupos se integran en mdulos. Por
ejemplo existen grupos para los objetos IP y los objetos TCP. Un router puede
99
Todos los mdulos MIB comienzan con una invocacin de la macro MODULE-
IDENTITY que proporciona el nombre y la direccin del implementador, la historia de
modificaciones y otra informacin administrativa. Luego le sigue una invocacin de la
macro OBJECT-TYPE que tiene cuatro parmetros requeridos y cuatro opcionales:
ospfRouterId ObjectType
Syntax RouterID
MaxAccess read-write
Status current
Description A 32-bit integer uniquely identifying the
router in the Autonomous System.
Tambin SM1 define una gran variedad de tablas estructuradas que son usadas
para agrupar objetos que tienen mltiples variables.
B.3 SNMP v1
SNMP v1 es la implementacin inicial del protocolo SNMP. Es descrito en el
RFC 1157. Opera bajo protocolos tales como User Datagram Protocol (UDP), Internet
Protocol (IP), OSI Connectionless Network Service (CLNS), AppleTalk Datagram-
Delivery Protocol (DDP) y Novell Internet Packet Exchange (IPX). Esta versin es la
ms extendida en su uso y es el protocolo de facto en la comunidad de Internet.
100
B.3.1 Operaciones Bsicas
SNMP es un protocolo simple de consulta-respuesta. El NMS hace la consulta y
la estacin administrada responde. Este comportamiento es implementado usando una de
las 4 operaciones del protocolo: Get, GetNext, Set and Trap.
B.4 SNMP v2
101
Apndice C
C1 Ejemplo
102
x11 =1 en el camino P1 = {2}
x12 =1 en el camino P2 = {1,3}
x12 =1 en el camino P1 = {1, 4}
x22 =0 en el camino P2 = {2,3, 4}
dnde la notacin xij representa el BW asignado a la demanda i por el posible camino j.
Las restricciones con las que trabajaremos son, expresadas en trminos generales,
las siguientes:
xdp = X d demanda d
p
edp xdp ce enlace e
d p
x 0 demanda y todo camino
dp
x12 + x22 = X 2
x12 + x12 2
x11 + x22 1 lo que nos lleva al primer clculo de maximizacin:
x12 + x22 2
x12 + x22 1
xij 0 i = 1, 2 j = 1, 2
103
max
x1 + x1
1 2
x1 + x 2
2 2
x1 + x2 2
2 1
* 1 2 con x Q
x1 + x2 1
x2 + x2 2
1 2
x2 + x22 1
1
j
xi 0 i = 1, 2 j = 1, 2
Haciendo cuentas, 2 x11 + x12 + x12 + x22 = ( x11 + x22 ) + ( x12 + x12 ) 3
1 2
Observar que hay mltiples valores de xij para los cuales se da que
f1 ( x) = f 2 ( x) = 0 = 1
Por ejemplo,
a ) x11 = 1 y x12 = 0
cumple con todas las restricciones y f1 ( x) = f 2 ( x) = 0
x =1
1
2 y x =0
2
2
x Q x Q
104
La solucin a problema LP anterior es: X 0 = 0.9214,1.0786,
0.9214, 0.0786
x11 x12 x12 x22
(NET-TE en su caso arroja los valores [1, 1, 1, 0])
x Q
lo cual nos lleva a la solucin: X 0 = 0.7436,
f 2 ( X ) = 1
0.6066, 0.8663, 0.1337 0
Por lo que, B = {2} y B ' = {1} con t2B = 0 = 1 , siendo B el conjunto que
contiene a las demandas que son bloqueadoras.
El siguiente paso es resolver el siguiente problema LP, tratando de hayar un
nuevo valor de , pero esta vez considerando las nuevas restricciones que surgen de
saber que las demandas bloqueadoras no pueden hacerse mayores a determinado valor.
Resolvemos:
max
x1 + x1
1 2
max 1 x1 + x 2
2 2
f1 ( x) = x1 + x1
1 2
1x 2
+ x 1
2 2
x1 + x2 1
1 2
1 = t2 f 2 ( x) = x2 + x2
B 1 2
x Q x2 + x2 2
1 2
x2 + x22 1
1
j
xi 0 i = 1, 2 j = 1, 2
Resolviendo, obtenemos un = 2 (NET-TE arroja el mismo valor).
105
x11 = x12 = 1
La repuesta es Si:
x12 = 1 y x22 = 0
x Q x Q
La solucin obtenida es: X = 0.9214,1.0786,
0.9214, 0.0786
x11 x12 x12 x22
(NET-TE en su caso arroja los valores [1, 1, 1, 0]).
Como podemos apreciar, X1 es igual a 2. Por lo tanto no se pudo hacer mayor que
el ltimo valor de hayado.
106
Apndice D
Software
Las acciones principales que pueden realizarse en el simulador se encuentran
distribuidas en el men Archivo, en la barra de herramientas debajo del men Archivo y
en la barra vertical a la derecha. Una vez iniciado el programa se visualizar una ventana
principal como se muestra a continuacin en la Figura D.1.
107
Guardar y Guardar como, para guardar un archivo, mediante los mtodos
guardarArch() y guardarNeverSaved() de la clase Principal.
Cerrar, para cerrar una archivo usando el mtodo cerrarArch() de la clase Principal.
Salir, para salir del programa usando el mtodo processWindowEvent(WindowEvent
e) de la clase Principal.
Nuevo:
108
Principal. En caso que este mtodo devuelva aprovado=true, se genera un nuevo
archivo. Si aprovado=false el programa no realizar accin alguna, volviendo al estado
anterior al llamado del mtodo nuevoArch() de la clase Principal.
Guardar y GuardarComo:
Cerrar:
salvar y cerrar
cerrar sin salvar
cancelar
Salir
Al seleccionar este tem, se genera el evento, presionado del botn salir, el cual es
tomado por el mtodo salirArch_actionPerformed(e) de la clase Principal, que a su vez
invoca al mtodo processWindowEvent(WindowEvent e) de la clase Principal, mtodo
109
que se encarga de cerrar el programa dando las opciones correspondientes para guardar
un archivo abierto.
BW deseado: jTextFieldNombre.getText()
Nodo Origen: comboNodoOrigen_actionPerformed(ActionEvent e)
Nodo Destino: comboNodoDestino_actionPerformed(ActionEvent e)
Afinidad: comboAfinidad_actionPerformed(ActionEvent e)
110
LINK, para crear un LINK mediante el mtodo
botonLink_actionPerformed(ActionEvent e) de la clase VentanaConf.
Eliminar, para eliminar el objeto seleccionado mediante el mtodo
botonDel_actionPerformed(ActionEvent e) de la clase VentanaConf.
Atrs/Adelante, para deshacer la ltima accin realizada mediante los mtodos
restBack() y restForw()de la clase VentanaConf.
LSP explicito, para crear un LSP manualmente mediante el mtodo
crearLspActionPerformed(ActionEvent e) de la clase VentanaConf.
CSPF, para crear un LSP con la menor mtrica posible mediante el mtodo
botonCSPFActionPerformed(ActionEvent e) de la clase VentanaConf.
Fair Network, para crear los LSPs de la matriz de trfico elegida mediante el mtodo
botonMTActionPerformed(ActionEvent e) de la clase VentanaConf.
MIRA, para crear los LSPs de la matriz de trfico elegida mediante el mtodo de
botonMIRAActionPerformed(ActionEvent e) de la clase VentanaConf.
Lista de LSPs, para mostrar la lista de LSPs creados mediante el mtodo
listaLsps_actionPerformed(ActionEvent e) de la clase VentanaConf.
Borrar LSP, para borrar el LSP seleccionado mediante el mtodo
borrarLspActionPerformed(ActionEvent e) de la clase VentanaConf.
Estadsticas, para mostrar las estadsticas de la topologa de red mediante el mtodo
botonEstadActionPerformed(ActionEvent e) de la clase VentanaConf.
Utilizacin, para mostrar en pantalla la utilizacin de los enlaces mediante el mtodo
botonUtilActionPerformed(ActionEvent e) de la clase VentanaConf.
111
Figura D.2: Diagrama de razonamiento al apretar el botn Algoritmo.
112
El mtodo jButtonAceptar_actionPerformed(ActionEvent e), crea un LSP para
cada ruta, lo agrega en el combo de LSPs y actualiza el ancho de banda reservado de cada
enlace que pertenece al camino calculado.
botonMTActionPerformed(ActionEvent e) crea una instancia de clase
FairnessNetwork.
En la clase FairnessNetwork, para cargar el archivo de la matriz de trfico se
llama al mtodo jButtonCargar_actionPerformed(ActionEvent e) el cual llama al mtodo
stringToVectors de la clase InterpreteMT. Luego se debe el elegir uno de los siguientes
algoritmos:
Fairness bsico
Fairness acotado
Fairness con mltiples caminos
Fairness con mult. caminos acotado
Si se eligi unos de los 2 primeros algoritmos se debe elegir la mtrica entre peso
o minhop.
Al marcar Elegir camino manualmente se puede elegir entre todos los caminos
con la menor mtrica posible calculados de cada ruta, con cual quedarse. Esto se hace
llamando al mtodo jCheckBox4_actionPerformed(ActionEvent e) que llena el combo
Lista de rutas con todas las rutas de la matriz de trfico. Al seleccionar una ruta de este
combo se llama al mtodo podar, luego al mtodo shortestPath de la clase Algoritmo, se
llena el combo de Caminos posibles con los caminos calculados. Al seleccionar un
camino del combo se guarda los enlaces por donde pasa el camino seleccionado en el
vector enlacesGr de la clase Caminos.
Para correr los algoritmos se debe oprimir el botn Correr que llama al mtodo
jButtonCorrer_actionPerformed(ActionEvent e). Este mtodo primero se fija que
algoritmo se selecciono, esto lo hace fijndose cual JCheckBox fue seleccionado.
Si se eligi el algoritmo1, entonces JcheckBox().isSelected=trae. Ver Figura D.3.
113
Si se eligi el algoritmo2, entonces JcheckBox1().isSelected=true . Se crea una
instancia de la clase Requerimientos, en donde se configuran la demanda mnima y la
prioridad del camino. Ver Figura D.4.
114
El mtodo calculatodos, calcula todos los caminos posibles entre el nodo origen y
el nodo destino sin considerar BW, mtrica ni afinidad.
El mtodo OptimizacionLineal, calcula el valor de la variable auxiliar tau.
El mtodo OptimizacionLinealChequeo, maximiza de a una demanda y compara
su valor con el valor de la variable auxiliar tau calculado en OptimizacionLineal.
Los mtodos OptimizacionLineal y OptimizacionLinealChequeo son los
encargados de maximizar las demandas, asignando a cada sub-demanda el ancho de
banda calculado. El ancho de banda final de cada demanda es la suma de los anchos de
banda de todas sus sub-demandas.
Si se eligi el algoritmo 4, despus de tener el ancho de banda final de cada
demanda se llama al mtodo ordenar, que ordena de mayor a menor las sub-demandas de
cada demanda segn su ancho de banda. Esto se hace para asignar a las demandas que su
ancho de banda final es mayor que su ancho de banda deseado, asignarle como ancho de
banda final el ancho de banda deseado.
El mtodo jComboBox_actionPerformed(ActionEvent e), pinta los enlaces por los
cuales pasa la ruta seleccionada en el combo Lista de rutas. Si la ruta tiene subdemandas
permite mostrar en pantalla cada una de ellas por separado.
El mtodo jButtonAceptar_actionPerformed(ActionEvent e), crea un Lsp para
cada ruta, lo agrega en el combo de LSPs y actualiza el ancho de banda reservado de cada
enlace que pertenece al camino calculado.
115
Bibliografa
[1] NetScope: Traffic Engineering for IP Networks. Paper de AT&T Labs. Autores:
Anja Feldmann, Albert Greenberg, Carsten Lund, Nick Reingold y Jennifer
Rexford. Marzo 2000.
[2] Request for Comments (RFC): 3272. Visin y Principios de la Ingeniera de
Trfico en Internet. Autores: D. Awduche, A. Chiu, A. Elwalid, I. Widjaja, X.
Xiao. Mayo 2002.
[3] MPLS: Technology and Applications. Captulo 7: Constraint-Based Routing.
Autores: Bruce Davie y Yakov Rekhter. Ao 2000.
[4] Engineering Internet QoS. Captulo 12: Future. Autores: Sanjay Jha y Mahbub
Hassan. Ao 2002.
[5] Data Networks: Routing, Security, and Performance Optimization. Captulo 8:
Quality of Service. Autor: Tony Kenyon. Ao 2002.
[6] Minimum interference routing with applications to MPLS traffic engineering.
Proceedings of International Workshop on QoS, Pennsylvania. Autores: M.
Kodialam y T.V.Lacksham. Junio 2000.
[7] A New Bandwidth Guaranteed Routing Algorithm for MPLS Traffic
Engineering. Autores: Bin Wang, Xu Su y C.L. Philip Chen. Noviembre 2002.
[8] Network Flows. Autores: R.K Ahuja, T.L Magnanti y J.B. Orlin . Prentice Hall.
Ao 1993.
[9] Multi-terminal network flows, Journal of SIAM. Autores: R.E. Gomory y T.C.
Hu. Ao 2002.
[10] Routing, Flow and Capacity Design in Communication and Computer
Networks. Captulo 8: Fair Networks. Autores: Michal Pioro y Deepankar
Medhi. Ao 2004.
116
Glosario de trminos
ARCA: Analizador de Redes de Caminos Virtuales, software que analiza el problema de
brindar garantas de Calidad de Servicio (QoS) as como realizar Ingeniera de Trfico sobre redes de
datos.
AS: Autonomous System, reas que en su conjunto modelan a una red y dentro de las cuales las
rutas son determinadas por el ruteo intradominio.
ASN.1: Abstract Syntax Notation 1, lenguaje de definicin de objetos estndar usado por SNMP.
BGP: Border Gateway Protocol, protocolo de ruteo interdominio.
CBR: Constraint Based Routing, ruteo que intenta encontrar un camino que optimice cierta
mtrica escalar y al mismo tiempo no viole un conjunto de restricciones.
CLNS: OSI Connectionless Network Service, protocolo bajo el cual opera SNMP v1.
CR-LDP: Constraint Route LDP, protocolo de distribucin de etiquetas del tipo enrutamiento
explcito que ofrece caractersticas de Ingeniera de Trfico.
CSPF: Constraint Shortest Path First, algoritmo para la computacin de caminos que toma en
cuenta al mismo tiempo un conjunto de restricciones.
DDP: AppleTalk Datagram-Delivery Protocol, protocolo bajo el cual opera SNMP v1.
DLCI: Data Link Connection Identificator, ejemplo de etiqueta o encabezado que pueden
utilizarse como etiqueta de MPLS.
FEC: Forwarding Equivalence Class, representacin de un conjunto de paquetes que comparten
los mismos requerimientos para su transporte en MPLS.
IETF: Internet Engineering Task Force, grupo de trabajo dedicado en su mayora al control del
trfico en lo que a la ingeniera de trfico se refiere.
IPX: Novell Internet Packet Exchange, protocolo bajo el cual opera SNMP v1.
IS-IS: Intermediate System to Intermediate System, protocolo de ruteo intradominio.
ISP: Internet Service Provider, proveedor de acceso a Internet.
LDP: Label Distribution Protocol, protocolo responsable de que el LSP sea establecido para que
sea funcional mediante el intercambio de etiquetas entre los nodos de la red.
LER: Label Edge Router, router encargado de la distribucin de etiquetas.
LIB: Label Information Base, tabla de conectividad contra la cual es examinada y comparada la
etiqueta MPLS al llegar del LER al LSR, determinando la accin a seguir.
LSP: Label Switched Paths, ruta que sigue un paquete entre dos nodos de la red MPLS.
LSR: Lable Switch Router, router encargado de dirigir el trfico dentro de la red MPLS.
MIB: Management Information Base, coleccin de informacin organizada jerrquicamente
donde los objetos son accedidos usando SNMP y la cual reside en el elemento de red.
MIRA: Minumum Interference Routing Algorithm, algoritmo de ruteo de caminos que
intenta minimizar la interferencia que provoca el establecimiento de un nuevo camino a potenciales
nuevos caminos que son desconocidos.
MMF: Max-Min Fairness, principio de asignacin usado para formular el esquema de asignacin
de recursos en donde se intenta asignar la mayor cantidad de recursos a cada demanda, al mismo tiempo
que se intenta mantenerlos lo ms similares posible.
MNF: Maximum Network Flow, mximo ancho de banda que puede traficar la red entre
determinado par de nodos ya sea por un nico camino o varios.
MPLS: Multi Protocol Label Switching, tecnologa de ruteo y reenvo de paquetes en redes IP
que se basa en la asignacin e intercambio de etiquetas, que permiten el establecimiento de caminos a
travs de la red.
NET-TE: Networking Traffic Engineering, nombre del software diseado en este proyecto que
hace alusin a la Ingeniera de Trfico en redes; tema principal de ste trabajo.
117
NMS: Network Management System, estacin administradora o, lo que es similar, elemento de
red que contiene un agente SNMP y pertenece a la red administrada.
QoS: Quality of Service, distintos niveles de servicio que son ofrecidos al cliente en trminos del
ancho de banda o algn otro parmetro.
RSVP-TE: Reservation Protocol with Traffic Engineering, protocolo de enrutamiento
explcito. En ste caso en particular, es una extensin de la versin original RSVP que incorpora el
respaldo para MPLS.
SDP: Shortest Distance Path, ruteo basado en preservar los recursos de la red por medio de la
seleccin de los caminos ms cortos.
SLA: Service Level Agreement, acuerdo sobre el nivel de servicio con el cliente donde se
especifican parmetros como performance, confiabilidad y seguridad.
SMI: Structure of Management Information, partes del ASN.1 que usan SNMP. Es lo que en
realidad describe la estructura de datos del SNMP.
SNMP: Simple Network Management Protocol, protocolo de la capa de aplicacin que
facilita el intercambio de informacin de gestin entre elementos de la red y es parte del stack de
protocolos TCP/IP.
SWP: Shortest Widest Path, ruteo que se basa en la bsqueda del camino con el ancho de banda
ms grande y, en caso de haber mltiples caminos, se queda con el que tiene la mnima cantidad de saltos.
TE: Traffic Engineering, disciplina que procura la optimizacin de la performance de las redes
operativas.
TED: Traffic Engineering Especialized Data Base, base de datos contenida en cada router, la
cual mantiene atributos de los enlaces de la red e informacin de la topologa.
UDP: User Datagram Protocol, protocolo de transporte que provee servicios de datagramas por
encima de IP.
VPI/VCI: Virtual Circuit Identificator used in ATM, etiqueta o encabezado que puede
utilizarse como etiqueta de MPLS en redes ATM.
WSP: Widest Shortest Path, ruteo que se basa en la bsqueda de caminos con el mnimo nmero de
saltos y, si encuentra mltiples caminos, se queda con el que tiene ancho de banda mayor.
118