Normalmente, las redes con más capacidad requerirán un mayor coste económico, por lo que se hace necesario aplicar unas técnicas de dimensionamiento.
Simplificaremos nuestro modelo estudiando la conmutación de mensajes, con lo que en principio no consideraremos la fragmentación en paquetes limitados.
Los mensajes tendrán una longitud variable: b
La longitud del mensaje la modelaremos con una variable aleatoria exponencial de parámetro ‘m ’, cuya f.d.p. es:

En nuestro modelo de conmutación de mensajes, estudiaremos únicamente los nodos de conmutación. A la red de conmutación llegarán mensajes provenientes del exterior, y los nodos de conmutación tendrén como taréa cursar esos mensajes desde el origen hasta el destino (como los equipos terminales no los consideramos, al hablar de origen y destino nos referimos al nodo de conmutación origen y al nodo de conmutación destino (último nodo antes del sistema final) respectivamente).
En general, desde el nodo origen al destino tendrá que pasar por nodos intermedios. Supondremos un encaminamiento estático. A cada nodo estarán conectados varios sistemas finales y varios nodos de conmutación. Por tanto, un nodo puede recibir mensajes por varias entradas con destino a una misma salida.
Para hacer frente a la demanda, los nodos de conmutación van a tener capacidad de almacenamiento:


Supondremos que los nodos son perfectos, es decir, no generan errores y tienen infinita capacidad de almacenamiento.
Estos nodos implementan los niveles físico, de enlace y de red, por lo que por cada mensaje tendrán que realizar un procesamiento por cada nivel.
Por cada mensaje que reenvíen-conmuten, introducirán un retardo, por lo que supondremos que K = tiempo de procesamiento = 0 al ser éste despreciable frente a los retardos de transmisión y almacenamiento.
También supondremos que los canales son perfectos de la misma forma que los nodos, es decir, que tampoco tienen errores.
Es un proceso estocástico
.
A(t) representa el número total de veces que tiene lugar un evento (número total de mensajes que se envían) del instante ‘0’ al ‘t’.
Esta distribución cumple:
Por tanto, el tiempo que pasa desde que el nodo ‘j’ envía un mensaje al nodo ‘k’ vendrá dado por una variable aleatoria exponencial de parámetro gjk

(NOTA: g kk será el tráfico entre un terminal del nodo ‘k’ y otro terminal del nodo ‘k’).
(Como podemos observar, no consideramos el coste de los nodos de conmutación).

![]()
Utilizaremos la siguiente nomenclatura asociada:
a.-canales que forman parte del camino de ‘j’ a ‘k’.
(Ejemplo:y
)
b.-denotamos todos los canales que forman parte de Pjk.
(Ejemplo:)
(NOTA: el que
o
depende del encaminamiento que hayamos establecido)
c.-denotamos a todas las parejas de nodos origen (j)–destino (k) tales que el camino de ‘j’ a ‘k’ atraviesa el canal ‘i’.

(NOTA:
es la probabilidad de que se ofrezcan mensajes del nodo ‘j’ al ‘k’).
Se perseguirá que T sea mínimo, dentro de los límites que impone el coste.


En el siguiente ejemplo, se pueden observar las diferencias entre g y l :

En redes de conectividad total, tenemos que l =g , ya que por cada mensaje que quisiera meter en la red, se generaría un solo mensaje):
(todo tráfico entre dos nodos pasará sólo por un canal)
Ejemplo:
l DC =
= g DC+gDB+gDA+gDE+gEC+gEB+gEA+gAC+gBC
(Es decir, todo el tráfico entre todo par de nodos
que pase por el canal DC, contribuirá a la tasa media de mensajes
que atraviesan el canal DC).
Trataremos en cualquier caso minimizar T.
Tipos de parámetros:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
"Si l i y el tiempo de servicio son variables aleatorias independientes Þ los servidores pueden modelarse de forma independiente":


Modelaremos cada canal como un sistema M/M/1:
Es un sistema en el que existen clientes que llegan a un servidor para obtener un determinado servicio, tras lo cual se van (Ej: gasolinera, banco, etc).
Servidor: Variable aleatoria exponencial:
Clientes: Proceso de Poisson l [clientes/segundo] (tasa a la que llegan los clientes)
Stema M/M/1:
(retardo medio desde que el cliente llega al servidor y se va).
En nuestro caso, tendremos que:

