Gu´ıa 4 del laboratorio de ARSS Curso 2008 â 2009
Gu´ıa 4 del laboratorio de ARSS Curso 2008 â 2009
Gu´ıa 4 del laboratorio de ARSS Curso 2008 â 2009
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Guía 4 <strong><strong>de</strong>l</strong> <strong>laboratorio</strong> <strong>de</strong> <strong>ARSS</strong><br />
<strong>Curso</strong> <strong>2008</strong> – <strong>2009</strong><br />
1. Introducción<br />
En esta sesión <strong>de</strong> <strong>laboratorio</strong> y la siguiente se va a estudiar un protocolo para el control <strong>de</strong> enlace<br />
lógico que utiliza la técnica <strong>de</strong> parada y espera para el control <strong>de</strong> flujo y errores. La técnica <strong>de</strong> parada<br />
y espera ha sido <strong>de</strong>scrita en la clase <strong>de</strong> teoría, con algún ejemplo. También está bien explicada en el<br />
texto <strong>de</strong> apoyo recomendado [2, cap. 7], y en otros como [3, cap. 3] o [1, cap. 5].<br />
El diagrama <strong>de</strong> flujo correspondiente a la implementación <strong><strong>de</strong>l</strong> protocolo <strong>de</strong> parada y espera con<br />
el que trabajaremos en el <strong>laboratorio</strong> se muestra en la figura 1. Antes <strong>de</strong> proce<strong>de</strong>r con la práctica<br />
asegúrate <strong>de</strong> que compren<strong>de</strong>s el protocolo, estudiando el diagrama así como las fuentes antes mencionadas.<br />
2. Estudio <strong><strong>de</strong>l</strong> protocolo <strong>de</strong> parada y espera en un medio sin<br />
errores<br />
Una vez que has comprendido el protocolo, es el momento <strong>de</strong> simularlo y verlo en funcionamiento,<br />
así como <strong>de</strong> evaluar sus prestaciones. Para ello, es necesario que edites el fichero <strong>de</strong> topología original<br />
labarss3.top y que cambies el valor <strong><strong>de</strong>l</strong> atributo correspondiente <strong>de</strong> forma que cnet simule el<br />
comportamiento <strong><strong>de</strong>l</strong> protocolo <strong>de</strong> parada y espera codificado en el fichero stopandwait.c.<br />
A continuación, <strong>de</strong>dica unos minutos para observar el comportamiento <strong><strong>de</strong>l</strong> protocolo. Para ello te<br />
recomendamos que dibujes en tu cua<strong>de</strong>rno el diagrama <strong>de</strong> intercambio <strong>de</strong> tramas correspondiente a<br />
una simulación. Después, comprueba que dicho intercambio <strong>de</strong> tramas se ajusta al diagrama <strong>de</strong> flujo<br />
<strong>de</strong> la figura 1.<br />
2.1. Eficiencia <strong>de</strong> transmisión en relación con el tamaño <strong>de</strong> mensaje<br />
La eficiencia <strong>de</strong> transmisión para una capa <strong>de</strong> comunicación se <strong>de</strong>fine como la cantidad <strong>de</strong> datos<br />
que dicha capa consigue hacer llegar a su <strong>de</strong>stino por cada unidad <strong>de</strong> datos transmitida por la capa<br />
física. Para obtener la eficiencia <strong>de</strong> transmisión <strong>de</strong> la capa <strong>de</strong> enlace pue<strong>de</strong>s dividir el número <strong>de</strong> bytes<br />
recibidos correctamente por la capa <strong>de</strong> aplicación <strong>de</strong> la máquina receptora <strong>de</strong> datos entre el número<br />
<strong>de</strong> bytes transmitidos por la capa física <strong>de</strong> la máquina emisora <strong>de</strong> datos. En cnet, el número <strong>de</strong> bytes<br />
recibidos correctamente por la capa <strong>de</strong> aplicación <strong>de</strong> la máquina receptora pue<strong>de</strong> obtenerse en la<br />
ventana <strong>de</strong> estadísticas <strong>de</strong> dicha máquina receptora, fila Received OK, columna Bytes. El número <strong>de</strong><br />
bytes transmitidos por la capa física <strong>de</strong> la máquina emisora <strong>de</strong> datos pue<strong>de</strong> obtenerse en la ventana<br />
<strong>de</strong> estadísticas <strong><strong>de</strong>l</strong> enlace en el sentido máquina transmisora a máquina receptora, fila Transmitted,<br />
columna Bytes.<br />
Realiza las tareas propuestas a continuación:<br />
Deduce <strong>de</strong> forma teórica la expresión <strong>de</strong> la eficiencia <strong>de</strong> la capa <strong>de</strong> enlace para el protocolo <strong>de</strong><br />
parada y espera en función <strong><strong>de</strong>l</strong> tamaño <strong>de</strong> mensaje (M), tamaño <strong>de</strong> cabecera (H), velocidad<br />
binaria <strong><strong>de</strong>l</strong> enlace (R) y tiempo <strong>de</strong> propagación <strong><strong>de</strong>l</strong> enlace (t prop ).<br />
Obtén a partir <strong>de</strong> la fórmula teórica correspondiente el valor <strong>de</strong> la eficiencia para el protocolo<br />
<strong>de</strong> parada y espera consi<strong>de</strong>rando las siguientes condiciones: M = {500, 1000, 2000, 4000} bytes,<br />
H = 16 bytes, R = 5 kilobytes por segundo, t prop = 1000 milisegundos.<br />
1
Utiliza el simulador para medir experimentalmente el valor <strong>de</strong> la eficiencia ofrecida por la capa<br />
<strong>de</strong> enlace para el protocolo estudiados bajo las condiciones supuestas en el punto anterior fijando<br />
el tiempo medio <strong>de</strong> generación <strong>de</strong> mensajes (messagerate) a 1 milisegundo. Utiliza las opciones<br />
-m y -T para tus simulaciones si lo consi<strong>de</strong>ras necesario.<br />
Dibuja en una misma gráfica las dos curvas obtenidas (una teórica y una experimental) representando<br />
el tamaño <strong>de</strong> mensaje (en bytes) en el eje x y la eficiencia (en tantos por uno) en el<br />
eje y.<br />
Respon<strong>de</strong> a las siguientes preguntas:<br />
• ¿Coinci<strong>de</strong>n las curvas teórica y experimental? ¿Por qué?<br />
• ¿Cómo influye el tamaño <strong>de</strong> mensaje en las curvas? ¿Por qué?<br />
• ¿Tien<strong>de</strong>n las curvas asintóticamente a un valor? ¿A cuál?<br />
• ¿En qué se diferenciaría la curva que has obtenido con otra curva experimental generada<br />
con un valor <strong>de</strong> messagerate mucho mayor (ej. 2 segundos)? ¿Por qué?<br />
2.2. Tasa binaria efectiva en relación con el tiempo <strong>de</strong> propagación<br />
La tasa binaria efectiva ofrecida por una capa <strong>de</strong> comunicación se <strong>de</strong>fine como la cantidad máxima<br />
<strong>de</strong> datos por unidad <strong>de</strong> tiempo que pue<strong>de</strong> transmitir el usuario <strong>de</strong> dicha capa <strong>de</strong> comunicación. El<br />
valor <strong>de</strong> la tasa binaria con la que ha transmitido una máquina durante una simulación pue<strong>de</strong> obtenerse<br />
en la ventana <strong>de</strong> estadísticas <strong>de</strong> la máquina receptora, fila Received OK, columna KBytes/sec.<br />
Realiza las tareas propuestas a continuación:<br />
Deduce <strong>de</strong> forma teórica la expresión <strong>de</strong> la tasa binaria efectiva (R ef ) ofrecida por la capa <strong>de</strong><br />
enlace <strong><strong>de</strong>l</strong> protocolo estudiado en esta sesión en función <strong><strong>de</strong>l</strong> tamaño <strong>de</strong> mensaje (M), tamaño<br />
<strong>de</strong> cabecera (H), velocidad binaria <strong><strong>de</strong>l</strong> enlace (R), tiempo <strong>de</strong> propagación <strong><strong>de</strong>l</strong> enlace (t prop ) y<br />
tamaño <strong>de</strong> ventana (W).<br />
Obtén a partir <strong>de</strong> la fórmula teórica correspondiente el valor <strong>de</strong> la tasa binaria efectiva (R ef ) para<br />
el protocolo estudiado en esta sesión consi<strong>de</strong>rando las siguientes condiciones: M = 4080 bytes,<br />
H = 16 bytes, R = 5 kilobytes por segundo, t prop = {500, 1000, 1500, 2000, 2500} milisegundos.<br />
Utiliza el simulador para medir experimentalmente el valor <strong>de</strong> la tasa binaria efectiva (R ef ) ofrecida<br />
por la capa <strong>de</strong> enlace para el protocolo estudiado bajo las condiciones supuestas en el punto<br />
anterior fijando el tiempo medio <strong>de</strong> generación <strong>de</strong> mensajes (messagerate) a 1 milisegundo.<br />
Utiliza las opciones -m y -T para tus simulaciones si lo consi<strong>de</strong>ras necesario.<br />
Dibuja en una misma gráfica las dos curvas obtenidas (una curva teórica y una experimental)<br />
representando el tiempo <strong>de</strong> propagación (en milisegundos) en el eje x y la tasa binaria efectiva<br />
(en kilobytes por segundo) en el eje y.<br />
Respon<strong>de</strong> a las siguientes preguntas:<br />
• ¿Coinci<strong>de</strong>n las curvas teórica y experimental? ¿Por qué?<br />
• ¿Cómo influye el tiempo <strong>de</strong> propagación en las curvas? ¿Por qué?<br />
• ¿Tien<strong>de</strong>n las curvas asintóticamente a un valor? ¿A cuál?<br />
• ¿En qué se diferenciaría la curva que has obtenido con otra curva experimental generada<br />
con un valor <strong>de</strong> messagerate mucho mayor (ej. 2 segundos)? ¿Por qué?<br />
Referencias<br />
[1] A. León-García and I. Widjaja. Communication networks: fundamental concepts and key architectures.<br />
McGraw-Hill Higher Education, New York, NJ, USA, 2 a edition, 2004.<br />
[2] W. Stallings. Comunicaciones y re<strong>de</strong>s <strong>de</strong> computadoras. Prentice Hall, Madrid, España, 7 a edition,<br />
2004. Versión original en inglés <strong>de</strong> 2004.<br />
[3] A.S. Tanenbaum. Computer networks. Prentice Hall, Upper Saddle River, NJ, USA, 4 a edition,<br />
2003.<br />
2
Espera evento<br />
CA dispone <strong>de</strong> datos<br />
Tipo <strong>de</strong><br />
evento<br />
CF dispone <strong>de</strong> datos<br />
Vence temporizador<br />
Leer mensaje <strong>de</strong> CA<br />
Leer mensaje <strong>de</strong><br />
búfer <strong>de</strong> tx<br />
Leer trama <strong>de</strong> CF<br />
Copiar mensaje en<br />
búfer tx<br />
Calcular<br />
CRC<br />
Deshabilitar CA<br />
¿CRC<br />
correcto?<br />
No<br />
Descartar trama<br />
Sí<br />
Encapsular mensaje<br />
en trama con nº <strong>de</strong><br />
sec<br />
Datos<br />
¿Tipo<br />
trama?<br />
ACK<br />
No<br />
Activar<br />
temporizador<br />
¿nº <strong>de</strong> sec<br />
esperado?<br />
¿nº <strong>de</strong> sec<br />
esperado?<br />
Sí<br />
No<br />
Sí<br />
Calcular<br />
CRC<br />
Copiar mensaje en<br />
búfer rx<br />
Descartar trama<br />
Cancelar<br />
temporizador<br />
Enviar trama<br />
Pasar mensaje a CA<br />
Preparar trama con<br />
ACK y nº <strong>de</strong> última<br />
trama aceptada<br />
Liberar<br />
búfer <strong>de</strong> tx<br />
Vaciar búfer <strong>de</strong> rx<br />
Habilitar CA<br />
Preparar trama con<br />
ACK y nº <strong>de</strong> trama<br />
recibido<br />
Figura 1: Diagrama <strong>de</strong> flujo para el protocolo <strong>de</strong> enlace <strong>de</strong> datos que implementa la técnica <strong>de</strong> parada<br />
y espera, asumiendo que el medio no está libre <strong>de</strong> errores. En el diagrama se utilizan abreviaturas para<br />
<strong>de</strong>notar los siguientes términos: capa <strong>de</strong> aplicación (CA), capa física (CF), transmisión (tx), recepción<br />
(rx) y número <strong>de</strong> secuencia (n o <strong>de</strong> sec).<br />
3