Arquitectura de Redes, Sistemas y Servicios Guia de estudio del tema 3 Miguel A. Gómez Hernández 24 de octubre de 2007 1. Objetivos Este tema describe las funciones del nivel de enlace, en el supuesto de que dos máquinas se comunican mediante un canal dedicado. En este sentido se espera que comprendas los problemas que aparecen, ası́ como las técnicas básicas para resolverlos. Los objetivos de este tema, por lo tanto, son los siguientes: Comprender la necesidad de sincronización o entramado, ası́ como conocer técnicas orientadas a bit o a carácter para hacerlo. Comprender la necesidad de control de flujo, cuando una de las máquinas no puede procesar los datos a la misma velocidad a la que los recibe. Comprender las técnicas de control de flujo básicas, y su rendimiento en ausencia de errores. Comprender la necesidad de control de errores, cuando el medio de transmisión no es fiable. Conocer que el receptor puede darse cuenta de que una trama recibida tiene errores. Comprender las técnicas ARQ de control de errores, y tener una percepción intuitiva de sus prestaciones. Conocer el protocolo HDLC, sus caracterı́sticas fundamentales, y poder describir el funcionamiento de dicho protocolo en escenarios sencillos. 2. Lecturas recomendadas El capı́tulo 7 de [Sta00] cubre con completitud este tema, tal como se ha planteado en la asignatura. Por lo tanto es la lectura básica para el tema. Además, los apuntes sobre HDLC proporcionados sirven de guı́a rápida para comprender el protocolo, ası́ como de referencia básica, suficiente para esta asignatura. Por ello, se consideran también lectura básica para el tema. El capı́tulo 3 de [Tan03] cubre también los objetivos de este tema, con mayor amplitud en algunos aspectos (detección de errores, verificación de protocolos), y con menor en otros (HDLC). En este caso, esta lectura se recomienda de forma secundaria. Los protocolos de nivel de enlace de Internet se describen con relativo detalle en [Ste94]. 3. Problemas recomendados En esta sección se recomiendan una serie de problemas, y de preguntas abiertas que pueden ayudarte a repasar los conceptos aprendidos en este tema, y a explorar problemas para localizar las dudas o aspectos más interesantes. 1 3.1. Problemas 3.1.1. Problema 1 Este problema permite reflexionar más sobre los distintos protocolos estudiados en clase, comprendiéndo mejor qué hacen ante determinados eventos. Supón dos máquinas A y B unidas por un enlace punto a punto, siendo la máquina A transmisora y la B receptora. Si se escribe el código del protocolo del nivel de enlace lógico en un entorno orientado a eventos, este protocolo estará esperando la llegada de un evento (que puede ser que llega algo de la capa fı́sica, que llega algo de la capa superior, o que vence algún temporizador), y en el momento en el que llega un evento lo procesa. Asume primero que el medio está libre de errores, aunque sigue siendo necesario el control de flujo. Si el protocolo de nivel de enlace lógico implementa la técnica de parada y espera, tal como se ha descrito en clase, dibuja dos diagramas de flujo, correspondientes a estos protocolos en cada una de las máquinas. Si el medio introduce errores, además del control de flujo será necesaria la recuperación ante errores. Si se utiliza un protocolo de nivel de enlace lógico que implementa la técnica de parada y espera descrita en clase, dibuja sus diagramas de flujo, correspondientes a las dos máquinas. Considera que para aumentar el rendimiento se prefiere una técnica de ventana deslizante con rechazo simple (vuelta atrás N ). Dibuja los diagramas de flujo, primero suponiendo que no hay errores, y eliminando esta suposición después. Finalmente, realiza el mismo ejercicio con un protocolo que implemente la técnica de ventana deslizante con rechazo selectivo. 3.1.2. Problema 2 El siguiente problema te permitirá pensar sobre el rendimiento del protocolo de parada y espera, en un medio libre de errores. Además de decucir la fórmula, reflexiona sobre el impacto de cada término en el rendimiento. La solución la puedes encontrar en [Sta00, pp. 210-215], pero intenta resolverlo con anterioridad. (a) Supón un enlace semiduplex entre dos estaciones por medio de un canal libre de errores. Una de las estaciones es transmisora, y la otra receptora, y se utiliza un protocolo de control de flujo de parada y espera. Supón que el tiempo que tarda en transmitirse la trama es ttrama y que el tiempo que tarda en propagarse hasta el otro extremo es tprop . Supón que el tiempo de transmisión de los asentimientos es despreciable, y que el tiempo de procesamiento en las estaciones es nulo. Si el emisor siempre tiene datos para transmitir, ¿cuál es el uso del canal (qué fracción de tiempo se transmiten datos)? (b) Si la tasa de transmisión binaria es de R bits por segundo, la trama tiene L bits, el canal mide d metros, y la señal se propaga por el medio a V metros por segundo, ¿cuál es el uso del canal en función de R, L, d y V ? (c) Si en (a) el protocolo utilizado es de ventana deslizante, con tamaño de ventana W , ¿cuál es el uso del canal? 3.1.3. Problema 3 El siguiente problema es un problema abierto e incide sobre el análisis de la eficiencia. 2 Dos máquinas A y B están conectadas por un enlace punto a punto, utlizando una arquitectura de comunicaciones de tres capas: La capa fı́sica ofrece una velocidad binaria R, utilizando una codificación Manchester con voltajes de -5V y +5V, sobre un par trenzado apantallado, sobre el que la señal se propaga a una velocidad V . El cable mide L metros. La capa de enlace de datos utiliza un protocolo de ventana deslizante en el que, aunque el medio fı́sico puede introducir errores, no se implementan temporizadores ni rechazos. De esta forma el nivel de enlace de datos hace control de flujo pero no control de errores. El tamaño de ventana es W , y las tramas tienen B = H + D bits, de los que D son los datos transportados a la capa de aplicación, y H de sobrecarga (cabecera y cola). La capa de aplicación necesita poder transmitir datos a RA bits por segundo, y genera mensajes suficientemente pequeños como para que cada mensaje quepa en una trama del nivel inferior. Supón que ttrama ≈ tprop y que el tamaño de ventana W es grande (W > 5). En estas condiciones contesta a las siguientes preguntas. (a) Supón que puedes variar la velocidad binaria de transmisión R. ¿Cuál será el valor mı́nimo de R para que la capa de aplicación pueda disponer de unos determinados RA bits por segundo? Proporciona este valor mı́nimo de R como una función de L, V , W , H, D y RA . (b) La capa de aplicación necesita RA = 64kbps, y genera mensajes de D = 150 bytes, a los que el nivel de enlace añade H = 32 bytes de cabecera. En el nivel de enlace se pueden tener hasta W = 15 tramas pendientes de confirmación. Finalemente, el cable mide L = 30 km y la señal se propaga sobre él a V =200 m/µs. Calcula numéricamente el valor mı́nimo de la velocidad binaria del medio fı́sico. (c) Si la máquina A y la máquina B pueden transmitir a la vez, porque el enlace es duplex, justifica si el servicio ofrecido por el nivel de enlace de datos podrı́a ser utilizado para ofrecer comunicaciones de audio interactivo. ¿Y para ofrecer transferencia de ficheros? 3.1.4. Problema 4 El siguiente problema, 7.1 en [Sta00], obliga a reflexionar sobre las relaciones entre los términos de la expresión deducida en el problema anterior. Considera un enlace punto a punto semiduplex en el que se utiliza un esquema de parada y espera, enviándose una serie de mensajes, cada uno de los cuales se segmenta en una serie de tramas. Si no se consideran errores, ni los bits suplementarios en las tramas: (a) ¿Qué repercusiones tiene en el uso de la lı́nea un aumento del tamaño de los mensajes de forma que se necesite transmitir un menor número de ellos, si todos los demás factores se mantienen constantes? (b) ¿Qué repercusión tiene en el uso de la lı́nea aumentar el número de tramas manteniendo constante el tamaño del mensaje? (c) ¿Qué repercusión tiene en el uso de la lı́nea aumentar el tamaño de las tramas? 3 3.1.5. Problema 5 El siguiente es el problema 7.2 de [Sta00], o también el 3.17 de [Tan03]. Un canal tiene una velocidad de transmisión de 4kbps, y un retardo de propagación de 20ms. ¿Para qué rango de tamaños de trama se conseguirá un uso del canal de al menos el 50 % con un esquema de parada y espera? 3.1.6. Problema 6 El siguiente problema trata de ilustrar la importancia de numerar los asentimientos en los esquemas de parada y espera. Considera un enlace punto a punto semiduplex con errores en el que se utiliza un esquema de parada y espera y en el que los asentimientos no están numerados. De esa manera, la recepción de un asentimiento indica, simplemente, que la última trama transmitida ha sido recibida correctamente en el otro extremo del enlace. ¿En qué casos, y debido a un mal dimensionamiento del temporizador de retransmisiones, se pueden aceptar en el receptor como válidas tramas duplicadas (tramas que el emisor ha tenido que retransmitir por vencimiento del temporizador)? ¿Por qué la numeración de los asentimientos permite solucionar este problema potencial? 3.1.7. Problema 7 El siguiente problema ilustra que el rendimiento puede mejorar al aumentar el tamaño de ventana, si se utiliza un protocolo de control de flujo de ventana deslizante. Además, ilustra los largos retardos que impone un enlace vı́a satélite. El problema es el 7.3 en [Sta00]. Si se utilizan tramas de 1000 bits en un canal vı́a satélite a 1Mbps, con 270ms de retardo, ¿cuál es el uso máximo del canal con (a) un esquema de parada y espera? (b) un esquema de control de flujo de ventana deslizante, con tamaño de ventana 7? (c) un esquema de control de flujo de ventana deslizante, con tamaño de ventana 127? (d) un esquema de control de flujo de ventana deslizante, con tamaño de ventana 255? ¿Con qué tamaño de ventana se consigue un uso del 100 %? 3.1.8. Problema 8 El problema 7.4 de [Sta00] presenta un escenario en el que un nodo actúa de intermediario de la comunicación entre otros dos. Al participar tres nodos en la comunicación, el control de flujo es más complicado. Intenta resolver el problema mediante un desarrollo simbólico, y reflexiona sobre las relaciones entre los términos. Después da valores numéricos. Para que el nodo A se comunique con el nodo C, A envı́a los datos a un nodo B, que a su vez los reenvı́a al nodo C. Los nodos distan dAB = 4000km y dBC = 1000km respectivamente, y el retardo de propagación es τ = 4µs/km para ambas lı́neas. La velocidad de transmisión entre A y B es RAB = 100kbps. Las tramas de datos tienen longitud L = 1000bits, y las de asentimiento una longitud despreciable. Entre A y B se usa un protocolo de ventana deslizante de tamaño W = 3, y entre B y C se usa un protocolo de parada y espera. No hay errores. En estas condiciones, si B no transmite suficientemente rápido, le llegarán demasiadas tramas, que tendrá que almacenar en una memoria temporal. Sin embargo, esta memoria 4 se terminará eventualmente, y B tendrá que descartar las tramas. ¿Cuál es la velocidad de transmisión mı́nima, RBC , para que la memoria del nodo B no se sature? Para resolver el problema: (a) Dibuja un cronograma que describe el caso en el que la memoria temporal de B no se satura. (b) Calcula, en función de dAB , dBC , τ , L, W y RAB , el valor de RBC para que la memoria temporal de B no se sature. Reflexiona sobre si las relaciones entre términos parecen razonables. (c) Da valores numéricos a la expresión calculada anteriormente. 3.1.9. Problema 9 El siguiente problema es un problema abierto. Trata de reforzar el concepto de tasa binaria efectiva. Dos estaciones A y B unidas por un cable utilizan en el nivel de enlace de datos un protocolo de ventana deslizante, con uso de temporizadores y rechazo simple. En el problema supón que A es sólo transmisora y B es sólo receptora. Si la probabilidad de error en el sentido de A a B es nula, y en el sentido de B a A es 1 (PeA→B = 0 y PeB→A = 1), calcula la tasa binaria efectiva ofrecida por la capa de enlace de datos de A a su usuario de servicio. 3.1.10. Problema 10 El siguiente problema, ampliación del 7.5 de [Sta00], apunta un aspecto del protocolo de ventana deslizante obviado hasta ahora: la relación entre el número de secuencia máximo y el tamaño de ventana. (a) Si se numeran las tramas con n bits, el número de secuencia más alto posible es 2n − 1. El tamaño de ventana es W . ¿Cuál es la relación que deben guardar el número máximo de secuencia, y el tamaño de ventana? (b) Un canal tiene una velocidad de transmisión de R bps, y un retardo de propagación de t segundos por kilómetro. La distancia entre el nodo emisor y el receptor es de L km, y los nodos intercambian tramas de longitud fija igual a B bits. Encuentra la expresión que dé el tamaño del campo de numeración de secuencia mı́nimo en función de R, t, L y B, considerando utilización máxima. Supón que las tramas de asentimiento tienen un tamaño despreciable, y que el procesamiento en los nodos es instantáneo. 3.1.11. Problema 11 El siguiente problema se trata de otro problema abierto. La solución puede encontrarse en [Sta00, pp. 199] y también en [Tan03, pp. 226], pero reflexiona sobre él antes de leer la solución. Supón la siguiente descripción de una técnica ARQ de control de errores con rechazo selectivo: Cuando el receptor detecta una trama fuera de secuencia puede enviar un rechazo selectivo indicando la trama faltante (ej. SREJ i si i es la trama que falta). Después de esto, debe esperar a recibir dicha trama para cerrar esta situación. Mientras esto no ocurra, no podrá mandar ningún otro rechazo, ni asentimientos con un número de secuencia mayor que i (es decir, como mucho podrá enviar RR i). 5 El transmisor va mandando tantas tramas como tiene en su ventana. Si recibe un rechazo selectivo SREJ i, debe reenviar la trama i, pero no las sucesivas que ya hubiese enviado. Tras cada trama enviada, el transmisor arranca un temporizador. Si este temporizador vence, reenvı́a la trama en cuestión. Observa que esto difiere del ejemplo incluido en las transparencias: en ese ejemplo, al vencer el temporizador, el transmisor hacı́a un sondeo. Esto último es lo que se hace en HDLC, pero no aquı́. Recuerda que para ARQ con rechazo simple el tamaño de la ventana estaba limitado por el número de bits que se utilizan para numerar las tramas, de la forma W ≤ 2n − 1. (a) Encuentra un ejemplo en el que si W = 2n − 1 y se utiliza el ARQ con rechazo selectivo descrito aquı́, el protocolo falla. Para hacerlo supón que se numeran las tramas con n=3 bits, y que se utiliza un tamaño de ventana W =7. (b) Encuentra la condición que debe cumplir W para que esta técnica no falle (es decir, se pide la expresión W ≤ f (n) que permite garantizar que la técnica no falla). 3.1.12. Problema 12 Las siguientes preguntas son de los problemas 7.14, 7.18 y 7.19 de [Sta00] y el problema 5.25 de [LG00]. Permiten reflexionar sobre cómo optimizar los protocolos. (a) En el estudio del ARQ (puede haber errores) con parada y espera no se ha hecho mención a las tramas de rechazo REJ0 y REJ1. ¿Por qué no es necesario utilizar dichas tramas en un ARQ de parada y espera? (b) En ARQ con ventana deslizante, ¿qué puede ir mal si no se usan los temporizadores? (c) En ARQ con rechazo selectivo no se pueden usar confirmaciones desordenadas. Es decir, si la estación X rechaza la trama i, todas las tramas de información o RR siguientes enviadas por X deben tener N (R) = i hasta que la trama i se reciba correctametne, incluso en el caso de que otras tramas con N (S) > i se reciban entre tanto sin errores. Un posible refinamiento es el siguiente: una trama de información o RR con N (R) = j se interpretará como que la trama j − 1 y todas las precedentes se han aceptado, excepto aquellas que explı́citamente se hayan rechazado mediante una trama SREJ. Discute los posibles problemas con los que se enfrenta este procedimiento. (d) El estándar ISO para los procedimientos de control de enlace de datos (ISO 4335) incluye las siguientes definiciones: 1. La situación tras una REJ se considera finalizada cuando se reciba una trama-I con N(S) igual al N(R) de la trama REJ de salida. 2. La situación tras una SREJ se considera finalizada cuando se reciba una tramaI con N(S) igual al N(R) de la trama SREJ de salida. Estas reglas indican qué ocurre (en términos de transmitir tramas REJ y SREJ) si la situación tras una REJ o una SREJ no ha finalizado. Deduce estas reglas justificando la respuesta. 3.1.13. Problema 13 La siguiente propuesta de discusión aparece como problema 3.4 de [Tan03]. Uno de sus compañeros ha señalado que es un desperdicio terminar cada trama con un byte de bandera e iniciar la siguiente con otro. Un sólo byte de bandera podrı́a hacer el trabajo, por lo que un byte guardado es un byte ganado. ¿Usted está de acuerdo? 6 3.1.14. Problema 14 La siguiente pregunta es el problema 5.19 de [LG00], y trata otro aspecto obviado en la explicación: el ajuste de los temporizadores. Supón que en un enlace con un esquema de control de errores ARQ de parada y espera el valor del temporizador es menor que el tiempo necesario para recibir el asentimiento. Dibuja el cronograma cuando el origen envı́a cinco tramas al destino, y no ocurren errores. Observa que esta pregunta está muy relacionada con la práctica del laboratorio. 3.1.15. Problema 15 El problema 5.23 de [LG00] simplemente pide describir la secuencia de eventos en un escenario. Todas las cantidades son adimensionales (es decir, puedes suponer que la longitud de las tramas se expresa en segundos que tardan en transmitirse, y el retardo del enlace se expresa en segundos que tarda en recorrese). Considera un enlace bidireccional que usa un esquema de ventana deslizante, con tamaño de ventana 7. Las tramas miden 1, y tienen un temporizador que vale 3. La propagación es 0.5, y el tiempo de procesamiento despreciable. Asumiento que tanto A como B comienzan con un número de secuencia 0, dibuja el cronograma asociado a los siguientes escenarios: (a) La estación A envı́a seis tramas seguidas, empezando en t = 0. Todas las tramas se reciben correctamente. (b) La estación A envı́a seis tramas seguidas, empezando en t = 0. Todas las tramas se reciben correctamente, excepto la 3 que se pierde. (c) La estación A envı́a seis tramas seguidas, empezando en t = 0. La estación B envı́a seis tramas seguidas, empezando en t = 0,25. Todas las tramas se reciben correctamente. 3.1.16. Problema 16 El problema 7.24 de [Sta00] simplemente pide describir la secuencia de eventos en un escenario en el que se utiliza HDLC. Supón que una estación primaria en HDLC en NRM envı́a seis tramas-I a una secundaria. El N(S) de la primera trama es tres (011 en binario) antes de enviar las seis tramas. Si el bit P=1 en la sexta trama, ¿cuál será el N(R) de vuelta de la secundaria tras la última trama? Supón que no hay errores. 3.1.17. Problema 17 Los problemas 5.49 y 5.51 de [LG00] permiten reflexionar sobre el bit P/F. (a) En HDLC, ¿Cómo sabe una estación si una trama recibida con el quinto bit a 1, si es el bit P o el bit F? (b) Supón que una trama con el bit P=1 ha sido enviada. Explica por qué no deberı́a enviarse otra trama con el bit P=1. ¿Qué deberı́a hacerse si la trama se pierde? 7 A ) q 6 q 8 q ) 4 2 3 (a) 1 q 3 q 5 ) 6 7 8 q 4 5 B 2 ) ttemp 4 5 A 1 q q 3 7 ) 9 ) B 1 2 ) ) A B q q q q (b) (c) Figura 1: Figura del problema 18, con tres escenarios HDLC. 3.1.18. Problema 18 Los problemas 5.53, 5.54 y 5.55 de [LG00] piden describir el intercambio de tramas en HDLC en determinados escenarios. Para los siguientes escenarios, completa el etiquetado de las tramas intercambiadas, y escribe la secuencia de variables de estado en las dos estaciones, según los eventos ocurren. (a) El escenario de la figura 1a, con HDLC ABM si no hay errores, sabiendo que las tramas intercambiadas son las siguientes: 1. AI00 4. xIxx 7. xIxx 2. BI00 5. xRRxx 8. xRRxx 3. xIxx 6. xIxx 9. xRRxx (b) El escenario de la figura 1b, con HDLC ABM si no hay errores, asumiendo que la primera trama que espera A es la 2, y sabiendo que las tramas intercambiadas son las siguientes: 1. AI23 2. xRRxP 3. xIxx 4. xIxx 5. xRRx (c) El escenario de la figura 1c, con HDLC ABM, sabiendo que las tramas intercambiadas son las siguientes: 1. AI00 5. xREJx 3.1.19. 2. BI00 6. xIxx 3. xIxx 7. xxxx 4. xIxx 8. xxxx Problema 19 El siguiente problema se trata de otro problema abierto. Utiliza tus apuntes de HDLC para resolverlo. Dos estaciones, A y B, utilizan la clase de procedimiento HDLC denominada BA 2,8 para comunicarse en el nivel de enlace de datos. Se asume por simplicidad que las tramas de información tardan dos unidades de tiempo en transmitirse, las de control y 8 no numeradas se transmiten en tan sólo una, y la propagación entre las dos estaciones lleva cuatro unidades de tiempo, mientras que el valor asignado al temporizador es once unidades de tiempo (es decir, ttrama−I = 2τ , ttrama−C = 1τ , ttrama−U = 1τ , tprop = 4τ y ttemp = 11τ ). El tiempo de procesamiento en las estaciones se considera nulo. Si vence un temporizador las estaciones realizan un sondeo. Por otra parte, las estaciones confirman las tramas mediante piggybacking siempre que en el momento de la recepción de una trama tengan alguna trama en la ventana de transmisión, y en otro caso lo hacen mediante tramas de control (es decir, si cuando llega una trama a la estación X, esta estación X tiene alguna trama para transmitir, pero que todavı́a no haya empezado a transmitir, incluye un asentimiento en su cabecera). Por otra parte, el tamaño de la ventana es el máximo que permite la clase de procedimiento (ten en cuenta que utiliza rechazo simple). Dibuja los cronogramas de intercambio de tramas entre ellas, que responden a la siguiente descripción verbal. Nota: Utiliza la notación estándar para representar las tramas (en particular, las tramas de información se representan I,N(S),N(R),[P/F] y las tramas de control se representan, por ejemplo, RR N(R),[P/F], donde aparece P si el bit P está puesto a 1, F si es el bit F el que es 1, o nada si el bit P/F es 0). Además, cuida la numeración de las tramas, que no se reinicia en cada apartado. (a) La estación A solicita establecer la conexión, comenzando en t = 0τ , que la estación B acepta. (b) El usuario de enlace en la estación A pasa datos que permiten formar cuatro tramas, en t = 12τ , que son transmitidas y llegan bien. El usuario de enlace de la estación B pasa datos que permiten formar tres tramas, en t = 17τ , que son transmitidas y llegan bien. (c) La estación A tendrá de nuevo una trama que transmitir en el tiempo t = 35τ , pero aunque esta trama se transmite, no llega. Sin embargo, el protocolo consigue arreglarlo. (d) En el instante t = 70τ la estación A tendrá de nuevo cuatro tramas que transmitir. Todas ellas son transmitidas pero la tercera de éstas no llega, aunque el protocolo consigue arreglarlo. (e) En el instante t = 100τ la estación B tiene datos como para formar siete tramas. Las transmisiones de estas tramas tendrán éxito. Sin embargo, el usuario de enlace de A (es decir, la capa superior) no está aceptando tramas de momento. En el instante t = 120τ el usuario de enlace de A acepta por fin todas las tramas almacenadas, pero la capa de enlace de A no hace nada. En el instante t = 122τ la capa de enlace de B realiza un sondeo, que es contestado por la de A, tras lo que todo continúa con éxito. (f ) En el instante t = 140τ , la estación A inicia la desconexión, que es aceptada por B. 3.1.20. Problema 20 El siguiente problema se trata también de un problema abierto. Utiliza tus apuntes de HDLC para resolverlo. Dos estaciones, A y B, utilizan la clase de procedimiento HDLC denominada BA 3,8 para comunicarse en el nivel de enlace de datos. Se asume por simplicidad que las tramas de información tardan dos unidades de tiempo en transmitirse, las de control y 9 no numeradas se transmiten en tan sólo una, y la propagación entre las dos estaciones lleva cuatro unidades de tiempo, mientras que el valor asignado al temporizador es veintidos unidades de tiempo (es decir, ttrama−I = 2τ , ttrama−C = 1τ , ttrama−U = 1τ , tprop = 4τ y ttemp = 22τ ). El tiempo de procesamiento en las estaciones se considera nulo. Si vence un temporizador las estaciones realizan un sondeo. Por otra parte, las estaciones confirman las tramas mediante piggybacking siempre que en el momento de la recepción de una trama tengan alguna trama en la ventana de transmisión, y en otro caso lo hacen mediante tramas de control (es decir, si cuando llega una trama a la estación X, esta estación X tiene alguna trama para transmitir, pero que todavı́a no haya empezado a transmitir, incluye un asentimiento en su cabecera). Por otra parte, el tamaño de la ventana es el máximo que permite la clase de procedimiento. Dibuja los cronogramas de intercambio de tramas entre las estaciones, que responden a la siguiente descripción verbal. Nota: Utiliza la notación estándar para representar las tramas (en particular, las tramas de información se representan I,N(S),N(R),[P/F] y las tramas de control se representan, por ejemplo, RR N(R),[P/F], donde aparece P si el bit P está puesto a 1, F si es el bit F el que es 1, o nada si el bit P/F es 0). Además, cuida la numeración de las tramas, que no se reinicia en cada apartado. (a) La estación A solicita establecer la conexión, comenzando en t = 0τ , y la estación B acepta. (b) El usuario de enlace en la estación A pasa datos que permiten formar cinco tramas, en t = 12τ , que son transmitidas y llegan bien. El usuario de enlace de la estación B pasa datos que permiten formar dos tramas, en t = 19τ , que son transmitidas y llegan bien. (c) En el instante t = 35τ la estación A tendrá de nuevo cuatro tramas que transmitir. Todas ellas son transmitidas pero la tercera de éstas no llega, aunque el protocolo consigue arreglarlo. (d) La estación B tendrá de nuevo una trama que transmitir en el tiempo t = 65τ , pero aunque se transmite, no llega. Sin embargo, el protocolo consigue arreglarlo. (e) En el instante t = 105τ , la estación B inicia la desconexión, pero su petición llega corrupta a A. El protocolo consigue arreglar esta situación, hasta que finalmente se logra la desconexión. 3.1.21. Problema 21 El siguiente problema se trata nuevamente de un problema abierto. Utiliza tus apuntes de HDLC para resolverlo. Dos estaciones, A y B, utilizan la clase de procedimiento HDLC denominada BA 2,8,10 para comunicarse en el nivel de enlace de datos. Se asume por simplicidad que todas las tramas de información son iguales, y también que las de control y no numeradas tienen igual tamaño. El tiempo de procesamiento en las estaciones se considera nulo. El temporizador se arraca al acabar de transmitir una trama, y su valor es cuatro veces el tiempo de propagación (ttemp = 4tprop ). Si vence un temporizador las estaciones realizan un sondeo, pero no se pueden tener dos sondeos pendientes (no se realiza un sondeo mientras no se ha recibido respuesta al anterior). Por otra parte, las estaciones confirman las tramas mediante piggybacking siempre que en el momento de la recepción de una trama tengan alguna trama en la ventana de 10 transmisión, y en otro caso lo hacen mediante tramas de control (es decir, si cuando llega una trama a la estación X, esta estación X tiene alguna trama para transmitir, pero que todavı́a no haya empezado a transmitir, incluye un asentimiento en su cabecera). Por otra parte, el tamaño de la ventana es el máximo que permite la clase de procedimiento. La figura 2 ilustra parte del intercambio de datos. Completa el cronograma, etiquetando todas las tramas, y atendiendo también a las explicaciones dadas en cada apartado. Nota: Utiliza la notación estándar para representar las tramas (en particular, las tramas de información se representan I,N(S),N(R),[P/F] y las tramas de control se representan, por ejemplo, RR N(R),[P/F], donde aparece P si el bit P está puesto a 1, F si es el bit F el que es 1, o nada si el bit P/F es 0). (a) La estación A solicita establecer la conexión, comenzando en t = 0τ , que la estación B acepta. (b) El usuario de enlace en la estación A pasa datos que permiten formar cuatro tramas, en t = 12τ , que son transmitidas y llegan bien. La confirmación emitida por B para la segunda de esas tramas no llega. (c) La estación B transmite dos tramas en t = 35τ , pero la confirmación emitida por A para la segunda de esas tramas no llega. (d) La estación B tiene una trama que transmitir en el instante t = 65τ , que se transmite y llega bien. También en t = 65τ la estación A tendrá de nuevo cinco tramas que transmitir. Todas ellas son transmitidas pero la cuarta de éstas no llega, aunque el protocolo consigue arreglarlo. (e) En el instante t = 100τ la estación B tiene datos como para formar dos tramas, de las cuales la primera no llega y la segunda sı́. Además, en el momento t = 111τ se produce una perturbación que hace que se pierda todo lo que hay en el enlace en ese momento. (f ) En el instante t = 140τ , la estación B inicia la desconexión, que es aceptada por A. 3.1.22. Problema 22 El siguiente problema es otro problema abierto. Utiliza tus apuntes de HDLC para resolverlo. Dos estaciones, A y B, utilizan la clase de procedimiento HDLC denominada BA 3,8 para comunicarse en el nivel de enlace de datos. Se asume por simplicidad que todas las tramas de información son iguales, y también que las de control y no numeradas tienen igual longitud. El valor del temporizador es seis veces el tiempo de propagación (ttemp = 6tprop ). El tiempo de procesamiento en las estaciones se considera nulo. Si vence un temporizador las estaciones realizan un sondeo. Por otra parte, las estaciones confirman las tramas mediante piggybacking siempre que en el momento de la recepción de una trama tengan alguna trama en la ventana de transmisión, y en otro caso lo hacen mediante tramas de control (es decir, si cuando llega una trama a la estación X, esta estación X tiene alguna trama para transmitir, pero que todavı́a no haya empezado a transmitir, incluye un asentimiento en su cabecera). Por otra parte, el tamaño de la ventana es el máximo que permite la clase de procedimiento. La figura 3 ilustra parte del intercambio de datos. Completa el cronograma, etiquetando todas las tramas, y atendiendo también a las explicaciones dadas en cada apartado. Nota: Utiliza la notación estándar para representar las tramas (en particular, las tramas de información se representan I,N(S),N(R),[P/F] y las tramas de control se representan, por ejemplo, RR N(R),[P/F], donde aparece P si el bit P está puesto a 1, F si es el bit F el que es 1, o nada si el bit P/F es 0). 11 0 ..................... 0 50 ..................... 50 100 ..................... 100 5 ..................... 5 55 ..................... 55 105 ..................... 105 10 ..................... 10 60 ..................... 60 110 ..................... 110 15 ..................... 15 65 ..................... 65 115 ..................... 115 20 ..................... 20 70 ..................... 70 120 ..................... 120 25 .....................25 75 .....................75 125 .....................125 30 ..................... 30 80 ..................... 80 130 ..................... 130 35 ..................... 35 85 ..................... 85 135 ..................... 135 40 ..................... 40 90 ..................... 90 140 ..................... 140 45 ..................... 45 95 ..................... 95 145 ..................... 145 50 ..................... 50 100 ..................... 100 150 ..................... 150 Figura 2: Cronograma inicializado para el problema 21. 12 (a) La estación A solicita establecer la conexión, comenzando en t = 0τ , que la estación B acepta. (b) La estación A tiene ocho tramas que transmitir a partir de t = 10τ , mientras que la estación B tiene seis también a partir de t = 10τ . (c) El usuario de enlace en la estación A pasa datos que permiten formar dos tramas, en t = 40τ , que son transmitidas, pero la segunda no llega bien. Sin embargo, el protocolo consigue arreglarlo. (d) En el instante t = 78τ la estación A tiene dos tramas que transmitir. También en ese mismo instante la estación B tiene dos tramas que transmitir. Sin embago, en t = 79τ se produce una perturbación en el medio, que corrompe todo lo que en ese momento está en él. (e) En el instante t = 110τ , la estación A tiene cinco tramas para transmitir, que llegarán bien a su destino. Sin embargo, por problemas en B, esta estación tarda 2τ en generar el asentimiento de cada una de estas tramas (es decir, recibe la trama, espera 2τ , y luego comienza a transmitir el asentimiento). (f ) En el instante t = 140τ , la estación A inicia la desconexión, que es aceptada por B. 3.1.23. Problema 23 El siguiente problema tambén es un problema abierto. Utiliza tus apuntes de HDLC para resolverlo. Dos estaciones, A y B, utilizan la clase de procedimiento HDLC denominada BA 2,8 para comunicarse en el nivel de enlace de datos. Se asume por simplicidad que todas las tramas de información tienen igual tamaño, y también que las de control y no numeradas tienen igual tamaño (pero distinto de las tramas de información). El tiempo de procesamiento en las estaciones se considera nulo. El temporizador se arraca al acabar de transmitir una trama, y su valor es tres veces la suma del tiempo de trama más el tiempo de propagación (ttemp = 3(ttrama−I + tprop )). Si vence un temporizador las estaciones realizan un sondeo, pero no se pueden tener dos sondeos pendientes (no se realiza un sondeo mientras no se ha recibido respuesta al anterior). Por otra parte, las estaciones confirman las tramas mediante piggybacking siempre que en el momento de la recepción de una trama tengan alguna trama en la ventana de transmisión, y en otro caso lo hacen mediante tramas de control (es decir, si cuando llega una trama a la estación X, esta estación X tiene alguna trama para transmitir, pero que todavı́a no haya empezado a transmitir, incluye un asentimiento en su cabecera). Si ocurren simultáneamente el final de la recepción de una trama y el comienzo de la transmisión de otra, se trata primero el evento de recepción. Por otra parte, el tamaño de la ventana es el máximo que permite la clase de procedimiento. La figura 4 ilustra parte del intercambio de datos. Cada apartado es independiente del anterior, y por lo tanto la numeración no es consecutiva, pero todos los apartados comienzan y terminan en una situación en la que no hay ninguna trama pendiente de confirmar. Completa el conograma, añadiendo tramas si lo consideras necesario, y etiquetando todas las tramas Nota: Utiliza la notación estándar para representar las tramas (en particular, las tramas de información se representan I,N(S),N(R),[P/F] y las tramas de control se representan, por ejemplo, RR N(R),[P/F], donde aparece P si el bit P está puesto a 1, F si es el bit F el que es 1, o nada si el bit P/F es 0). 13 0 ..................... 0 50 ..................... 50 100 ..................... 100 5 ..................... 5 55 ..................... 55 105 ..................... 105 10 ..................... 10 60 ..................... 60 110 ..................... 110 15 ..................... 15 65 ..................... 65 115 ..................... 115 20 ..................... 20 70 ..................... 70 120 ..................... 120 25 .....................25 75 .....................75 125 .....................125 30 ..................... 30 80 ..................... 80 130 ..................... 130 35 ..................... 35 85 ..................... 85 135 ..................... 135 40 ..................... 40 90 ..................... 90 140 ..................... 140 45 ..................... 45 95 ..................... 95 145 ..................... 145 50 ..................... 50 100 ..................... 100 150 ..................... 150 Figura 3: Cronograma inicializado para el problema 22. 14 ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... I,1,4 I,3,0 RR I,2,0 I,3,1 ..................... I,1,4 ..................... ..................... ..................... ..................... ..................... ..................... I,7,2 I,6,6 ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... Figura 4: Cronograma para completar en el problema 23. La tercera columna puede usarse como reserva, si te equivocas en alguno de los cinco apartados. 15 (a) Este apartado comienza en t = 0. (b) Este apartado comienza en t = 15τ . (c) Este apartado comienza en t = 34τ . (d) Este apartado comienza en t = 52τ . (e) Este apartado comienza en t = 80τ . 3.1.24. Problema 24 El siguiente problema es otro problema abierto. Utiliza tus apuntes de HDLC para resolverlo. Dos estaciones, A y B, utilizan la clase de procedimiento HDLC denominada BA 3,8 para comunicarse en el nivel de enlace de datos. Se asume por simplicidad que todas las tramas de información tienen igual tamaño, y también que las de control y no numeradas tienen igual tamaño (pero distinto de las tramas de información). El tiempo de procesamiento en las estaciones se considera nulo. El temporizador se arraca al acabar de transmitir una trama, y su valor es 18 unidades de tiempo (ttemp = 18τ ). Si vence un temporizador las estaciones realizan un sondeo, pero no se pueden tener dos sondeos pendientes (no se realiza un sondeo mientras no se ha recibido respuesta al anterior). Por otra parte, las estaciones confirman las tramas mediante piggybacking siempre que en el momento de la recepción de una trama tengan alguna trama en la ventana de transmisión, y en otro caso lo hacen mediante tramas de control (es decir, si cuando llega una trama a la estación X, esta estación X tiene alguna trama para transmitir, pero que todavı́a no haya empezado a transmitir, incluye un asentimiento en su cabecera). Si ocurren simultaneamente el final de la recepción de una trama y el comienzo de la transmisión de otra, se trata primero el evento de recepción. Por otra parte, el tamaño de la ventana es el máximo que permite la clase de procedimiento. La figura 5 ilustra parte del intercambio de datos. Cada apartado es independiente del anterior, y por lo tanto la numeración no es consecutiva, pero todos los apartados comienzan y terminan en una situación en la que no hay ninguna trama pendiente de confirmar. Completa el conograma, añadiendo tramas si lo consideras necesario, y etiquetando todas las tramas. Ningún apartado acaba con una desconexión. Nota: Utiliza la notación estándar para representar las tramas (en particular, las tramas de información se representan I,N(S),N(R),[P/F] y las tramas de control se representan, por ejemplo, RR N(R),[P/F], donde aparece P si el bit P está puesto a 1, F si es el bit F el que es 1, o nada si el bit P/F es 0). (a) Este apartado comienza en t = 0. De los asentimientos que genera la estación B, considera que los dos primeros se pierden. (b) Este apartado comienza en t = 20τ . (c) Este apartado comienza en t = 39τ . (d) Este apartado comienza en t = 53τ . (e) Este apartado comienza en t = 70τ . 3.2. Cuestiones A continuación se plantean una serie de cuestiones sobre las que deberı́as reflexionar: 16 ..................... ..................... ..................... ..................... I,2,4 ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... I,4,2 ..................... RR1 ..................... I,5,5 I,3,7 ..................... ..................... ..................... RR ..................... ..................... ..................... ..................... ..................... ..................... I,2,2 ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... Figura 5: Cronograma para completar en el problema 24. La tercera columna puede usarse como reserva, si te equivocas en alguno de los cinco apartados. 17 Intenta inventar escenarios en los que aplicar un algoritmo de control de flujo. Puedes combinar lo siguiente: el transmisor es más rápido/más lento que el receptor, el transmisor tiene mucho/poco que transmitir, las tramas son muy largas/muy cortas, la transmisión se hace a ráfagas/de forma homogénea. . . Reflexiona sobre el rendimiento de las distintas alternativas. Introduce la posibilidad de que se produzcan errores, y reflexiona sobre el rendimiento de los protocolos, cómo mejorarlo, y los problemas que encontrarı́an las mejoras. Piensa problemas en los que hay una estación intermedia, como en el problema 8. Utiliza distintas soluciones en cada enlace, y reflexiona sobre la conveniencia de cada una. En los mismos escenarios, describe la secuencia de tramas intercambiadas cuando el protocolo utilizado es HDLC. Reflexiona sobre el modo de transferencia más adecuado en cada uno de los escenarios. Referencias [LG00] A. León-Garcı́a and I. Widjaja. Communication networks: fundamental concepts and key architectures. McGraw-Hill Higher Education, 2000. [Sta00] W. Stallings. Comunicaciones y redes de computadoras. Prentice Hall, Madrid, 6a edición, 2000. Versión original en inglés de 2000. [Ste94] W.R. Stevens. TCP/IP illustrated, vol. 1: the protocols. Addison Wesley, Reading, MA, 1994. [Tan03] A.S. Tanenbaum. Redes de computadoras. Prentice Hall Hispanoamericana, México, 4a edición, 2003. Versión original en inglés de 2003. 18