Professional Documents
Culture Documents
de Banda Ancha
Karthik Lakshminarayanan
University of California Berkeley
Venkata N. Padmananbhan
Microsoft Research
Jitendra Padhye
Microsoft Research
Gabriel Firme
Ing. Mateo Ruetalo
Consideraciones preliminares
Existen muchos trabajos sobre técnicas para estimar la capacidad y el ancho de banda
disponible sobre una red basadas en medidas punto a punto. Generalmente los enfoques se
basan en configuraciones modeladas como un enlace punto a punto con un ancho de banda
bien definido y un tráfico de paquetes tipo FIFO.
En el siguiente trabajo se muestra que redes de banda ancha como las de cable módem
y redes inalámbricas basadas en el estándar 802.11 no cumplen con este modelo por varios
motivos:
• el camino cursado por los paquetes puede utilizar mecanismos de administración de
velocidad de trasmisión como “token bucket”,
• puede traficar paquetes de una forma diferente a una cola FIFO,
• puede soportar múltiples velocidades diferentes,
etc.
INTRODUCCIÓN
Trabajos previos han asumido un modelo simple de enlaces en una red; “el modelo
tradicional”. Este modelo le asigna al enlace comprometido (el de menor ancho de banda
disponible) de un camino un valor bien defino de ancho de banda que determina la velocidad de
transmisión por el enlace. Este se asume punto a punto con modelo de tratamiento de paquetes
FIFO, incluyendo los paquetes de medida y el “cross-traffic”.
El “cross-traffic” se asume con un modelo de tráfico de tipo fluido.
• El enlace no cuenta con un Ancho de Banda fijo o bien definido, por ejemplo debido a la
regulación de velocidad “token bucket” utilizada en la tecnología cable módem o
esquemas de múltiple velocidad dinámica utilizada en redes 802.11. Es necesario
distinguir entre el Ancho de Banda “bruto” y el ancho de banda visto por un flujo
continuo de paquetes.
• El modelo de tratamiento de paquetes no tiene por que ser FIFO debido al protocolo de
control de acceso al medio utilizado en las redes 802.11 o cable módem.
• Los enlaces de múltiples velocidades 802.11 pueden interferir y crear grandes picos de
“cross traffic” que resultan en desviaciones significativas del modelado del “cross traffic”
como un fluido.
Métodos de medida
Las herramientas basadas en este método como el Pathload, PTR, Pathchirp y TOPP se
basan en las siguientes observaciones:
• un tren de paquete de prueba enviados a una velocidad menor que el ancho de banda
disponible debería ser recibido a la misma velocidad enviada (en promedio)
• sin embargo si la velocidad a la cual fue enviado excede el ancho de banda disponible
la velocidad de recepción es menor que la de trasmisión y los paquetes de prueba van
a tender a encolarse provocando retardo en ese sentido (OWD).
Por lo tanto el ancho de banda disponible puede ser estimado mediante la observación
de la velocidad de trasmisión en la cual sucede una transición entre estos dos
comportamientos.
En este trabajo se tomó la herramienta Pathload como representativa de este método.
Figura 1
Herramientas basadas en este método como Spruce, Delphi e IGI envían pares de
paquetes de prueba de igual tamaño separados acorde al tiempo de transmisión de las pruebas
sobre el cuello de botella del enlace.
Si no se inserta “cross-traffic” entre los paquetes de prueba el espacio entre los paquetes
de prueba se mantiene hasta el destino. Por otro lado, el incremento del espacio entre paquetes
de prueba se utiliza para estimar el volumen del “cross-traffic” el cual luego es restado de la
capacidad estimada para obtener el valor del ancho de banda disponible estimado.
A diferencia de PRM, el PGM asume que el enlace comprometido es el enlace mas
estrecho del camino y es susceptible a retardos por encolamiento en los enlaces no
comprometidos.
En este trabajo se tomó la herramienta Spruce como representativa de este método.
Figura 2
Se supone que un enlace tiene un ancho de banda bien definido que indica la velocidad a
la cual los bits pueden ser enviados a través de él. Sin embargo, esta suposición no es valida
cuando se utiliza un plan de regulación de tráfico.
Típicamente, los ISPs dividen la subida al enlace de acceso físico en pequeñas ranuras
que reparten en lotes a sus clientes.
Por ejemplo, el ancho de banda total de una red de cable módem típica en USA tiene 27
Mbps aguas abajo y 2.5 Mbps aguas arriba (por canal). Sin embargo, el ancho de banda
comprometido a cada cliente es típicamente un orden de magnitud más pequeño, en ambas
direcciones.
Para repartir el ancho de banda el ISP utiliza un plan de regulación de tráfico en su
equipo terminal. El mecanismo usado normalmente en las redes cable módem es el método
“token bucket” el cual especifica la velocidad de acceso media a la red en bits por segundo y el
tamaño del pico máximo en bytes.
Aunque la velocidad lograda por una transferencia prolongada está acotada por la
velocidad media, es posible enviar un flujo datos del tamaño del “token bucket a una velocidad
igual al ancho de banda del enlace.
Por lo tanto es necesario hacer una distinción entre el ancho de banda de enlace y el
máximo ancho de banda posible para una transferencia prolongada. Es posible que pares de
paquetes o pequeños trenes de paquetes pueden medir el ancho de banda total del enlace.
El modelo tradicional asume que todos los paquetes que arriban a un enlace son
despachados en orden “fifo”. Por lo tanto se asume que un paquete de prueba experimenta un
retardo de encolamiento proporcional al volumen total en bytes del “cross-traffic” que lo precede
en la cola. No asume como crítico el tamaño de los paquetes del “cross-traffic”.
Sin embargo en configuraciones de redes de banda ancha el modelo basado en enlaces
FIFO falla. En redes inalámbricas basadas en el estándar 802.11 las estaciones compiten por el
acceso al canal de una forma distribuida.
En el caso de una red cable-módem, el acceso a la red desde el usuario es administrado
por el CMTS quien periódicamente envía un mensaje de control indicando los time-slots
asignados a las distintas estaciones e invitando a las estaciones a competir por los time-slots
libres.
Por lo tanto en ambos casos los paquetes encolados en las distintas estaciones podrían
no ser enviados en orden FIFO.
Una consecuencia del esquema no-fifo es que puede llegar a ser muy complicado en
situaciones de mucha carga asegurar que un par de paquetes atraviesan la red sin que se les
intercale trafico. Especialmente cuando el protocolo de acceso al medio es equitativo como
cuando se utiliza encolamiento explicito (acceso desde el usuario en las redes cable) o un
mecanismo distribuido (redes 802.11). Lo que sucede es que cuando una estación deja de
trasmitir una trama pasa a tener una baja probabilidad de acceder al medio en la siguiente
contienda comparada con las restantes estaciones.
Esta dificultad de enviar pares de paquetes consecutivos con separación fija impide la
operación de las técnicas de estimación de capacidad.
Otra consecuencia del modelo no-fifo es que un nuevo paquete de prueba encolado en
una de las estaciones puede llegar a ser trasmitido antes que un viejo paquete de “cross-traffic”
que espera en otra estación. Por lo que el paquete de prueba no experimenta el retardo
proporcional al volumen total de “cross-traffic” existente en la red, produce una subestimación
del trafico cursado sobre la red y esto genera una subestimación del ancho de banda
disponible.
La situación es complicada por el hecho de que los esquemas donde los equipos
compiten por el acceso al medio se basan en tramas independientemente del tamaño de estas.
Al competir flujos con tamaños de paquetes diferentes tienden a compartir el ancho de banda
proporcionalmente al tamaño de los mismos.
Por lo tanto la estimación producida por la técnica de estimación de ancho de banda
disponible va a depender del tamaño relativo del tráfico de prueba y del cross-traffic.
Figura 3
Enlaces multi-velocidades
Los enlaces pueden operar o variar entre diferentes velocidades. Por ejemplo el estándar
802.11b soporta adaptación de velocidad dinámica, es decir que un terminal puede cambiar su
velocidad entre 1, 2, 5.5 y 11 Mbps mediante el cambio de la modulación utilizada dependiendo
de la calidad del canal utilizado, la cual puede variar dinámicamente dependiendo de la
movilidad del usuario, cambios en el entorno, etc.
De la misma forma el estándar 802.11a soporta velocidades variables entre 6 y 54 Mbps.
Por lo tanto el ancho de banda total del enlace entre una estación inalámbrica y un “Access-
point” puede variar abruptamente.
Aún si la velocidad del enlace para cada estación no cambia frecuentemente, estaciones
diferentes en la misma región pueden estar operando a diferentes velocidades compartiendo el
mismo espectro inalámbrico. Por lo tanto el impacto que un volumen dado de cross-traffic a una
estación genera sobre el ancho de banda disponible de otra estación depende de la velocidad a
la que está trabajando el primero.
Por ejemplo, considerar dos terminales asociados a un mismo Access point, uno de ellos
trata de estimar el ancho de banda disponible y puede comunicarse con el AP a 54 Mbps,
mientras que el otro cliente que es el que genera el cross-traffic puede comunicarse con el
Access-point sólo a 6 Mbps (esto puede deberse a la distancia a la que se encuentra del
Access-point).
Dado que el estándar 802.11 maneja la contienda entre terminales por paquetes, un solo
paquete de cross-traffic enviado a 6 Mbps puede ser visto como un gran “burst” desde el otro
usuario.
Figura 4
Esto influye en la estimación del ancho de banda disponible en ambas técnicas PRM y
PGM.
Estas técnicas trabajan mejor en los casos en que el “cross-traffic” se modela como un
fluido (asumiendo tamaños de paquetes infinitesimales) es decir que los paquetes de cross-
traffic y los de prueba se entremezclan uniformemente .
Los picos grandes de cross-traffic complican la detección del crecimiento de velocidad
cuando la velocidad de prueba sobrepasa el ancho de banda disponible. Esto afecta mas a las
técnicas basadas en PRM como el Pathload.
Por otro lado la ausencia de burst (picos) complica a las técnicas PGM como Spruce para
obtener una muestra exacta de cross-traffic.
Figura 5
PROBEGAP
Una vez discutido los problemas que las configuraciones no-fifo y las contiendas de
acceso al medio por tramas causan a las técnicas existentes en el siguiente punto se presenta
ProbeGap una nueva herramienta para la estimación del Ancho de Banda disponible que alivia
estos problemas.
La idea es estima la fracción de tiempo que el enlace está libre mediante el sondeo de
huecos en los períodos de enlace ocupado y luego al multiplicarla por la capacidad se obtiene
una estimación del Ancho de Banda disponible.
ProbeGap estima la fracción de tiempo libre reuniendo muestras de retardo del enlace en
un sentido OWD (One-Way delay).
El trasmisor envía series de paquetes de prueba espaciados según la distribución de
poisson, cada uno de 20 bytes de “payload” conteniendo una marca de tiempo local.
El receptor sustrae la marca de tiempo del trasmisor para calcular el OWD. Luego
normaliza el OWD a partir del valor menor de las muestras, por lo tanto el valor menor del OWD
normalizado es cero.
Los relojes del trasmisor y receptor no necesitan estar sincronizados solo se necesitan
que mantengan un offset constante.
Si al probar el enlace se encuentra libre se obtiene un OWD bajo. Por otro lado si es
necesario que espere ya que existen paquetes a ser trasmitidos o encolamientos el OWD es
mayor.
El vértice de la curva se identifica de la siguiente forma: para cada punto de la curva CDF
se calcula el valor “local” de la pendiente entre el punto anterior y el siguiente. El valor local de
la pendiente se calcula mediante una regresión lineal de todos los puntos dentro de 0.05 del
punto de interés a lo largo del eje CDF. Se toma 0.05 para ser lo suficientemente pequeño
como para reflejar el valor local de la pendiente y lo suficientemente grande como para evitar
aberraciones producidas por ruido en los datos.
El punto con el mayor valor de la pendiente entre el punto anterior y el siguiente se
identifica como el codo de la curva CDF, la relación mínima tiene que ser 2. Si no se logra
ubicar dicho punto se puede concluir que el canal está 100% ocupado.
Como una refinación adicional para minimizar el efecto del ruido en las medidas, se
consideraron solo los puntos con un OWD normalizado menor a 100 microsegundos como
candidatos a ser el punto de quiebre. Estos valores no excluyen el verdadero punto de quiebre
que típicamente tiene un valor normalizado del OWD mucho menor que 100 microsegundos.
Aunque esta heurística es intuitiva y funciona bien en los datos experimentales obtenidos
en el presente trabajo no es muy satisfactorio el haber utilizado constantes arbitrarias.
En el presente trabajo se busca un método mas robusto basado en la estimación de
parámetros basados en el modelo OWD
ProbeGap no es totalmente inmune a los efectos no-fifo dado que existe una pequeña
chance de que un paquete de prueba arribe durante un periodo ocioso entre sucesivos “cross-
traffic” y logre tomar el canal por lo tanto sufrirá un pequeño OWD.
Este problema se puede reducir haciendo que la herramienta ProbeGap envíe grupos de
paquetes de prueba y tomar el máximo OWD de cada grupo como la muestra correcta. Si el
canal está libre en realidad, la medida del OWD en realidad será baja. Pero si el canal está
ocupado es improbable que todas las medidas de un grupo de pruebas den un bajo OWD,
probablemente se medirá un OWD alto.
Como Spruce pero a diferencia de Pathload, ProbeGap es susceptible a variaciones en
los retardos debidas a enlaces diferentes del cuello de botella, lo cual puede ser un a
complicación, por ejemplo en enlaces con múltiples tramos congestionados. Por lo tanto no se
puede asumir que ProbeGap es la alternativa a las herramientas existentes en dichas
configuraciones.
Por otro lado en este trabajo se analiza enlaces de banda ancha aislados. Se asume que
la estimación del ancho de banda disponible incluso en dichas configuraciones locales con un
enlace comprometido dominante son de interés.
Por lo tanto no se propone a ProbeGap como una alternativa para tales configuraciones.
Sin embargo, el trabajo se enfoca en la banda ancha aislada. El ancho de banda disponible en
tales coconfiguraciones de área local con un enlace dominante es del interés.
Herramientas
Para estimación de capacidad, se utilizó Pathrate, la cual utiliza gran parte de la teoría
desarrollada hasta ahora sobre estimación de capacidad a partir de generación de pares de
paquetes y trenes de paquetes.
Para la estimación del ancho de banda disponible se utilizó Pathload (herramienta
basada en PRM) y Spruce (herramienta basada en PGM). También se utilizó la herramienta
propuesta en este trabajo ProbeGap para la estimación del ancho de banda disponible.
La herramienta Spruce se configuró para enviar 1000 muestras.
Se utilizó un generador de trafico UDP simple para generar “cross traffic” con una
distribución de Poisson a distintas velocidades y distintos tamaños de paquetes (la distribución
de Poisson para el espaciado entre paquetes asegura que el cross-traffic contenga mas picos
que un trafico CBR).
RESULTADOS EXPERIMENTALES
La evaluación por medio de un “token bucket” se hizo sobre una red de cable-módem
mientras que los experimentos restantes en 802.11.
Los autores corrieron Pathrate con varios niveles del cross-traffic variándolo de 0 a 6
Mbps. Cuando la tasa de cross-traffic era de 6 Mbps, Pathrate no pudo terminar debido a que
las pérdidas de paquetes de pruebas fueron demasiadas. En los otros casos, Pathrate devolvió
ambas estimaciones la mayor y la menor de 26 Mbps, que está cercan de la tasa bruta de 27
Mbps.. Básicamente, el token bucket es suficientemente grande (9600 bytes) como para
permitir suficientes paquetes de prueba juntos (back to back) -a pesar del cross-traffic- de modo
de medir la capacidad. Mientras que uno pueda sostener que la tasa bruta del canal es la
capacidad verdadera entonces la estimación de Pathrate será correcta. Sin embargo esta
estimación no es muy usada debido a que esta tasa es inasequible de un modo sostenido, aún
en la ausencia de cross-traffic.
Cross-traffic total 0 3 4
Estimación 5.2 – 5.4 5.1 – 5.4 5.3 – 5.5
Figura 10 - muestra la tasa sencilla: Estimación del ancho de banda disponible bajo varias cargas. Capacidad
nominal del canal 6 Mbps.
Impacto del Control de Acceso al Medio basado en contienda del standard 802.11
Para los experimentos realizados en esta sección, todas las tarjetas de red inalámbricas
se configuraron para trabajar a 6 Mbps.
Los autores corrieron Pathrate entre las maquinas M1 y M2, mientras que las máquinas
M3-M6 se utilizaron para generar cross-traffic a varias velocidades y tamaños de paquetes.
En todas las corridas, Pathrate produjo una estimación consistente entre 5.1 y 5.5 Mbps.
Esta estimación es cercana al máximo valor de tráfico UDP que soporta el canal, como se ve en
la figura 8.
Para comprender porque los resultados de Pathrate no son afectados por el método de
acceso al medio por contienda los autores analizaron los logs del Pathrate. Encontraron que
Pathrate siempre era capaz de encontrar un modo entre 5.1- 5.3 Mbps, indicando que al menos
ciertas paquetes de prueba salen uno tras del otro. Esto es porque aunque el procedimiento de
contienda del estándar 802.11's tiene una predisposición contra el equipo que acaba de
trasmitir un paquete, existe la posibilidad de que el mismo terminal gane nuevamente la
contienda especialmente cuando la cantidad de equipos involucrados en la contención es
pequeña como en la experiencia.
El modo ubicado entre los 5.1 y 5.3 Mbps no es el modo dominante especialmente bajo un
“cross traffic” pesado. Sin embargo la medida de la dispersión asintótica usualmente genera un
modo que incluye por lo menos parte del modo de baja velocidad.
Así, la herramienta siempre escoge el modo más alto, resultando en la estimación de
capacidad correcta.
En este punto los autores utilizaron las siguientes herramientas de estimación de ancho
de banda disponible; Pathload, Spruce y ProbeGap.
Estas herramientas siempre se corrieron entre M1 y M2, mientras que se generó “cross-
traffic” entre M3 y M4.
La tasa del cross-traffic se varió entre 1 y 4 Mbps en pasos de 1 Mbps. Se utilizaron dos
tamaños de paquetes para el cross traffic: 300 y 1472 bytes.
Como se ve en la figura 8 el canal saturó a 3.5 Mbps para un tamaño de paquete de 300
bytes y a 5.1 Mbps para un tamaño de paquete de 1472 bytes.
Así, por ejemplo, una carga de “cross-traffic” ofrecido de 3 Mbps usando paquetes de 300
bytes constituye una carga pesada mientras que la misma tasa con paquetes de 1472 bytes
constituye una carga moderada.
Dado que Pathload usa paquete de 300 bytes los autores compararon sus estimaciones
con las medidas de ancho de banda disponible para paquetes de 300 bytes.
También, como Spruce usa paquetes de prueba de 1472 byte, los autores especificaron
la capacidad con el valor de 5.1 Mbps y sus estimaciones solo se compararon con la medidas
de ancho de banda disponible para paquetes de 1472 bytes.
En cambio, compararon las estimaciones de ProbeGap con el ancho de banda disponible
medido para ambos tamaños de paquete, por razones discutidas mas adelante.
Los resultados se muestran en la figura 10.
Pathload: Según los autores bajo condiciones de carga baja, la estimación de Pathload
coincide bien con la medida del ancho de banda disponible para paquetes de 300 bytes , sin
tener en cuenta el tamaño del paquete de “cross-traffic”.
Por otra parte, Pathload sobreestima el ancho de banda disponible cuando el cross-traffic
es alto porque es una herramienta basada del PRM.
Con un tipo de control de acceso al medio por contienda, si un equipo trasmisor está
enviando paquetes a una tasa mayor de la que le corresponde, y un segundo equipo
lentamente comienza a incrementar los paquetes trasmitidos, entonces el método de control de
acceso al medio empujará al primer equipo a trasmitir a la velocidad que le corresponde.
Mientras tanto la velocidad de salida de las pruebas utilizando métodos PRM siguen al
valor de la velocidad de entrada y no existe incremento en el OWD de los paquetes de prueba.
El resultado neto es que la estimación tiende al valor del ancho de banda
correspondiente mas que al ancho de banda disponible.
Figura 13
En esta sección, se presentan resultados cuantitativos que muestran el impacto sobre las
estimaciones (de todas las herramientas) que produce el manejo de múltiples velocidades en
entornos 802.11.
Pathload:
Los autores consideraron un cross-traffic de 2 Mbps generado con paquetes de 300
bytes.
La estimación generada por Pathload fue comparable con la medida del ancho de banda
disponible para paquetes de 300 bytes.
Sin embargo para un cross-traffic de 4 Mbps aunque el tamaño de paquete fue de 300
bytes Pathload sobreestimo significativamente el ancho de banda disponible.
Figura 15 - muestra una secuencia de OWD (One Way Delay) para una
ráfaga de Pathload a una velocidad de 9.79 Mbps enviada en un canal de
54 Mbps, con un cross-traffic de 2 Mbps de paquetes de 1472 bytes en un
canal de 6 Mbps.
Simulaciones
Sobre dicha topología se crearon tres fuentes generadoras de trafico constante CBR sobre UDP
de tamaño de paquete y tiempo entre paquetes variable.
Para distintas simulaciones se configuro el archivo monografia.tcl acorde a las necesidades.
Fuentes de trafico:
CBR0: (fuente del tipo CBR_PP) fuente que genera trenes de n paquetes a una velocidad
configurada por usuario, en nuestro caso utilizamos trenes de 3 paquetes de diferentes tamaño
a a diferentes velocidades.
Esta fuente genera paquetes desde el nodo inalambrico node_(0) (Nodo 3 en el NAM) hacia el
nodo fijo Wo.
CBR1 y CBR2 son fuentes que generan un flujo continuo de paquetes de tamaño configurado
por usuario y tiempo entre paquetes tambien configurado por usuario (indirectamente se
configura el bit rate de la fuente).
Estas generan trafico desde los nodos node_(1) y node_(2)
OBJETIVO DE LA SIMULACION
Utilizar el simulador NS-2 para “verificar” el metodo de calculo de ancho de banda disponible de
un canal.
Primer caso canal sin Cross Traffic => AdeB disponible = AdeB del Cuello de Botella
Se configuró lo siguiene:
El proceso “record” del scripr monografia.tcl paso a paso va calculando el tiempo entre
paquetes recibidos en la fuente destino (W0).
Dichos resultados se grafican y se obtiene “aproximadamente” el valor medio del retardo entre
paquetes en el destino a partir de la grafica del Xgraph.
Datos obtenidos:
Resultados:
Se verifica que para bits rates mayores a los 120 – 130 Kbps el tiempo entre llegada de
paquetes no disminuye, es decir llegamos a saturar el cuello de botela, los paquetes se
comienzan a bufferear en el enlace de menor ancho de banda.
En el siguiente paso se mejora el metodo de estimación utilizando una fuente que genera un
tren de tres paquetes en lugar de un tren continuo de paquetes (siempre en ausencia de cross
traffic):
Se configuró lo siguiene:
El proceso “record” del script monografia.tcl paso a paso va calculando el tiempo entre
paquetes recibidos en la fuente destino (W0) en este caso se utilizó 1 mseg..
Dichos resultados se grafican y se obtiene “aproximadamente” el valor medio del retardo entre
los paquetes del tren y entre el ultimo y el primer paquete del tren siguiente.
Tabla:
Resultados:
Se verifica que para bits rates mayores a los 120 – 130 Kbps la cantidad de paquetes por
segundo recibido no crece, es decir llegamos a saturar el cuello de botela, los paquetes se
comienzan a bufferear en el enlace de menor ancho de banda.
Cabe aclarar que el tiempo entre paquetes del tren es siempre 32,5 ms ya que es el valor de
trasmitir un paquete de 520 bytes por un enlace de 128 Kbps (520 bytes =500payload + 20
bytes overhead).
Segundo caso canal con Cross Traffic => se “verificó” la incidencia del cross trffic en la
estimación del AdeB disponible
Se configuró lo siguiene:
El proceso “record” del script monografia.tcl paso a paso va calculando el tiempo entre
paquetes recibidos desde las dos fuentes en el destino (W0).
Dichos resultados se grafican y se obtiene “aproximadamente” el valor medio del retardo entre
paquetes en el destino a partir de la grafica del .
Datos obtenidos:
Resultados:
Se verifica la incidencia del efecto combinado del cross traffic y del metodo de acceso al medio
de las fuentes que generan el trafico de medida y del cross traffic.
En las siguientes figras se muestran los resultados graficos de las simulaciones que se
incluyeron en la tabla anterior:
Grafico del deltaT entre paquetes recibidos
generando un CBR de 10Kbps en
presencia de un CBR de Cross Traffic de
64 Kbps (cuello de botella de 128 Kbps).
#
======================================================================
set ns_ [new Simulator]
#
======================================================================
# Configuración de la Jerarquía de Ruteo
#
======================================================================
# Definición de Archivos donde se registran datos
set tracefd [open monografia-out.tr w]
set namtrace [open monografia-out.nam w]
$ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)
#
======================================================================
# Definición de la Topología
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
create-god [expr $opt(nn) + $Num_Radiobases]
# Creación del Nodo Radiobase Gateway entre nodos cableados y nodos inalambricos
set temp {1.0.0 1.0.1 1.0.2 1.0.3}
set BS(0) [$ns_ node [lindex $temp 0]]
$BS(0) random-motion 0 ;# Deshabilito movimiento
#
======================================================================
set ns_ [new Simulator]
#
======================================================================
# Configuración de la Jerarquía de Ruteo
#
======================================================================
# Definición de Archivos donde se registran datos
set tracefd [open monografia-out.tr w]
set namtrace [open monografia-out.nam w]
$ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $opt(x) $opt(y)
#
======================================================================
# Definición de la Topología
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
create-god [expr $opt(nn) + $Num_Radiobases]
# Definición de Nodos Cableados
set temp {0.0.0 0.1.0} ;
for {set i 0} {$i < $Num_Nodos_Alamb} {incr i} {
set W($i) [$ns_ node [lindex $temp $i]]
}
# Creación del Nodo Radiobase Gateway entre nodos cableados y nodos inalambricos
set temp {1.0.0 1.0.1 1.0.2 1.0.3}
set BS(0) [$ns_ node [lindex $temp 0]]
$BS(0) random-motion 0 ;# Deshabilito movimiento
#
======================================================================
# Creo Agentes de generación y recepción de trafico
# Creo una fuente de Trafico Constante CBR 50 Kbps y lo asocio a udp1 NAM=Verde
set cbr1 [new Application/Traffic/CBR]
$cbr1 set interval_ 0.032
$cbr1 set packetSize_ 200
$cbr1 attach-agent $udp1
# Creo una fuente de Trafico Constante CBR 50 Kbps y lo asocio a udp2 NAM=Azul
set cbr2 [new Application/Traffic/CBR]
$cbr2 set interval_ 0.032
$cbr2 set packetSize_ 200
$cbr2 attach-agent $udp2
#Crea 3 agentes sinks necesarios para medir trafico y los asocia al nodo final W(0)
set sink0 [new Agent/LossMonitor]
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]
#
======================================================================
# Defino un procedimiento que periodocamente que graba el Delta T entre paquetes
recibidos
# y se graban en los archivos deltaT0 deltaT1 deltaT2
proc record {} {
global sink0 sink1 sink2 paqant0 paqant1 paqant2 deltaT0 deltaT1 deltaT2
set ns_ [Simulator instance]
set timevar 0.001
#
======================================================================
# Definición de ubicación "inicial" de nodos inalambricos en NAM
# Nodo 3 NAM
$node_(0) set X_ 20.0
$node_(0) set Y_ 22.0
$node_(0) set Z_ 0.0
$ns_ initial_node_pos $node_(0) 10
# Nodo 4 NAM
$node_(1) set X_ 25.0
$node_(1) set Y_ 2.0
$node_(1) set Z_ 0.0
$ns_ initial_node_pos $node_(1) 10
# Nodo 5 NAM
$node_(2) set X_ 20.0
$node_(2) set Y_ -18.0
$node_(2) set Z_ 0.0
$ns_ initial_node_pos $node_(2) 10
#
======================================================================
# Fin de simulación
for {set i } {$i < $opt(nn) } {incr i} {
$ns_ at $opt(stop).0 "$node_($i) reset";
}
proc stop {} {
global deltaT0 deltaT1 deltaT2 ns_ tracefd namtrace
close $tracefd
close $namtrace
close $deltaT0
close $deltaT1
close $deltaT2
exec xgraph DT0.tr -geometry 800x400 &
exec xgraph DT1.tr -geometry 800x400 &
exec xgraph DT2.tr -geometry 800x400 &
exec nam monografia-out.nam
}
#
======================================================================
# Comienzo de simulacion
puts "Comienza Simulación"
$ns_ run
#
======================================================================e
rutera paquetes (solo Radiobase)
# todos los demas parametros se los traspaso
for {set j 0} {$j < $opt(nn)} {incr j} {
set node_($j) [ $ns_ node [lindex $temp \
[expr $j+1]] ]
$node_($j) base-station [AddrParams addr2id \
[$BS(0) node-addr]]
}
#
======================================================================
# Creo Agentes de generación y recepción de trafico
# Creo una fuente de Trafico Constante CBR 50 Kbps y lo asocio a udp1 NAM=Verde
set cbr1 [new Application/Traffic/CBR]
$cbr1 set interval_ 0.032
$cbr1 set packetSize_ 200
$cbr1 attach-agent $udp1
# Creo una fuente de Trafico Constante CBR 50 Kbps y lo asocio a udp2 NAM=Azul
set cbr2 [new Application/Traffic/CBR]
$cbr2 set interval_ 0.032
$cbr2 set packetSize_ 200
$cbr2 attach-agent $udp2
#Crea 3 agentes sinks necesarios para medir trafico y los asocia al nodo final W(0)
set sink0 [new Agent/LossMonitor]
set sink1 [new Agent/LossMonitor]
set sink2 [new Agent/LossMonitor]
#
======================================================================
# Defino un procedimiento que periodocamente que graba el Delta T entre paquetes
recibidos
# y se graban en los archivos deltaT0 deltaT1 deltaT2
proc record {} {
global sink0 sink1 sink2 paqant0 paqant1 paqant2 deltaT0 deltaT1 deltaT2
set ns_ [Simulator instance]
set timevar 0.001
#
======================================================================
# Definición de ubicación "inicial" de nodos inalambricos en NAM
# Nodo 3 NAM
$node_(0) set X_ 20.0
$node_(0) set Y_ 22.0
$node_(0) set Z_ 0.0
$ns_ initial_node_pos $node_(0) 10
# Nodo 4 NAM
$node_(1) set X_ 25.0
$node_(1) set Y_ 2.0
$node_(1) set Z_ 0.0
$ns_ initial_node_pos $node_(1) 10
# Nodo 5 NAM
$node_(2) set X_ 20.0
$node_(2) set Y_ -18.0
$node_(2) set Z_ 0.0
$ns_ initial_node_pos $node_(2) 10
#
======================================================================
# Fin de simulación
for {set i } {$i < $opt(nn) } {incr i} {
$ns_ at $opt(stop).0 "$node_($i) reset";
}
proc stop {} {
global deltaT0 deltaT1 deltaT2 ns_ tracefd namtrace
close $tracefd
close $namtrace
close $deltaT0
close $deltaT1
close $deltaT2
exec xgraph DT0.tr -geometry 800x400 &
exec xgraph DT1.tr -geometry 800x400 &
exec xgraph DT2.tr -geometry 800x400 &
exec nam monografia-out.nam
}
#
======================================================================
# Comienzo de simulacion
puts "Comienza Simulación"
$ns_ run
#
======================================================================