Por tanto, tendremos un sistema M/M/1 por cada canal de salida de un nodo de conmutación:

Tramas tienen
(bits),
y cada canal tiene una capacidad Ci (bits/s), por lo que en
transmitir cada trama tardaremos un tiempo de servicio
Trataremos de obtener una expresión más sencilla de T:

Por tanto, aplicando la hipótesis de Kleinrock, tendremos:


g * es el punto de saturación de la red (carga máxima de la red).
El valor que toma T en g * no significa que todos los canales tengan T = ¥ , sino que alguno está saturado, lo que nos da el retardo global T = ¥ .
T0 significa retardo medio "en vacío" (no hay tráfico en la red).
Ahora procederemos a encontrar una expresión de T0
y g * en función de los parámetros
de la red, así como a encontrar una nueva expresión del retardo
medio (T).
(ya que li es despreciable frente a m Ci)
, luego podemos
hacer g ® 0 haciendo
ljk®
0 uniformemente:
Supongamos
Por tanto:
Pero g ® 0,
por lo que:
Finalmente obtenemos:
En donde sabemos que:
, ya que según
g®
0 dividimos por igual li y l
por las iguales
disminuciones de ![]()
Si introducimos dos parámetros nuevos:
(
>1
si l >g;
=1
para redes de conectividad total)
Por lo que obtenemos la aproximación buscada para el retardo medio:
(NOTA:
y
solo dependen
del algoritmo de encaminamiento)
CALCULO DE g *
Calcular g * consiste en calcular el canal ‘i*’ que será el primero que cumpla:

Llamamos
al factor de utilización del canal ‘i’.
Por tanto, tendremos que calcular fi para todo canal ‘i’ y tomar como ‘i*’ el que tenga mayor factor de utilización (es decir, el que tenga más probabilidades de saturarse antes):
![]()
Por tanto:

Observaciones:
Conocemos los parámetros fijos:
En este caso, tenemos que d(Ci)=diCi
di es una constante distinta de un canal a otro (coste/bit)

El objetivo es minimizar la función T de tal manera que como máximo nos gastemos el presupuesto D.
T = f(C1, C2, ..., CM)
Para optimizar una función con condiciones de contorno se emplean
los multiplicadores de Lagrange.
NOTA: MULTIPLICADORES DE
LAGRANGE
T = f(C1, C2, ..., CM)
Queremos calcular los extremos cumpliendo la condición de contorno adicional:
g(C1, C2, ..., CM) = 0
Definimos una nueva función:
G(C1, C2, ..., CM, b ) = f(C1, C2, ..., CM) + b g(C1, C2, ..., CM)
siendo b el multiplicador de Lagrange.
Calculamos los extremos de la función G:
sacamos C1,
C2, ..., CM y b
Aplicando esto a nuestro problema, tenemos que:
condición de contorno:
por otro lado, f(C1, C2, ..., CM) = T
lo que implica que tendremos que minimizar la función

De estas dos ecuaciones, he de eliminar b :
sustituyo
en Ci y obtengo:
sustituyo en
T y obtengo:
(coste en exceso)
Resumiendo, llegamos a:

donde:
es el coste
de la asignación mínima.
es el coste
en exceso de la red, es decir, lo que me gasto de más a partir
del coste de la asignación mínima.
es el incremento
de capacidad, que depende del coste en exceso de la red, y que repartode
forma proporcional a la reiz cuadrada del trafico cursado por cada canal
en todos los canales de la red.

Es una particularización del caso anterior (costes lineales).
En este caso, tenemos que di = d = constante para todos los canales.

es decir, el coste de un canal depende exclusivamente de la capacidad de dicho canal.
Sustituyendo, llegamos a:
donde
es el factor
de utilización de la red (
)
7.5 Topologías para disminuir T
Sabemos que los parámetros que influyen en la disminución de T son los siguientes:

