P1 ControlFlujoyARQ 24 25 v5
P1 ControlFlujoyARQ 24 25 v5
P1 ControlFlujoyARQ 24 25 v5
CONTENIDO
1. ACCESO A LOS EQUIPOS 1
2. INFORMACIÓN SOBRE OMNET++ 1
2.1 Breve Explicación de la Herramienta 1
2.2 Lenguaje NED 2
2.3 Cómo se Configura la Simulación 3
2.3.1 Fichero de Configuración 3
2.3.2 Registro de Resultados 3
3. CONTROL DE FLUJO CON ARQ 4
3.1 Cálculo de Parámetros 5
3.2 Simulación 6
3.2.1 Carga del modelo 6
3.2.2 Parada y espera 7
3.2.3 Ventana deslizante con Retroceder a N 11
3.2.4 Ventana deslizante con Repetición selectiva 13
3.3 Análisis de los resultados 15
4. ANEXO - ESTIMACIÓN DE RESULTADOS 19
1/21
Redes y Servicios de Telecomunicación (03/10/2024)
En OMNeT++ el código de los módulos está disponible (directorio /src, ficheros *.cc).
2/21
Protocolos De Control De Flujo con ARQ
Display strings specify how the objects (compound modules, their submodules and connections)
are displayed. Display strings are specified in NED’s @display property.
[Config Fifo1]
description = "low job arrival rate"
**.gen.sendIaTime = exponential(0.2s)
**.gen.msgLength = 100b
**.fifo.bitsPerSec = 1000bps
[Config Fifo2]
description = "high job arrival rate"
**.gen.sendIaTime = exponential(0.01s)
**.gen.msgLength = 10b
**.fifo.bitsPerSec = 1000bps
This file is grouped into sections named [General], [Config Fifo1] and [Config Fifo2], each
one containing several entries. Each entry reflects a parameter present in the *.cc files that
define each module of the topology. Parameters that are declared as volatile are evaluated
every time the parameter is read. They can be assigned a value in NED files or in ‘omnetpp.ini’
(in this order). For example, this is useful for the interarrival time of jobs to a queue. Lines that
start with “#” are comments.
3/21
Redes y Servicios de Telecomunicación (03/10/2024)
4/21
Protocolos De Control De Flujo con ARQ
6 Producto capacidad-retardo (bits) --- 4*10^6 bps * 5.702 * 10^-3 s = 22800 bits
.1 - PER= (1 - BER)^L
log(1 - PER) = L * log (1 - BER) == L = log (0.99)/log(1-5*10-6) = 2010 bits
Tiempo de transmisión = Tamaño paquete/ capacidad canal = 2010 bits / 4 Mbps = 0.502 ms
3.2 SIMULACIÓN
El análisis se va a realizar sobre tres mecanismos de control de flujo distintos:
a) Parada y espera;
b) Ventana deslizante con Retroceder-a-N;
c) Ventana deslizantes con Repetición selectiva.
6/21
Protocolos De Control De Flujo con ARQ
iv. Este código estudia cómo se incrementa el número de secuencia. La variable ‘seq’
almacena el último número de secuencia enviado.
El cálculo se hace con la operación matemática ‘división módulo...’, respecto al
valor de números de secuencia distintos que puede haber, en este caso 2. Esta
operación devuelve el resto de la división; cuando el número de secuencia
sobrepasa el máximo, 1, vuelve a empezar en 0.
El código también lleva la cuenta del número de paquetes que se han recibido
correctamente y de las que han llegado con error.
b) Compile el modelo (menú ‘Project | Build All’). Una vez compilado, si no hace cambios
en los archivos fuente no necesita recompilar.
c) Abra el archivo ‘stop-and-wait.ned’. Seleccione la pestaña source para editarlo en modo
texto (ver Figura 4).
d) Escriba el valor de los parámetros, con sus unidades, según los ha calculado. Recuerde
terminar las líneas con ‘;’. Salve el fichero. Utilice las siguientes unidades
• delay: ms
• datarate: Mbps
• ber: sin unidades
Nota: 5x10-6 se escribe como 5e-6.
e) Edite igualmente los archivos ‘go-back-n.ned’ y ‘selective-repeat.ned’.
f) Escriba el valor de las variables necesarias en el archivo ‘ppnet.ned’
7/21
Redes y Servicios de Telecomunicación (03/10/2024)
8/21
Protocolos De Control De Flujo con ARQ
9/21
Redes y Servicios de Telecomunicación (03/10/2024)
e) Calcule de forma analítica (con las expresiones vistas en clase) el throughput normalizado
(S) y el throughput en kbit/s.
a = tprop/ttrans = 2.6ms/0.502ms
Th = S * R = 320.46 Kbps
10/21
Protocolos De Control De Flujo con ARQ
f) Busque qué parámetros vistos en teoría se corresponden con los siguientes parámetros que
utiliza el OMNET:
S
- Utilization: ______________________________
Th
- Effective data rate: ________________________
si
¿Los valores teóricos obtenidos coinciden con los obtenidos mediante simulación? _____
Se pide:
a) El producto capacidad-retardo (CapRet) está relacionado con el valor óptimo de la ventana
de transmisión. ¿Qué unidades tiene? ______________________________________
bits
Ahora la fuente está modelada mediante el archivo ‘ppsource2.cc’. Estudie cómo se controlan
los números de secuencia:
• Abra el archivo ‘ppsource2.cc’.
• Cuando se recibe un nuevo ACK, se incrementa el número de secuencia disponible con
este código (en varias partes del código):
seq = (seq + 1) % seqSize;
11/21
Redes y Servicios de Telecomunicación (03/10/2024)
Se pide:
lastFrm = sendMessage;
}
13
¿Qué valor toma la variable seqSize? __________________________
¿Con qué variable, vista en clase de teoría, relacionaría seqSize: I ó N? _________
Con la N, Nopt = 1 + 2a
e) Vaya a la función window(), suponga que el último paquete enviado ha sido el 10 y que el
último paquete confirmado ha sido el 3. Determine qué valor devuelve window().
N = 12
12/21
Protocolos De Control De Flujo con ARQ
i) Realice ahora otra simulación modificando el valor de la ventana. Divida el valor óptimo
de la ventana por 2. Tome como valor de la nueva ventana el entero superior más próximo.
12/2 = 6
Valor de la nueva ventana=
Antes de simular. ¿Cree qué disminuirá significativamente el valor de la tasa efectiva
de datos? Justifique su respuesta.
Si, va a disminuir la mitad aproximadamente ya que la ventana es la mitad de pequeña
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
183.73 kbps
Después de simular anote: Tasa efectiva de datos (kbps)=
12
Valor ventana óptima =
No
b) ¿Es distinto al caso de retroceder-a-N?
Ahora la fuente está modelada mediante el archivo ‘ppsource3.cc’. Estudie cómo se comprueba
que los ACK recibidos no son duplicados:
• Abra el archivo ‘ppsource3.cc’.
• Al igual que antes, cuando se recibe un nuevo ACK, se incrementa el número de
secuencia disponible con este código:
seq = (seq + 1) % seqSize;
13/21
Redes y Servicios de Telecomunicación (03/10/2024)
Se pide:
12 = I / 2 == I = 24
¿Qué valor toma la variable seqSize?
¿Por qué?
Porque necesitamos que en Th no se nos caiga, por lo tanto deberemos aumentar el valor de
____________________________________________________________________
____________________________________________________________________
identificadores para poder recibir los ACK
True
allowedACK (4) =
t = 15
____________________________________________________________________
t = (base + windowSize - 1) % seqSize = (4+12-1) % 24 = 15
____________________________________________________________________
199.7
Tasa efectiva de datos (kbps) =
14/21
Protocolos De Control De Flujo con ARQ
i) Compare este resultado con el obtenido para el valor de ventana óptimo. ¿Cómo
interpreta estos resultados? Justifique su respuesta.
_____________________________________________________________________
Al usar la N optima para el calculo nos convierte lo "analítico" en lo perfecto cosa que en la
_____________________________________________________________________
simulación aunque pongamos la N optima no nos pasa ya que ocurrirán errores y no
_____________________________________________________________________
nos dará el caso idóneo
15/21
Redes y Servicios de Telecomunicación (03/10/2024)
o Cuando se estudia la latencia de la red, un valor positivo significa que la latencia en la situación “y” es
mayor que en la situación “x”, es decir, la red “y” es más lenta y se interpretaría como un empeoramiento.
Se pide:
a) Determine el porcentaje que representan los paquetes retransmitidos respecto al total
de paquetes enviados para cada una de las técnicas.
(1804/1804+173077) = 1.03%
Retransmisiones_Parada (%) =
(209484/209484+1703472) = 10.95%
Retransmisiones_Retroceder a N (%) =
399.99
TasaEfetiva_BERNula_RepSelect (kbps) =
¿Cree que es posible alcanzar esta tasa efectiva también con el mecanismo de parada
y espera cuando la BER es 0? Sí No x ¿Por qué?
No, la S sigue siendo la misma y es demasiado baja (0.08)
__________________________________________________________________
__________________________________________________________________
16/21
Protocolos De Control De Flujo con ARQ
351.17
TasaEfetiva_BERNula_ParadaEspera (kbit/s)=
1414301
Recibidas_5BER=
283.9
Tasaefectiva_5BER (kbit/s) =
27%
Variación tasa efectiva (%)=
RETROCEDER a N
1154502
Recibidas_5BER=
231.82
Tasaefectiva_5BER (kbit/s) =
47%
Variación tasa efectiva (%)=
717144 / 1154502 = 62%
Retransmisiones (%)=
retrasmitido / retrasmitido + recibido
MejoraReceivedSelectiva_RetrocederN_5BER =
1414301-115402 / 1154502 = 22.5%
17/21
Redes y Servicios de Telecomunicación (03/10/2024)
En base a los resultados calculados previamente ¿qué técnica consigue que el aumento
de la BER repercuta menos en el throughput obtenido? ¿Por qué?
La Repetición selectiva ya que no tenemos en cuenta la a y usamos la S optima
_____________________________________________________________________
_____________________________________________________________________
_____________________________________________________________________
Notas:
Los datos que debemos saber de la practica:
CALCULOS
a = tprop/ttrans
Retardo de propagacion (ms - delay) = distancia total / velocidad
Tamaño de un paquete = L / 8 (Para que sea numero natural)
Th = S * R
CapRet = C * T = R * T
PER = 1 - (1-BER)'L - > De aqui podemos despejar la L == log(PER)/log(1-BER)
L = ttx * R
Temporizador = (Retardo propagación * 2 + tiempo de transmision) * (Porcentaje que te indican, si es que te lo ponen)
Variacion y|x = ((valory - valorx) / valorx) * 100 (El valor x es el de referencia)
Retransmisiones = paquetes retransmitidos / paquetes retransmitidos + paquetes recibidos correctamente
Producto capacidad - retardo (bits) = Velocidad del canal (dataRate) * Temporizador (sleepTime)
Parada y espera:
S = 1 - PER / 1 + 2a
Retroceder a N:
S = 1 - PER / (1 + 2a * PER) si N >= 1 + 2a
S = N * (1 - PER) / (1 + 2a * PER) si N < 1 + 2a
Repeticion selectiva:
S = 1 - PER si N >= 1 + 2a
S = N * (1 - PER) / (1 + 2a) si N < 1 + 2a
18/21
Protocolos De Control De Flujo con ARQ
Parada y espera
a) Estudiar código.
b) Variable paquetes correctos y Variable paquetes erróneos aparecen en el código que ha
introducido en el fichero ppsource.cc. El nombre de las variables en los códigos de
programa suele ser descriptivo.
c) Seq sólo toma 2 valores. Los valores de Seq < 5.
d) Observar columna "Parada y espera" de la siguiente tabla.
e) Usar fórmulas dadas en clase. Tenga en cuenta la región según el tamaño de ventana.
f) Mirar código y resultados de simulación.
19/21
Redes y Servicios de Telecomunicación (03/10/2024)
Confirmaciones con error error ACKs < 100 < 1500 < 1500
Análisis de resultados
a) Retransmisiones-Parada < 5%
Retransmisiones-Retroceder a N > 5%
Retransmisiones_RepSelectiva < 5%
b) MejoraRecibidosRepSel-Parada > 100%
MejoraRecibidosRepSel-Retroceder a N > 4%
c) Teoría.
d) Con BER = 0.
Tasaefectiva _BERNula >3.5 Mbps
alcanzableParadaEspera = ver teoría
Tasaefetiva_BerNula_Par_Esp (kbit/s) >100 kbit/s.
20/21
Protocolos De Control De Flujo con ARQ
RETROCEDER a N
Received < 1400000
Tasaefectiva < 2.5 Mbit/s
Variación tasa efectiva| (20%, 50%) (degradación)
Retransmisiones > 35%
21/21