Por tanto, veamos que topologías minimizan uno u otro parámetro para obtener una reducción en T:
1.- TOPOLOGÍA MALLA (red de conectividad total) (
=1)
En esta topología, todos los nodos están unidos con todos,
por lo que tenemos que
Problemas: Incremento M y el coste de la red.
2.- TOPOLOGÍA ANILLO (N¯¯ )
Tenemos (
) y
(N=M):
Problemas: Incremento de ![]()
3.- TOPOLOGÍA ESTRELLA
Es un compromiso entre las dos anteriores, consiguiendo
Se trata de conseguir que el tráfico periférico sea mínimo,
para así conseguir que
:
Problemas: Si el nodo central cae, no funcionaría la red.
7.6 Consideraciones de casos reales
Conocemos los parámetros fijos:
De los dos algoritmos de asignación de flujos que veremos, uno
de ellos utiliza una única ruta para encaminar todos los mensajes
con origen y destino dados (algoritmo de rutas fijas); este camino será
el óptimo desde el punto de vista de la sensibilidad, concepto que
definiremos en el siguiente apartado. El otro algoritmo que veremos utiliza,
en general, y suponiendo que existan, varios caminos entre un nodo origen
y otro destino dados (algoritmo de Gerla); esta solución es, en
general, mejor que la anterior, y conduce a un balanceo de carga,
esto es, un reparto del tráfico entre todos los caminos posibles,
lo que permite, dada su mayor flexibilidad, alcanzar una solución
óptima al problema.
7.7.1 Concepto de longitud de un canal
Los algoritmos de asignación de flujos que estudiaremos, y, en general, otros algoritmos para encontrar las mejores rutas entre dos nodos, hacen uso del concepto de longitud de un canal, que no es sino una métrica asociada a los canales que mide de algún modo el rendimiento de los mismos. También se le denomina distancia o coste (concepto más general que el coste meramente económico que vimos al definir el modelo de red de conmutación de paquetes). Estos términos no deben engañarnos, puesto que, en principio, cualquier función que mida comparativamente las prestaciones de los canales puede tomarse como longitud de un canal; utilizaremos una u otra dependiendo del objetivo perseguido. Incluso pueden manejarse varias métricas al mismo tiempo, para satisfacer las necesidades de un amplio abanico de usuarios.
La mejor ruta (o camino) entre dos nodos respecto de una métrica será aquélla para la que la suma de las longitudes de los canales que la forman sea mínima. También la llamaremos ruta más corta. Por ejemplo, es muy común en algoritmos de encaminamiento la métrica asociada al número de saltos que dan los mensajes desde el origen hasta el destino. Atendiendo a este criterio, cada canal tendrá longitud unidad y la ruta más corta será la que atraviese menor número de canales.
Si nuestro objetivo es minimizar el retardo medio de tránsito, parece lógico utilizar una métrica que prime aquellos enlaces con retardo poco sensible al aumento de flujo a su través.
Esto hacen los algoritmos que veremos: utilizan como longitud de un
canal una función (li) que mide la sensibilidad
del retardo medio de tránsito al aumento en el flujo en dicho canal,
esto es, el cociente entre el incremento en el retardo y el incremento
en el flujo, cuando estos incrementos son infinitesimales. Matemáticamente,
podemos escribir:
![]() |
(2.52) |
En este caso, la mejor ruta (
)
—o mejor camino— entre dos nodos será la que
posea el menor
![]() |
(2.53) |
7.7.2 Algoritmo de Gerla o de desviación de flujos
Este algoritmo consigue la minimización del retardo medio de tránsito desviando tráfico hacia las rutas más cortas respecto de la sensibilidad (li).
Para aplicar el algoritmo de Gerla, se parte de un vector de flujos inicial (en bps y no mensajes/s) que cumpla los siguientes requisitos:
).![]() |
(2.54) |
Por conveniencia de notación, simbolizaremos a este vector inicial
mediante:
![]() |
(2.55) |
Análogamente, representaremos el vector de flujos hallado en
la iteración n-ésima por medio de
![]() |
(2.56) |
Sin más preámbulos, el algoritmo consta de los siguientes pasos:
| Paso 1 | Tomar n = 0. |
|---|---|
| Paso 2 | Para cada i = 1,..., M calcular: |
![]() |
(2.57) |
| Paso 3 | Calcular la tasa incremental de coste
para el vector de flujo ,
que representaremos como ,
definida mediante la siguiente expresión: |
|---|
![]() |
(2.58) |
| Paso 4 | Calcular todas las rutas más cortas entre
cada par de nodos, utilizando como métrica la sensibilidad
de los canales (valores calculados en el paso 2).
Calcular el vector de flujo resultante de enviar los mensajes por las rutas más cortas (nótese que sólo hay una mejor ruta por cada par de nodos, de modo que los mensajes entre cada par de nodos viajan por un único camino). Simbolizaremos este vector mediante: |
|---|
![]() |
(2.59) |
| Paso 5 | Calcular la tasa incremental de coste para el
flujo , que representaremos
como bn, y cuya expresión es |
|---|
![]() |
(2.60) |
| Paso 6 | (Condición de parada del algoritmo)
Si ,
donde es
un parámetro de tolerancia escogido adecuadamente, entonces PARAR;
en este caso, el vector
es la solución buscada.
Si no, ir al paso 7. |
|---|
| Paso 7 | Encontrar el valor de
en el rango
tal que el vector de flujo
minimiza T. Simbolizaremos este valor por medio de a. La
descripción de algoritmos que permitan encontrar a cae fuera
del objetivo de estos apuntes. Un posible algoritmo de este tipo es una
búsqueda
de Fibonacci. |
|---|
| Paso 8 | (Desviación de flujo)
Sea .
Como resultado de esta asignación, parte del flujo en cada canal
es desviado por las rutas más cortas con el mismo origen y destino,
resultando un retardo medio de tránsito lógicamente menor. |
|---|
| Paso 9 | Tomar n=n+1.
Ir al paso 2. |
|---|
El algoritmo de Gerla converge hacia la solución mejor, u óptima.
Los algoritmos de encaminamiento que se utilizan en las redes reales tratan
de aproximarse lo más posible a esta solución, pero nunca
puede alcanzarse porque los parámetros de la red, y en concreto
,
varían continuamente de forma tan rápida que ningún
algoritmo puede seguir estas variaciones y adaptarse a ellas en tiempo
cero. Además, téngase en cuenta que ni siquiera el algoritmo
de Gerla da una solución exacta, sino que interviene un parámetro
de tolerancia que decide cuándo se para el algoritmo.
7.7.3 Algoritmo de rutas fijas
Es un algoritmo subóptimo, pero más simple que el de Gerla. Este algoritmo se ahorra el paso de decidir cuánto tráfico se desvía hacia rutas más cortas; por el contrario, desvía todo el flujo en un canal por otra ruta más corta o no desvía nada. La aproximación se basa en que los algoritmos de encaminamiento fijo presentan un número medio de saltos bajo y alta concentración del tráfico, lo cual favorece T bajos.
Este algoritmo sólo es efectivo para redes grandes y balanceadas.
Una red se dice que es grande si tiene un gran número de
nodos; se dice que es balanceada si los tráficos
ofrecidos a la red (
)
no difieren unos de otros en gran medida. El lector interesado puede encontrar
en el apéndice de este tema una definición más rigorosa
y matemática de redes
grandes y balanceadas.
El algoritmo parte, al igual que el algoritmo de Gerla, de un vector
de flujo [
] que cumple
los siguientes requisitos:
).![]() |
(2.61) |
De igual forma, simbolizaremos por
al vector de flujo obtenido en la iteración n-ésima
(admitiremos que
se genera en la iteración 0).
El algoritmo consta de los siguientes pasos:
| Paso 1 | Tomar n=0. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Paso 2 | Partiendo del vector ,
encontrar las rutas más cortas respecto de la métrica li
—ecuación (2.56)—. |
||||||||
| Paso 3 | Sea .
Para cada tráfico ofrecido : |
||||||||
|
|||||||||
| Paso 4 | Si ,
PARAR; el algoritmo no puede mejorar el vector de flujo.
De lo contrario, hacer ,
tomar n = n + 1, e ir al paso 2. |
Este algoritmo converge en un número finito de pasos, porque
el número de posibles rutas fijas es finito.
| Kleinrock, L., Queueing Systems, Volumen 2: Computer Applications, J. Wiley and Sons, 1976. | |
| Bertsekas, D. y Gallager, R., Data Networks, 2a edición, Prentice-Hall, 1992. |
Vuelta al Indice de Apuntes