Enlace de datos Enlace de datos José M. Barceló Ordinas Llorenç Cerdà Alabern José M. Barceló Ordinas Llorenç Cerdà Alabern P03/75098/02118 P03/75098/02118 FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 Índice Índice Introducción .............................................................................................. 5 Introducción .............................................................................................. 5 Objetivos ..................................................................................................... 6 Objetivos ..................................................................................................... 6 1. Descripción del nivel de enlace ....................................................... 7 1.1. Montaje de las tramas ....................................................................... 8 1. Descripción del nivel de enlace ....................................................... 7 1.1. Montaje de las tramas ....................................................................... 8 1.2. Sincronismo de trama ....................................................................... 8 1.2. Sincronismo de trama ....................................................................... 8 1.2.1. Mecanismo de transparencia ................................................ 10 1.2.1. Mecanismo de transparencia ................................................ 10 2. Detección de errores ........................................................................... 12 2.1. Distancia de Hamming ..................................................................... 13 2. Detección de errores ........................................................................... 12 2.1. Distancia de Hamming ..................................................................... 13 2.2. Capacidad de detección de una ráfaga de error ............................... 14 2.2. Capacidad de detección de una ráfaga de error ............................... 14 2.3. Probabilidad de que una combinación arbitraria 2.3. Probabilidad de que una combinación arbitraria de bits sea aceptada como palabra válida ......................................... 14 de bits sea aceptada como palabra válida ......................................... 14 2.4. Control de paridad ........................................................................... 15 2.4. Control de paridad ........................................................................... 15 2.5. Códigos de paridad longitudinal y transversal ................................ 16 2.5. Códigos de paridad longitudinal y transversal ................................ 16 2.6. Códigos detectores de errores CRC ................................................... 18 2.6. Códigos detectores de errores CRC ................................................... 18 2.7. Códigos correctores de errores .......................................................... 19 2.7. Códigos correctores de errores .......................................................... 19 3. Control de errores ............................................................................... 21 3.1. Diagramas de tiempo ........................................................................ 22 3. Control de errores ............................................................................... 21 3.1. Diagramas de tiempo ........................................................................ 22 3.2. Evaluación de los protocolos: eficiencia .......................................... 24 3.2. Evaluación de los protocolos: eficiencia .......................................... 24 3.3. Protocolo Stop & Wait ....................................................................... 25 3.3. Protocolo Stop & Wait ....................................................................... 25 3.3.1. Protocolo Stop & Wait con retransmisiones implícitas ......... 26 3.3.1. Protocolo Stop & Wait con retransmisiones implícitas ......... 26 3.3.2. Protocolo Stop & Wait con retransmisiones explícitas ......... 27 3.3.2. Protocolo Stop & Wait con retransmisiones explícitas ......... 27 3.3.3. Necesidad de numerar las tramas y las confirmaciones ....... 28 3.3.3. Necesidad de numerar las tramas y las confirmaciones ....... 28 3.3.4. Cálculo de la eficiencia del protocolo Stop & Wait ............... 29 3.3.4. Cálculo de la eficiencia del protocolo Stop & Wait ............... 29 3.4. Protocolos de transmisión continua ................................................ 31 3.4. Protocolos de transmisión continua ................................................ 31 3.4.1. Retransmisión selectiva ......................................................... 32 3.4.1. Retransmisión selectiva ......................................................... 32 3.4.2. Protocolo Go back N .............................................................. 35 3.4.2. Protocolo Go back N .............................................................. 35 4. Control de flujo ................................................................................... 37 4.1. Protocolos de ventana ...................................................................... 37 4. Control de flujo ................................................................................... 37 4.1. Protocolos de ventana ...................................................................... 37 4.2. Dimensionado de la lista de transmisión ......................................... 38 4.2. Dimensionado de la lista de transmisión ......................................... 38 4.3. Ventana de recepción ....................................................................... 38 4.3. Ventana de recepción ....................................................................... 38 4.4. Ventana óptima ................................................................................ 39 4.4. Ventana óptima ................................................................................ 39 4.5. Dimensionamiento del campo de los identificadores de trama ...... 40 4.5. Dimensionamiento del campo de los identificadores de trama ...... 40 5. Otras consideraciones sobre el nivel de enlace ............................ 43 5.1. Piggybacking ....................................................................................... 43 5. Otras consideraciones sobre el nivel de enlace ............................ 43 5.1. Piggybacking ....................................................................................... 43 Enlace de datos FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 5.2. Sincronismo de protocolo ................................................................. 44 5.2. Sincronismo de protocolo ................................................................. 44 5.3. Importancia del nivel de enlace según el contexto ......................... 45 5.3. Importancia del nivel de enlace según el contexto ......................... 45 5.4. Multiplexación en el nivel de enlace ............................................... 47 5.4. Multiplexación en el nivel de enlace ............................................... 47 6. Ejemplo: el protocolo HDLC ............................................................. 49 6. Ejemplo: el protocolo HDLC ............................................................. 49 Resumen ...................................................................................................... 52 Resumen ...................................................................................................... 52 Ejercicios de autoevaluación ................................................................. 53 Ejercicios de autoevaluación ................................................................. 53 Solucionario ............................................................................................... 55 Solucionario ............................................................................................... 55 Glosario ....................................................................................................... 59 Glosario ....................................................................................................... 59 Bibliografía ................................................................................................ 60 Bibliografía ................................................................................................ 60 Anexos ......................................................................................................... 61 Anexos ......................................................................................................... 61 Enlace de datos FUOC • P03/75098/02118 5 Enlace de datos FUOC • P03/75098/02118 5 Introducción Introducción Tanto en las redes de gran alcance com en las de área local hemos hablado de Tanto en las redes de gran alcance com en las de área local hemos hablado de conexiones punto a punto. Se trata del enlace que une directamente entre sí conexiones punto a punto. Se trata del enlace que une directamente entre sí dos entidades sobre el cual se transmiten datis. También tienen sentido los en- dos entidades sobre el cual se transmiten datis. También tienen sentido los en- laces punto a punto por sí mismos y no como elementos de una red, por ejem- laces punto a punto por sí mismos y no como elementos de una red, por ejem- plo cuando se pretende conectar un ordenador y una impresora. plo cuando se pretende conectar un ordenador y una impresora. La conexión punto a punto se hace con medios de transmisión que, como ve- La conexión punto a punto se hace con medios de transmisión que, como ve- remos en el módulo siguiente, en general no son perfectos y están sometidos a remos en el módulo siguiente, en general no son perfectos y están sometidos a diferentes fenómenos físicos que acaban produciendo errores de transmisión. diferentes fenómenos físicos que acaban produciendo errores de transmisión. En otras palabras, los bits que se reciben al otro extremo de una conexión no En otras palabras, los bits que se reciben al otro extremo de una conexión no son exactamente los mismos que se han transmitido desde el otro. son exactamente los mismos que se han transmitido desde el otro. El nivel de enlce es el encargado de detectar estos errores e intentar, de alguna El nivel de enlce es el encargado de detectar estos errores e intentar, de alguna manera, solucionarlos, corrigiéndolos o solicitando la retransmisión de las tra- manera, solucionarlos, corrigiéndolos o solicitando la retransmisión de las tra- mas erróneas recibidas. Veremos los diferentes mecanismos de retransmisión mas erróneas recibidas. Veremos los diferentes mecanismos de retransmisión y a qué casos se adecuan. y a qué casos se adecuan. El control de errores comporta un cierto procesamiento en la transmisión y la El control de errores comporta un cierto procesamiento en la transmisión y la recepción. Por ello, se debe añadir un control de flujo, para poder abortar el recepción. Por ello, se debe añadir un control de flujo, para poder abortar el proceso si la velocidad de llegada de trams a un terminal es superior a la velo- proceso si la velocidad de llegada de trams a un terminal es superior a la velo- cidad de procesamiento de dicho terminal. cidad de procesamiento de dicho terminal. Enlace de datos FUOC • P03/75098/02118 6 Enlace de datos FUOC • P03/75098/02118 6 Objetivos Objetivos El estudio de los materials didácticos de este módulo ha de permitir que el es- El estudio de los materials didácticos de este módulo ha de permitir que el es- tudiante alcance los objetivos siguientes: tudiante alcance los objetivos siguientes: 1. Asimilar los conceptos de trama y sincronización de trama. 1. Asimilar los conceptos de trama y sincronización de trama. 2. Aprender los principios básicos de la detección de errores y conocer las téc- 2. Aprender los principios básicos de la detección de errores y conocer las téc- nicas más habituales de hacerlo. 3. Conocer los protocolos que se usan para la recuperación de errores: Stop & Wait, Go Back N y retransmisión selectiva. nicas más habituales de hacerlo. 3. Conocer los protocolos que se usan para la recuperación de errores: Stop & Wait, Go Back N y retransmisión selectiva. 4. Evaluar la eficiencia de los protocolos que se usan para la recuperación 4. Evaluar la eficiencia de los protocolos que se usan para la recuperación de errores a un nivel básico, asumiendo que no se producen errores de de errores a un nivel básico, asumiendo que no se producen errores de transmisión. transmisión. 5. Conocer los mecanismos de control de flujo, estudiar los conceptos de 5. Conocer los mecanismos de control de flujo, estudiar los conceptos de ventana de transmisión y ventana de recepción y saber calcular la venta- ventana de transmisión y ventana de recepción y saber calcular la venta- na óptima. na óptima. Enlace de datos FUOC • P03/75098/02118 7 Enlace de datos 1. Descripción del nivel de enlace El nivel de enlace o DLC* es el software que controla la transmisión de información sobre el flujo no fiable de bits del nivel físico. En este apartado profun- FUOC • P03/75098/02118 7 1. Descripción del nivel de enlace * DLC es la sigla de la expresión inglesa Data Link Control. El nivel de enlace o DLC* es el software que controla la transmisión de información sobre el flujo no fiable de bits del nivel físico. En este apartado profun- dizaremos en este concepto y en la unidad de transmisión de información del dizaremos en este concepto y en la unidad de transmisión de información del nivel de enlace: la trama. nivel de enlace: la trama. Igual que en los otros niveles de la arquitectura de comunicaciones (excepto el nivel físico), el nivel de enlace consiste en dos programas o procesos que se ejecutan en computadores diferentes y que se comunican entre sí. Para que estos dos procesos se puedan comunicar es necesario establecer: • un formato para la información que se intercambian; • un conjunto de reglas de comportamiento. Enlace de datos Proceso En el contexto informático se denomina proceso a un programa en ejecución. Este concepto se utiliza normalmente en entornos multitarea, es decir, en los que puede haber muchos programas ejecutándose simultáneamente en el computador. Igual que en los otros niveles de la arquitectura de comunicaciones (excepto el nivel físico), el nivel de enlace consiste en dos programas o procesos que se ejecutan en computadores diferentes y que se comunican entre sí. Para que estos dos procesos se puedan comunicar es necesario establecer: • un formato para la información que se intercambian; • un conjunto de reglas de comportamiento. El DLC está formado por el conjunto de protocolos necesarios para la transmi- El DLC está formado por el conjunto de protocolos necesarios para la transmi- sión de datos sobre un enlace de comunicación punto a punto. En este módu- sión de datos sobre un enlace de comunicación punto a punto. En este módu- lo nos referiremos a cada uno de estos procesos como DLC, entidad de nivel de lo nos referiremos a cada uno de estos procesos como DLC, entidad de nivel de enlace o simplemente nivel de enlace. enlace o simplemente nivel de enlace. Una de las funciones básicas del nivel de enlace es el control de errores, por- Una de las funciones básicas del nivel de enlace es el control de errores, por- que asumimos que el medio de transmisión que hay “por debajo” no es per- que asumimos que el medio de transmisión que hay “por debajo” no es per- fecto e introduce errores de transmisión. Para hacer el control de errores es fecto e introduce errores de transmisión. Para hacer el control de errores es necesario destinar una parte de los bits que se intercambian los DLC a la de- necesario destinar una parte de los bits que se intercambian los DLC a la de- tección y la posterior gestión de los errores. Esto implica que el DLC debe ser tección y la posterior gestión de los errores. Esto implica que el DLC debe ser capaz de distinguir los bits que forman parte de los datos de información de capaz de distinguir los bits que forman parte de los datos de información de los que forman parte de los datos de control. Para conseguirlo, el DLC organiza los que forman parte de los datos de control. Para conseguirlo, el DLC organiza los datos en unas estructuras denominadas tramas (frames, en inglés). los datos en unas estructuras denominadas tramas (frames, en inglés). Las tramas son estructuras ordenadas de bits organizados en campos. Según la po- Las tramas son estructuras ordenadas de bits organizados en campos. Según la po- sición de los bits en la trama, el DLC puede reconocer el campo al que pertenecen. sición de los bits en la trama, el DLC puede reconocer el campo al que pertenecen. Hay campos con bits de información y campos con bits de control. Hay campos con bits de información y campos con bits de control. Se puede dar el caso de que el nivel de enlace reciba las tramas más rápidamen- Se puede dar el caso de que el nivel de enlace reciba las tramas más rápidamen- te de lo que es capaz de procesarlas. En este caso se tiene que “frenar” el nivel te de lo que es capaz de procesarlas. En este caso se tiene que “frenar” el nivel de enlace remoto para evitar que la memoria temporal en la que están alma- de enlace remoto para evitar que la memoria temporal en la que están alma- cenadas las tramas pendientes de procesar se agote. Esta función se conoce cenadas las tramas pendientes de procesar se agote. Esta función se conoce como control de flujo. como control de flujo. Las tareas básicas del nivel de enlace son las siguientes: Las tareas básicas del nivel de enlace son las siguientes: • La gestión de las tramas. • La gestión de las tramas. • El control de errores. • El control de errores. • El control de flujo. • El control de flujo. * DLC es la sigla de la expresión inglesa Data Link Control. Proceso En el contexto informático se denomina proceso a un programa en ejecución. Este concepto se utiliza normalmente en entornos multitarea, es decir, en los que puede haber muchos programas ejecutándose simultáneamente en el computador. FUOC • P03/75098/02118 8 Enlace de datos FUOC • P03/75098/02118 8 1.1. Montaje de las tramas 1.1. Montaje de las tramas Las tramas contienen bits de datos y bits de control. Esta información de con- Las tramas contienen bits de datos y bits de control. Esta información de con- trol se estructura en campos, algunos de los cuales están antes de los datos, la trol se estructura en campos, algunos de los cuales están antes de los datos, la cabecera, y otros detrás: la cola. cabecera, y otros detrás: la cola. Qué campos hay, de qué tamaño son y su significado depende de las implementaciones del nivel de enlace. En general, habrá un campo donde esté la Podéis ver un ejemplo concreto de DLC, el HDLC en el apartado 6 de este módulo didáctico. Qué campos hay, de qué tamaño son y su significado depende de las implementaciones del nivel de enlace. En general, habrá un campo donde esté la longitud de la trama, un campo con el tipo de datos que transporta y, como longitud de la trama, un campo con el tipo de datos que transporta y, como decíamos antes, la información adicional necesaria para hacer el control de decíamos antes, la información adicional necesaria para hacer el control de errores. errores. En el contexto de las arquitecturas de protocolos como OSI, el nivel de enlace En el contexto de las arquitecturas de protocolos como OSI, el nivel de enlace está por debajo del nivel de red. Esto quiere decir que los datos que van inser- está por debajo del nivel de red. Esto quiere decir que los datos que van inser- tados en las tramas son paquetes de red. tados en las tramas son paquetes de red. 1.2. Sincronismo de trama 1.2. Sincronismo de trama Hasta ahora hemos hablado siempre del nivel físico como un medio capaz de Hasta ahora hemos hablado siempre del nivel físico como un medio capaz de transportar un flujo de bits. En muchos casos, ésta es una descripción correcta transportar un flujo de bits. En muchos casos, ésta es una descripción correcta de la visión que tiene el nivel de enlace del nivel físico. Hay, sin embargo, al- de la visión que tiene el nivel de enlace del nivel físico. Hay, sin embargo, al- gunos medios físicos que tienen como unidad de transmisión el carácter, que gunos medios físicos que tienen como unidad de transmisión el carácter, que se define como un bloque fijo de bits*. Este caso se conoce con el nombre de transmisión orientada a carácter. * Normalmente cada carácter es de 8 bits. se define como un bloque fijo de bits*. Este caso se conoce con el nombre de transmisión orientada a carácter. De hecho, se habla de dos tipos de protocolos, uno para cada uno de los tipos De hecho, se habla de dos tipos de protocolos, uno para cada uno de los tipos de transmisión mencionados: de transmisión mencionados: • Un protocolo orientado a carácter es un protocolo de nivel de enlace di- • Un protocolo orientado a carácter es un protocolo de nivel de enlace di- señado para ir sobre una transmisión orientada a carácter. • Un protocolo orientado a bit es un protocolo de nivel de enlace diseñado para ir sobre una transmisión orientada a bit. señado para ir sobre una transmisión orientada a carácter. • Un protocolo orientado a bit es un protocolo de nivel de enlace diseñado para ir sobre una transmisión orientada a bit. Enlace de datos Podéis ver un ejemplo concreto de DLC, el HDLC en el apartado 6 de este módulo didáctico. * Normalmente cada carácter es de 8 bits. FUOC • P03/75098/02118 9 Enlace de datos FUOC • P03/75098/02118 9 El sincronismo de trama (en inglés, framing) es el mecanismo que uti- El sincronismo de trama (en inglés, framing) es el mecanismo que uti- liza el nivel de enlace para determinar el inicio y el final de una trama liza el nivel de enlace para determinar el inicio y el final de una trama dentro del flujo de bits o caracteres que llega del nivel físico. dentro del flujo de bits o caracteres que llega del nivel físico. Para poder determinar el inicio y el final de trama es necesario marcarlos de Para poder determinar el inicio y el final de trama es necesario marcarlos de alguna manera. La solución adoptada depende del tipo de transmisión: alguna manera. La solución adoptada depende del tipo de transmisión: 1) Para indicar el inicio de trama: 1) Para indicar el inicio de trama: • Si la transmisión es orientada a carácter, el inicio de trama se indica con un • Si la transmisión es orientada a carácter, el inicio de trama se indica con un carácter especial denominado carácter de inicio de trama. carácter especial denominado carácter de inicio de trama. • Si la transmisión es orientada a bit, se indica con una combinación especial • Si la transmisión es orientada a bit, se indica con una combinación especial de bits denominada indicador (flag) de inicio de trama. de bits denominada indicador (flag) de inicio de trama. 2) Para indicar el final de trama hay dos técnicas: 2) Para indicar el final de trama hay dos técnicas: a) Utilizar un carácter especial denominado carácter de final de trama o una a) Utilizar un carácter especial denominado carácter de final de trama o una combinación especial de bits llamada indicador (flag) de final de trama, se- combinación especial de bits llamada indicador (flag) de final de trama, se- gún si la transmisión es orientada a bit o a carácter. gún si la transmisión es orientada a bit o a carácter. b) Utilizar un campo de longitud que indica la medida de la trama. b) Utilizar un campo de longitud que indica la medida de la trama. Algunos protocolos utilizan las dos técnicas conjuntamente para llevar a Algunos protocolos utilizan las dos técnicas conjuntamente para llevar a cabo el control de errores. De este modo, si el carácter de final de trama o cabo el control de errores. De este modo, si el carácter de final de trama o el indicador, según el caso, no llega al final de la trama indicado por el cam- el indicador, según el caso, no llega al final de la trama indicado por el cam- po de longitud, se detecta un error de delimitación de trama, o error de po de longitud, se detecta un error de delimitación de trama, o error de framing. framing. Ejemplos de sincronización de trama Ejemplos de sincronización de trama Presentamos un par de casos en los que se utiliza la sincronización de trama, según el tipo de transmisión del que se disponga: Presentamos un par de casos en los que se utiliza la sincronización de trama, según el tipo de transmisión del que se disponga: 1) Sincronización de trama en una transmisión orientada a carácter Tanto el código ASCII como el código EBCDIC tienen los caracteres de control STX (del inglés Start of TeXt) y ETX (del inglés End of TeXt). Algunos de los protocolos orientados a carácter más extendidos utilizan estos caracteres en el sincronismo de trama. La figura siguiente muestra cómo sería el sincronismo de trama con estos dos caracteres: Enlace de datos Protocolo BSC Uno de los protocolos orientados a carácter más conocidos lo desarrolló IBM. El nombre de este protocolo es binary sinchronous control (bysinc o BSC). Este protocolo utiliza los caracteres STX y ETX en la sincronización de las tramas. 1) Sincronización de trama en una transmisión orientada a carácter Tanto el código ASCII como el código EBCDIC tienen los caracteres de control STX (del inglés Start of TeXt) y ETX (del inglés End of TeXt). Algunos de los protocolos orientados a carácter más extendidos utilizan estos caracteres en el sincronismo de trama. La figura siguiente muestra cómo sería el sincronismo de trama con estos dos caracteres: Protocolo BSC Uno de los protocolos orientados a carácter más conocidos lo desarrolló IBM. El nombre de este protocolo es binary sinchronous control (bysinc o BSC). Este protocolo utiliza los caracteres STX y ETX en la sincronización de las tramas. FUOC • P03/75098/02118 10 Enlace de datos 2) Sincronización de trama en una transmisión orientada a bit Como ejemplo de sincronización de trama, consideraremos la figura siguiente, que muestra los indicadores que utiliza el protocolo HDLC: En el protocolo HDLC se define el indicador de final de trama con el mismo conjunto de bits que el de inicio de trama. El protocolo permite que, si hay dos tramas consecutivas, el indicador de final de trama sea también el de inicio de trama de la siguiente, y así se ahorra la transmisión de este indicador. FUOC • P03/75098/02118 10 Enlace de datos 2) Sincronización de trama en una transmisión orientada a bit Podéis ver una descripción del protocolo HDLC en el apartado 6 de este módulo didáctico. Como ejemplo de sincronización de trama, consideraremos la figura siguiente, que muestra los indicadores que utiliza el protocolo HDLC: En el protocolo HDLC se define el indicador de final de trama con el mismo conjunto de bits que el de inicio de trama. El protocolo permite que, si hay dos tramas consecutivas, el indicador de final de trama sea también el de inicio de trama de la siguiente, y así se ahorra la transmisión de este indicador. 1.2.1. Mecanismo de transparencia 1.2.1. Mecanismo de transparencia Dado que los datos de información que transporta la trama son arbitrarios, si Dado que los datos de información que transporta la trama son arbitrarios, si no se utiliza el campo de longitud se puede dar el caso de que, en una trans- no se utiliza el campo de longitud se puede dar el caso de que, en una trans- misión orientada a carácter, uno de los caracteres de datos coincida con el ca- misión orientada a carácter, uno de los caracteres de datos coincida con el ca- rácter de final de trama. De la misma manera, en una transmisión orientada a rácter de final de trama. De la misma manera, en una transmisión orientada a bit puede darse el caso de que un conjunto de bits de datos coincida con el bit puede darse el caso de que un conjunto de bits de datos coincida con el indicador de final de trama. indicador de final de trama. Cualquiera de las dos situaciones mencionadas en el párrafo anterior se inter- Cualquiera de las dos situaciones mencionadas en el párrafo anterior se inter- pretaría erróneamente como el final de trama. Para evitarlo se utiliza un me- pretaría erróneamente como el final de trama. Para evitarlo se utiliza un me- canismo de transparencia. canismo de transparencia. Ejemplos de mecanismos de transparencia Ejemplos de mecanismos de transparencia Según los dos casos que acabamos de plantear, podemos encontrar mecanismos de transparencia como los que presentamos a continuación: Según los dos casos que acabamos de plantear, podemos encontrar mecanismos de transparencia como los que presentamos a continuación: 1) Mecanismo de transparencia en una transmisión orientada a carácter 1) Mecanismo de transparencia en una transmisión orientada a carácter El ejemplo de la figura siguiente muestra el mecanismo de transparencia del protocolo BSC. Para conseguir la transparencia se utiliza un tercer carácter, el DLE (del inglés, Data Link Escape). El ejemplo de la figura siguiente muestra el mecanismo de transparencia del protocolo BSC. Para conseguir la transparencia se utiliza un tercer carácter, el DLE (del inglés, Data Link Escape). Tal y como muestra la figura, los caracteres STX y ETX van precedidos de un DLE. Además, cada vez que el transmisor encuentra un DLE entre los datos de información, independientemente del carácter siguiente, lo envía insertando previamente otro DLE. Esta Tal y como muestra la figura, los caracteres STX y ETX van precedidos de un DLE. Además, cada vez que el transmisor encuentra un DLE entre los datos de información, independientemente del carácter siguiente, lo envía insertando previamente otro DLE. Esta Podéis ver una descripción del protocolo HDLC en el apartado 6 de este módulo didáctico. FUOC • P03/75098/02118 11 Enlace de datos FUOC • P03/75098/02118 11 técnica para conseguir la transparencia se conoce con el nombre de inserción de caracteres (en inglés, character stuffing). técnica para conseguir la transparencia se conoce con el nombre de inserción de caracteres (en inglés, character stuffing). Con respecto a la recepción, después de haber recibido los caracteres DLE-STX, se investiga cada uno de los caracteres de información recibidos. Si es un carácter DLE seguido de otro carácter DLE, se descarta uno de los caracteres DLE y se procesa el carácter siguiente (sin interpretar que iba precedido de un carácter DLE). Si es un carácter DLE seguido de un carácter ETX, se interpreta como final de trama. De esta manera: Con respecto a la recepción, después de haber recibido los caracteres DLE-STX, se investiga cada uno de los caracteres de información recibidos. Si es un carácter DLE seguido de otro carácter DLE, se descarta uno de los caracteres DLE y se procesa el carácter siguiente (sin interpretar que iba precedido de un carácter DLE). Si es un carácter DLE seguido de un carácter ETX, se interpreta como final de trama. De esta manera: a) El receptor elimina todos los caracteres de final de trama (DLE) sobrantes insertados por el transmisor. a) El receptor elimina todos los caracteres de final de trama (DLE) sobrantes insertados por el transmisor. b) Si resultara que dentro de los datos de información hubiese una secuencia DLE-ETX, la inserción del carácter DLE haría que el receptor no interpretara el carácter ETX como final de trama. b) Si resultara que dentro de los datos de información hubiese una secuencia DLE-ETX, la inserción del carácter DLE haría que el receptor no interpretara el carácter ETX como final de trama. 2) Mecanismo de transparencia en una transmisión orientada a bit 2) Mecanismo de transparencia en una transmisión orientada a bit La figura siguiente muestra el mecanismo de transparencia del protocolo HDLC. En este caso el indicador de delimitación de trama es 01111110: La figura siguiente muestra el mecanismo de transparencia del protocolo HDLC. En este caso el indicador de delimitación de trama es 01111110: La técnica consiste en añadir un 0 (los marcados en la figura) cuando hay cinco 1 seguidos, independientemente del bit que haya a continuación. La inserción de bits “extras” para conseguir la transparencia se conoce con el nombre de inserción de ceros o, en inglés, con el nombre de bit stuffing. La técnica consiste en añadir un 0 (los marcados en la figura) cuando hay cinco 1 seguidos, independientemente del bit que haya a continuación. La inserción de bits “extras” para conseguir la transparencia se conoce con el nombre de inserción de ceros o, en inglés, con el nombre de bit stuffing. En recepción, si llegan cinco 1 seguidos de un 0, el 0 se elimina y se procesa el bit siguiente sin tener en cuenta los cinco 1 anteriores. De esta manera: En recepción, si llegan cinco 1 seguidos de un 0, el 0 se elimina y se procesa el bit siguiente sin tener en cuenta los cinco 1 anteriores. De esta manera: a) El receptor elimina todos los 0 “extras” insertados por el transmisor. a) El receptor elimina todos los 0 “extras” insertados por el transmisor. b) Si se produjese la coincidencia de que dentro de los bits de información hubiera el indicador 01111110, la inserción del bit 0 haría que el receptor no lo interpretara como el final de trama. b) Si se produjese la coincidencia de que dentro de los bits de información hubiera el indicador 01111110, la inserción del bit 0 haría que el receptor no lo interpretara como el final de trama. Enlace de datos FUOC • P03/75098/02118 12 Enlace de datos 2. Detección de errores Supongamos que el nivel de enlace es capaz de delimitar perfectamente las tramas del flujo de bits que recibe del nivel físico. Ahora nos queda el problema de detectar cuáles de estas tramas tienen uno o más bits erróneos. En este apartado veremos algunos conceptos básicos de la detección de errores. Las tramas pueden tener una combinación de bits arbitraria. Por lo tanto, si hay error en un bit de la trama o más, la nueva combinación es otra posible trama. Así FUOC • P03/75098/02118 12 Enlace de datos 2. Detección de errores Lectura complementaria Para obtener más información sobre la detección de errores, podéis consultar la obra siguiente: D. Bertsekas; R. Gallager (1992). Data Networks. Upper Saddle River, Nueva Jersey: Prentice Hall. Supongamos que el nivel de enlace es capaz de delimitar perfectamente las tramas del flujo de bits que recibe del nivel físico. Ahora nos queda el problema de detectar cuáles de estas tramas tienen uno o más bits erróneos. En este apartado veremos algunos conceptos básicos de la detección de errores. Las tramas pueden tener una combinación de bits arbitraria. Por lo tanto, si hay error en un bit de la trama o más, la nueva combinación es otra posible trama. Así pues, sólo mirando los bits de la trama no es posible averiguar si hay alguno erró- pues, sólo mirando los bits de la trama no es posible averiguar si hay alguno erró- neo. Es necesario añadir bits extras que nos permitan la detección de errores. neo. Es necesario añadir bits extras que nos permitan la detección de errores. Los bits extras se calculan a partir de los bits que hay que proteger, tal y como Los bits extras se calculan a partir de los bits que hay que proteger, tal y como se explica a continuación. Observad, sin embargo, que al añadir estos bits es- se explica a continuación. Observad, sin embargo, que al añadir estos bits es- tamos utilizando más bits de los estrictamente necesarios para transmitir el pa- tamos utilizando más bits de los estrictamente necesarios para transmitir el pa- quete. Por este motivo se dice que los códigos detectores de errores se basan quete. Por este motivo se dice que los códigos detectores de errores se basan en añadir redundancia a los bits de datos que se quieren proteger. en añadir redundancia a los bits de datos que se quieren proteger. Supongamos que el tamaño de los datos que queremos proteger es de P Supongamos que el tamaño de los datos que queremos proteger es de P bits, y que añadimos Q para poder hacer la detección de errores. bits, y que añadimos Q para poder hacer la detección de errores. En este contexto se denomina código detector de errores, o simple- En este contexto se denomina código detector de errores, o simple- mente código, a la transformación que se aplica a los P bits que quere- mente código, a la transformación que se aplica a los P bits que quere- mos proteger para convertirlos en la nueva combinación de P + Q bits. mos proteger para convertirlos en la nueva combinación de P + Q bits. Nos referiremos a esta nueva combinación como palabra código. Nos referiremos a esta nueva combinación como palabra código. Esta transformación es biunívoca; es decir, a cada combinación determinada Esta transformación es biunívoca; es decir, a cada combinación determinada de los P bits que hay que proteger le corresponde una sola combinación de de los P bits que hay que proteger le corresponde una sola combinación de P + Q bits, y viceversa. P + Q bits, y viceversa. En este apartado nos referiremos a las tramas como palabras código, que es el En este apartado nos referiremos a las tramas como palabras código, que es el término que se utiliza en el contexto de la detección de errores. término que se utiliza en el contexto de la detección de errores. Observad que el número de palabras código válidas es igual al número de Observad que el número de palabras código válidas es igual al número de combinaciones posibles de los bits de los datos que queremos proteger (2P). En combinaciones posibles de los bits de los datos que queremos proteger (2P). En cambio, el número posible de palabras código es de 2P+Q. Las 2P+Q − 2Q com- cambio, el número posible de palabras código es de 2P+Q. Las 2P+Q − 2Q com- binaciones restantes son palabras código no válidas y no se utilizarán nunca binaciones restantes son palabras código no válidas y no se utilizarán nunca en transmisión (porque no pueden resultar nunca de la transformación que en transmisión (porque no pueden resultar nunca de la transformación que aplica el código a los P bits que deben protegerse). aplica el código a los P bits que deben protegerse). Detectamos que hay un error cuando los bits erróneos transforman una pa- Detectamos que hay un error cuando los bits erróneos transforman una pa- labra código válida en una no válida. Si como consecuencia de los bits erró- labra código válida en una no válida. Si como consecuencia de los bits erró- neos resulta otra palabra código válida, no detectaremos el error. neos resulta otra palabra código válida, no detectaremos el error. Lectura complementaria Para obtener más información sobre la detección de errores, podéis consultar la obra siguiente: D. Bertsekas; R. Gallager (1992). Data Networks. Upper Saddle River, Nueva Jersey: Prentice Hall. FUOC • P03/75098/02118 13 Enlace de datos FUOC • P03/75098/02118 13 Hay numerosos códigos detectores de error (los más utilizados se explicarán a Hay numerosos códigos detectores de error (los más utilizados se explicarán a continuación). Para compararlos, la medida ideal sería determinar la probabi- continuación). Para compararlos, la medida ideal sería determinar la probabi- lidad de que se produjera un error no detectado en la transmisión de una tra- lidad de que se produjera un error no detectado en la transmisión de una tra- ma. Desafortunadamente, esta probabilidad depende de las características del ma. Desafortunadamente, esta probabilidad depende de las características del medio de transmisión y del código detector de errores, por todo lo cual resulta medio de transmisión y del código detector de errores, por todo lo cual resulta difícil de determinar. difícil de determinar. Para medir empíricamente la probabilidad de una trama errónea no detectada tendríamos que contabilizar todas las tramas erróneas no detectadas y todas las tramas erróneas que se producen en el enlace. La relación entre estos dos valores sería la probabilidad buscada. A causa de las dificultades que comporta determinar la probabilidad de una trama errónea no detectada, consideraremos los tres parámetros para medir la robustez de un código detector de errores que se explican a continuación: • La distancia mínima del código (distancia de Hamming del código). No confundáis... ... la probabilidad de error en una trama con la probabilidad de una trama errónea no detectada. La probabilidad de error en una trama depende exclusivamente del medio. La probabilidad de una trama errónea no detectada es mucho más difícil de calcular porque depende, además, del código detector de errores. El código detector ideal detectaría todas las tramas erróneas. Para medir empíricamente la probabilidad de una trama errónea no detectada tendríamos que contabilizar todas las tramas erróneas no detectadas y todas las tramas erróneas que se producen en el enlace. La relación entre estos dos valores sería la probabilidad buscada. A causa de las dificultades que comporta determinar la probabilidad de una trama errónea no detectada, consideraremos los tres parámetros para medir la robustez de un código detector de errores que se explican a continuación: • La distancia mínima del código (distancia de Hamming del código). • La capacidad de detección de ráfagas de error (burst detecting capability). • La capacidad de detección de ráfagas de error (burst detecting capability). • La probabilidad de que una combinación arbitraria de bits sea aceptada • La probabilidad de que una combinación arbitraria de bits sea aceptada como palabra válida. Como veremos a continuación, para tomar estas medidas no debemos tener en cuenta el tipo de errores que introduce el medio de transmisión. Es decir, en cuenta el tipo de errores que introduce el medio de transmisión. Es decir, estas medidas dan idea de la facilidad que tiene un código para determinar estas medidas dan idea de la facilidad que tiene un código para determinar ciertos tipos de errores. A la hora de elegir un código u otro habrá que tener ciertos tipos de errores. A la hora de elegir un código u otro habrá que tener en cuenta qué tipo de error introduce el medio de transmisión para elegir el en cuenta qué tipo de error introduce el medio de transmisión para elegir el código más adecuado, es decir, el que minimice la probabilidad de tener una código más adecuado, es decir, el que minimice la probabilidad de tener una trama errónea no detectada. trama errónea no detectada. 2.1. Distancia de Hamming 2.1. Distancia de Hamming troducir el concepto de distancia de Hamming entre dos palabras código. La distancia de Hamming entre dos palabras código se define como el número de bits diferentes que hay entre estas palabras. No confundáis... ... la probabilidad de error en una trama con la probabilidad de una trama errónea no detectada. La probabilidad de error en una trama depende exclusivamente del medio. La probabilidad de una trama errónea no detectada es mucho más difícil de calcular porque depende, además, del código detector de errores. El código detector ideal detectaría todas las tramas erróneas. como palabra válida. Como veremos a continuación, para tomar estas medidas no debemos tener Para definir la distancia de Hamming de un código, primero es necesario in- Enlace de datos Distancia de Hamming entre dos palabras código Entre las palabras código siguientes, hay 2 bits de diferencia; por lo tanto, su distancia vale 2: • 100100101 • 000100001 Para definir la distancia de Hamming de un código, primero es necesario introducir el concepto de distancia de Hamming entre dos palabras código. La distancia de Hamming entre dos palabras código se define como el número de bits diferentes que hay entre estas palabras. La distancia mínima de un código, o distancia de Hamming de un có- La distancia mínima de un código, o distancia de Hamming de un có- digo, se define como la menor distancia que hay entre dos palabras vá- digo, se define como la menor distancia que hay entre dos palabras vá- lidas del código. lidas del código. De esta definición se deduce que si la distancia de Hamming de un De esta definición se deduce que si la distancia de Hamming de un código vale DH, cualquier combinación de n bits erróneos que cum- código vale DH, cualquier combinación de n bits erróneos que cum- pla n < DH se detectará con probabilidad 1. pla n < DH se detectará con probabilidad 1. Distancia de Hamming entre dos palabras código Entre las palabras código siguientes, hay 2 bits de diferencia; por lo tanto, su distancia vale 2: • 100100101 • 000100001 FUOC • P03/75098/02118 14 Enlace de datos FUOC • P03/75098/02118 14 De la definición de la distancia de Hamming de un código deducimos también De la definición de la distancia de Hamming de un código deducimos también que un método exhaustivo para calcularla sería considerar todas las parejas que un método exhaustivo para calcularla sería considerar todas las parejas posibles de palabras válidas, observar cuántos bits diferentes hay y tomar el posibles de palabras válidas, observar cuántos bits diferentes hay y tomar el mínimo. En la práctica, generalmente no se aplica este método, sino que el mínimo. En la práctica, generalmente no se aplica este método, sino que el cálculo se hace a partir de las propiedades del código. cálculo se hace a partir de las propiedades del código. Cuanto mayor es la distancia de Hamming, más bits erróneos debe haber para Cuanto mayor es la distancia de Hamming, más bits erróneos debe haber para que se produzca un error no detectado y, por lo tanto, el código detector de que se produzca un error no detectado y, por lo tanto, el código detector de errores será mejor. errores será mejor. 2.2. Capacidad de detección de una ráfaga de error 2.2. Capacidad de detección de una ráfaga de error Muchas veces los errores no se producen en bits aislados, sino que son ori- Muchas veces los errores no se producen en bits aislados, sino que son ori- ginados por chispas que afectan a distintos bits consecutivos. Normalmen- ginados por chispas que afectan a distintos bits consecutivos. Normalmen- te, sin embargo, una chispa no introduce errores en todos los bits que te, sin embargo, una chispa no introduce errores en todos los bits que coinciden con su duración. Según las variaciones eléctricas de la intensidad coinciden con su duración. Según las variaciones eléctricas de la intensidad de la chispa, algunos bits cambian, con lo cual se produce un error, y otros de la chispa, algunos bits cambian, con lo cual se produce un error, y otros no cambian. no cambian. En una trama se define la ráfaga de error como el número de bits que hay entre el primer bit erróneo y el último, ambos incluidos. La capacidad de detección de una ráfaga de error se define como el entero mayor, llamémosle B, tal que el código es capaz de detectar todas las ráfagas de error menores o iguales que B. Ejemplo de ráfaga de error En la trama: 101000000000000 los bits erróneos son los que están marcados. Puesto que entre el primer bit erróneo y el último (ambos incluidos) hay 7 bits, decimos que la ráfaga de error vale 7. En una trama se define la ráfaga de error como el número de bits que hay entre el primer bit erróneo y el último, ambos incluidos. La capacidad de detección de una ráfaga de error se define como el entero mayor, llamémosle B, tal que el código es capaz de detectar todas las ráfagas de error menores o iguales que B. Evidentemente, cuanto mayor sea la capacidad de detección de ráfagas de Evidentemente, cuanto mayor sea la capacidad de detección de ráfagas de error, mejor será el código detector de errores. error, mejor será el código detector de errores. La capacidad de detección de ráfagas de error es especialmente importante La capacidad de detección de ráfagas de error es especialmente importante cuando el medio de transmisión tiene tendencia a introducir los errores en for- cuando el medio de transmisión tiene tendencia a introducir los errores en for- ma de ráfagas. En este caso, cuanto mayor sea la capacidad de detección de rá- ma de ráfagas. En este caso, cuanto mayor sea la capacidad de detección de rá- fagas, menor será la probabilidad de tener una trama errónea no detectada. fagas, menor será la probabilidad de tener una trama errónea no detectada. 2.3. Probabilidad de que una combinación arbitraria de bits 2.3. Probabilidad de que una combinación arbitraria de bits sea aceptada como palabra válida sea aceptada como palabra válida Hemos visto que si el número de bits erróneos de una trama no excede la dis- Hemos visto que si el número de bits erróneos de una trama no excede la dis- tancia de Hamming ni la capacidad de detección de ráfagas, la trama errónea tancia de Hamming ni la capacidad de detección de ráfagas, la trama errónea se detectará con probabilidad 1. En caso contrario, hay dos posibilidades: se detectará con probabilidad 1. En caso contrario, hay dos posibilidades: a) La palabra código correspondiente a la trama errónea coincide con otra pa- a) La palabra código correspondiente a la trama errónea coincide con otra pa- labra código válida y, por lo tanto, no se detecta el error. labra código válida y, por lo tanto, no se detecta el error. Enlace de datos Ejemplo de ráfaga de error En la trama: 101000000000000 los bits erróneos son los que están marcados. Puesto que entre el primer bit erróneo y el último (ambos incluidos) hay 7 bits, decimos que la ráfaga de error vale 7. 15 FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 15 b) La palabra código resultante es una palabra no válida y se detecta el error. b) La palabra código resultante es una palabra no válida y se detecta el error. El cálculo exacto de la probabilidad de que la trama errónea no sea detectada El cálculo exacto de la probabilidad de que la trama errónea no sea detectada no es obvio. No obstante, podemos deducir de manera intuitiva un valor no es obvio. No obstante, podemos deducir de manera intuitiva un valor aproximado, haciendo la siguiente suposición: que la palabra código corres- aproximado, haciendo la siguiente suposición: que la palabra código corres- pondiente a la trama errónea pasa a ser, con la misma probabilidad, cualquier pondiente a la trama errónea pasa a ser, con la misma probabilidad, cualquier otra palabra código. Esto equivale a suponer que se elige una combinación ar- otra palabra código. Esto equivale a suponer que se elige una combinación ar- bitraria de bits. Si esta combinación es una palabra código válida, no se detec- bitraria de bits. Si esta combinación es una palabra código válida, no se detec- tará el error; si no lo es, el error se detectará. tará el error; si no lo es, el error se detectará. Dado que una palabra código tiene una medida de P + Q bits, cada una de Dado que una palabra código tiene una medida de P + Q bits, cada una de las combinaciones arbitrarias posibles se puede recibir con una probabili- las combinaciones arbitrarias posibles se puede recibir con una probabili- . Dado que hay 2 palabras código válidas, la probabilidad de dad de 1/2P+Q. Dado que hay 2 P palabras código válidas, la probabilidad de que una combinación arbitraria de bits sea aceptada como una palabra vá- que una combinación arbitraria de bits sea aceptada como una palabra vá- dad de 1/2 P+Q P lida será 2 /2 P+Q P Q Enlace de datos lida será 2P/2P+Q = 2Q. =2 . La probabilidad de que una combinación arbitraria de bits sea aceptada La probabilidad de que una combinación arbitraria de bits sea aceptada -Q como una palabra válida es 2 , donde Q es el número de bits que añade como una palabra válida es 2-Q, donde Q es el número de bits que añade el código detector de errores. el código detector de errores. Cuanto mayor sea Q,, menor será esta probabilidad y mejor será el código. Esto Cuanto mayor sea Q,, menor será esta probabilidad y mejor será el código. Esto demuestra que, cuantos más bits añade el código detector de errores, más di- demuestra que, cuantos más bits añade el código detector de errores, más di- fícil es que se produzca un error no detectado. fícil es que se produzca un error no detectado. 2.4. Control de paridad 2.4. Control de paridad El código detector de errores más sencillo que hay es el denominado control El código detector de errores más sencillo que hay es el denominado control de paridad. El control de paridad consiste en añadir un solo bit –denominado de paridad. El control de paridad consiste en añadir un solo bit –denominado bit de paridad– al bloque de bits que se quiere proteger. bit de paridad– al bloque de bits que se quiere proteger. El valor del bit de paridad se elige de manera que la suma de los 1 de la palabra a b a XOR b 0 0 0 0 1 1 El gráfico siguiente muestra un ejemplo de paridad par (la suma de todos los 1 0 1 1 tiene que ser un número par): 1 1 0 código sea un número par (paridad par). Si el criterio es que la suma sea un número impar, se habla de paridad impar. Cálculo de la paridad par La paridad par se suele calcular haciendo la operación OR exclusiva (XOR) de los bits que se quieren proteger. El valor del bit de paridad se elige de manera que la suma de los 1 de la palabra a b a XOR b 0 0 0 0 1 1 El gráfico siguiente muestra un ejemplo de paridad par (la suma de todos los 1 0 1 1 tiene que ser un número par): 1 1 0 código sea un número par (paridad par). Si el criterio es que la suma sea un número impar, se habla de paridad impar. Cálculo de la paridad par La paridad par se suele calcular haciendo la operación OR exclusiva (XOR) de los bits que se quieren proteger. 16 FUOC • P03/75098/02118 Enlace de datos El código detector de errores más habitual La paridad es el código detector de errores que más se utiliza en transmisiones orientadas a carácter. Por ejemplo, la transmisión por el puerto serie de un PC es orientada a carácter. El dispositivo que controla el puerto serie (denominado UART, Universal Asynchronous Receiver Transmitter) añade automáticamente un bit de paridad a cada carácter transmitido. Con respecto a la recepción, el UART también controla automáticamente que el bit de paridad sea correcto; en caso contrario, se produce una condición de error. Si en la transmisión de la palabra código se produce un solo error (un 1 pasa a valer 0 o un 0 pasa a valer 1), la paridad de la palabra código cambiará y no FUOC • P03/75098/02118 16 El código detector de errores más habitual Paridad Cuando se utiliza la paridad como código detector de errores, no debemos imaginar que toda la trama es protegida con un solo bit de paridad. La paridad normalmente se usa en transmisiones orientadas a carácter, y las tramas de estas transmisiones están formadas por más de un carácter, cada uno con su bit de paridad. La paridad es el código detector de errores que más se utiliza en transmisiones orientadas a carácter. Por ejemplo, la transmisión por el puerto serie de un PC es orientada a carácter. El dispositivo que controla el puerto serie (denominado UART, Universal Asynchronous Receiver Transmitter) añade automáticamente un bit de paridad a cada carácter transmitido. Con respecto a la recepción, el UART también controla automáticamente que el bit de paridad sea correcto; en caso contrario, se produce una condición de error. Si en la transmisión de la palabra código se produce un solo error (un 1 pasa a valer 0 o un 0 pasa a valer 1), la paridad de la palabra código cambiará y no coincidirá con la del bit de paridad. Por lo tanto, se detectará el error. Sin em- coincidirá con la del bit de paridad. Por lo tanto, se detectará el error. Sin em- bargo, si hay dos errores, la paridad será la misma y el error no se detectará. bargo, si hay dos errores, la paridad será la misma y el error no se detectará. Deducimos, pues, que con el bit de paridad el código permite detectar un nú- Deducimos, pues, que con el bit de paridad el código permite detectar un nú- mero impar de bits erróneos. mero impar de bits erróneos. Ahora deduciremos cuánto valen los tres parámetros que hemos introducido Ahora deduciremos cuánto valen los tres parámetros que hemos introducido para medir la robustez de un código: para medir la robustez de un código: a) Para cualquier palabra válida, si se cambia un bit se obtiene una palabra no a) Para cualquier palabra válida, si se cambia un bit se obtiene una palabra no válida, y si se cambian dos se obtiene otra palabra válida. Deducimos, pues, válida, y si se cambian dos se obtiene otra palabra válida. Deducimos, pues, que la diferencia mínima entre dos palabras código válidas es de dos bits y, por que la diferencia mínima entre dos palabras código válidas es de dos bits y, por lo tanto, que la distancia de Hamming vale 2. En consecuencia, el código es lo tanto, que la distancia de Hamming vale 2. En consecuencia, el código es capaz de detectar con probabilidad 1 todas las combinaciones de bits erróneos capaz de detectar con probabilidad 1 todas las combinaciones de bits erróneos inferiores a 2 (es decir, el código detecta un bit erróneo, como habíamos visto inferiores a 2 (es decir, el código detecta un bit erróneo, como habíamos visto anteriormente). anteriormente). b) Dado que el código no detecta una ráfaga de error igual a 2 (dos bits con- b) Dado que el código no detecta una ráfaga de error igual a 2 (dos bits con- secutivos erróneos), la capacidad de detección de ráfagas vale 1. secutivos erróneos), la capacidad de detección de ráfagas vale 1. c) Finalmente, la probabilidad de que una combinación arbitraria de bits sea c) Finalmente, la probabilidad de que una combinación arbitraria de bits sea aceptada como palabra válida es: 2−Q = 2−1 = 0,5, es decir, de los caracteres que Enlace de datos aceptada como palabra válida es: 2−Q = 2−1 = 0,5, es decir, de los caracteres que tengan muchos bits erróneos, sólo se detectarán la mitad. tengan muchos bits erróneos, sólo se detectarán la mitad. 2.5. Códigos de paridad longitudinal y transversal 2.5. Códigos de paridad longitudinal y transversal Una manera de mejorar la robustez del código detector de errores por medio Una manera de mejorar la robustez del código detector de errores por medio de bit de paridad consiste en organizar los bits que hay que proteger en una de bit de paridad consiste en organizar los bits que hay que proteger en una matriz, y calcular la paridad de las filas y de las columnas. matriz, y calcular la paridad de las filas y de las columnas. La paridad de las filas se denomina paridad transversal (u horizontal), y la de La paridad de las filas se denomina paridad transversal (u horizontal), y la de las columnas, paridad longitudinal (o vertical). las columnas, paridad longitudinal (o vertical). Así pues, la información se transmite organizada en bloques con su respectiva Así pues, la información se transmite organizada en bloques con su respectiva paridad longitudinal y transversal. La transmisión del bloque se hace por filas, paridad longitudinal y transversal. La transmisión del bloque se hace por filas, Paridad Cuando se utiliza la paridad como código detector de errores, no debemos imaginar que toda la trama es protegida con un solo bit de paridad. La paridad normalmente se usa en transmisiones orientadas a carácter, y las tramas de estas transmisiones están formadas por más de un carácter, cada uno con su bit de paridad. FUOC • P03/75098/02118 17 Enlace de datos FUOC • P03/75098/02118 17 de manera que los últimos bits transmitidos son los bits de la paridad longitu- de manera que los últimos bits transmitidos son los bits de la paridad longitu- dinal. La figura siguiente muestra uno de estos bloques: dinal. La figura siguiente muestra uno de estos bloques: El código de paridad longitudinal y transversal se acostumbra a utilizar en El código de paridad longitudinal y transversal se acostumbra a utilizar en transmisiones orientadas a carácter. El dispositivo transmisor añade automá- transmisiones orientadas a carácter. El dispositivo transmisor añade automá- ticamente un bit de paridad a cada carácter, y de esta manera la trama queda ticamente un bit de paridad a cada carácter, y de esta manera la trama queda formada por un conjunto de caracteres a los cuales se añade un carácter con formada por un conjunto de caracteres a los cuales se añade un carácter con la paridad longitudinal. la paridad longitudinal. La figura siguiente nos muestra la disposición que acabamos de explicar de los bits de paridad dentro de la trama. A causa de este carácter extra, este código detector de errores se conoce también como LRC* o BCC**. * LRC es la sigla del término inglés Longitudinal Redundancy Check. ** BCC es la sigla del término inglés Block Check Character. La figura siguiente nos muestra la disposición que acabamos de explicar de los bits de paridad dentro de la trama. A causa de este carácter extra, este código detector de errores se conoce también como LRC* o BCC**. Cálculo del carácter LRC Enlace de datos * LRC es la sigla del término inglés Longitudinal Redundancy Check. ** BCC es la sigla del término inglés Block Check Character. Cálculo del carácter LRC El carácter LRC se suele calcular haciendo la operación XOR (paridad par) de los caracteres que se quieren proteger. El carácter LRC se suele calcular haciendo la operación XOR (paridad par) de los caracteres que se quieren proteger. Para analizar este código investigaremos primero los casos en los que una com- Para analizar este código investigaremos primero los casos en los que una com- binación de errores no sería detectada. De la definición de paridad deducimos binación de errores no sería detectada. De la definición de paridad deducimos que este código detectará todas las combinaciones de bits erróneos que tengan que este código detectará todas las combinaciones de bits erróneos que tengan un número impar de errores en alguna fila o columna. Es decir, no se detecta- un número impar de errores en alguna fila o columna. Es decir, no se detecta- rán las combinaciones de bits erróneos que tengan un número par de errores rán las combinaciones de bits erróneos que tengan un número par de errores en todas las filas y columnas simultáneamente. El caso más sencillo es el que en todas las filas y columnas simultáneamente. El caso más sencillo es el que muestra la figura siguiente: muestra la figura siguiente: 18 FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 18 Deducimos el valor de los parámetros introducidos para medir la robustez de Deducimos el valor de los parámetros introducidos para medir la robustez de un código: un código: a) Si en un bloque cambia uno de los bits que hay que proteger, cambiarán, a) Si en un bloque cambia uno de los bits que hay que proteger, cambiarán, además, las paridades transversal, longitudinal y la paridad de las longitudina- además, las paridades transversal, longitudinal y la paridad de las longitudina- les: cambian 4 bits, y por lo tanto DH = 4. les: cambian 4 bits, y por lo tanto DH = 4. b) Para determinar la capacidad de detección de ráfagas tenemos que encon- b) Para determinar la capacidad de detección de ráfagas tenemos que encon- trar la ráfaga mínima no detectada. A partir de la figura “Combinación de erro- trar la ráfaga mínima no detectada. A partir de la figura “Combinación de erro- res que no sería detectada” es fácil deducir que la ráfaga mínima no detectada res que no sería detectada” es fácil deducir que la ráfaga mínima no detectada se produce cuando los cuatro bits erróneos son adyacentes, y su tamaño es se produce cuando los cuatro bits erróneos son adyacentes, y su tamaño es igual a la longitud de una fila más dos. Así pues, la capacidad de detección de igual a la longitud de una fila más dos. Así pues, la capacidad de detección de ráfagas es la longitud de una fila más uno. ráfagas es la longitud de una fila más uno. c)La probabilidad de que una combinación arbitraria de bits sea aceptada c)La probabilidad de que una combinación arbitraria de bits sea aceptada longitud fila+longitud columna−1 como palabra válida es 1/2 como palabra válida es 1/2longitud fila+longitud columna−1. . 2.6. Códigos detectores de errores CRC 2.6. Códigos detectores de errores CRC Como hemos comentado, los códigos detectores con bit de paridad están in- Como hemos comentado, los códigos detectores con bit de paridad están in- dicados para transmisiones orientadas a carácter. Para transmisiones orienta- dicados para transmisiones orientadas a carácter. Para transmisiones orienta- das a bit no son útiles, porque las tiras de bits donde se podría aplicar la das a bit no son útiles, porque las tiras de bits donde se podría aplicar la paridad son mucho más largas y perderían efectividad. En lugar del bit de pa- paridad son mucho más largas y perderían efectividad. En lugar del bit de pa- ridad se utilizan los denominados códigos CRC* o polinomiales. * CRC es la sigla de la expresión inglesa Cyclic Redundancy Check. Los códigos detectores de errores polinomiales se basan en el cálculo de un nú- pone en el campo de control de errores de la trama. En recepción se repite el ridad se utilizan los denominados códigos CRC* o polinomiales. * CRC es la sigla de la expresión inglesa Cyclic Redundancy Check. Los códigos detectores de errores polinomiales se basan en el cálculo de un nú- mero binario, lo que realmente es el CRC, resultado de una cierta operación matemática efectuada con los bits que se tienen que proteger. Este número se Enlace de datos mero binario, lo que realmente es el CRC, resultado de una cierta operación Podéis conocer los detalles matemáticos de construcción del CRC y detección de errores si consultáis el anexo 1 de este módulo didáctico. matemática efectuada con los bits que se tienen que proteger. Este número se pone en el campo de control de errores de la trama. En recepción se repite el cálculo y se interpreta que hay o no hay error, en función de si coincide o no cálculo y se interpreta que hay o no hay error, en función de si coincide o no con el CRC recibido. con el CRC recibido. Las propiedades de los códigos polinomiales dependen del mecanismo de ge- Las propiedades de los códigos polinomiales dependen del mecanismo de ge- neración del CRC. En general, sin embargo, se puede demostrar que con un neración del CRC. En general, sin embargo, se puede demostrar que con un mecanismo adecuado y con un CRC de Q bits: mecanismo adecuado y con un CRC de Q bits: a) La distancia de Hamming del código es mayor o igual a 4. a) La distancia de Hamming del código es mayor o igual a 4. Podéis conocer los detalles matemáticos de construcción del CRC y detección de errores si consultáis el anexo 1 de este módulo didáctico. FUOC • P03/75098/02118 19 Enlace de datos FUOC • P03/75098/02118 19 b) La capacidad de detección de ráfagas de error es mayor o igual a Q. b) La capacidad de detección de ráfagas de error es mayor o igual a Q. c) La probabilidad de que una combinación arbitraria de bits sea aceptada c) La probabilidad de que una combinación arbitraria de bits sea aceptada como palabra válida vale 2−Q. como palabra válida vale 2−Q. 2.7. Códigos correctores de errores 2.7. Códigos correctores de errores Hay códigos que, además de detectar errores, permiten corregir algunos bits erróneos. Por ejemplo, en un código de paridad longitudinal y transversal, cualquier error de un solo bit se puede corregir buscando la fila y la columna con la paridad cambiada (tal y como muestra el esquema a) de la figura siguiente). Sin embargo, si el error se produce en dos bits, el código ya no es capaz de corregir el error. Esto puede verse en el esquema b). En esta figura los La técnica FEC La técnica de utilizar un código corrector de errores para recuperar errores (en lugar de solicitar la retransmisión de la trama) se conoce en inglés como Forward Error Correction (FEC). Hay códigos que, además de detectar errores, permiten corregir algunos bits erróneos. Por ejemplo, en un código de paridad longitudinal y transversal, cualquier error de un solo bit se puede corregir buscando la fila y la columna con la paridad cambiada (tal y como muestra el esquema a) de la figura siguiente). Sin embargo, si el error se produce en dos bits, el código ya no es capaz de corregir el error. Esto puede verse en el esquema b). En esta figura los bits erróneos están marcados en negro. Si el error se produjera en los bits mar- bits erróneos están marcados en negro. Si el error se produjera en los bits mar- cados en blanco, se tendría el mismo error longitudinal y transversal. Así pues, cados en blanco, se tendría el mismo error longitudinal y transversal. Así pues, el código de paridad longitudinal y transversal no es capaz de averiguar cuál el código de paridad longitudinal y transversal no es capaz de averiguar cuál de las dos posibilidades debería corregirse. de las dos posibilidades debería corregirse. Corrección de un bit utiliza el concepto de distancia de Hamming, que ya hemos introducido. En Podéis ver el concepto de distancia de Hamming en el subapartado 2.1 de este módulo didáctico. La técnica FEC La técnica de utilizar un código corrector de errores para recuperar errores (en lugar de solicitar la retransmisión de la trama) se conoce en inglés como Forward Error Correction (FEC). Corrección de un bit Un código con paridad transversal y longitudinal es capaz de corregir el error en un bit (a), pero no en dos (b). Con la finalidad de hacer un análisis más formal de los códigos correctores se Enlace de datos Un código con paridad transversal y longitudinal es capaz de corregir el error en un bit (a), pero no en dos (b). Con la finalidad de hacer un análisis más formal de los códigos correctores se utiliza el concepto de distancia de Hamming, que ya hemos introducido. En caso de error, la corrección consiste en suponer que la palabra código transmi- caso de error, la corrección consiste en suponer que la palabra código transmi- tida es la palabra código válida más próxima a la palabra recibida, según el tida es la palabra código válida más próxima a la palabra recibida, según el concepto de distancia (criterio de la distancia mínima). Por lo tanto, será la que concepto de distancia (criterio de la distancia mínima). Por lo tanto, será la que tenga menos bits de diferencia. tenga menos bits de diferencia. Podéis ver el concepto de distancia de Hamming en el subapartado 2.1 de este módulo didáctico. FUOC • P03/75098/02118 20 Enlace de datos FUOC • P03/75098/02118 20 La figura anterior es una representación gráfica de la idea que justo acabamos La figura anterior es una representación gráfica de la idea que justo acabamos de exponer. En esta figura podemos ver una posible palabra código transmiti- de exponer. En esta figura podemos ver una posible palabra código transmiti- da, y después encontramos agrupadas todas las palabras con el número de bits da, y después encontramos agrupadas todas las palabras con el número de bits de diferencia (o sea, que distan): 1, 2… hasta las palabras válidas más próximas de diferencia (o sea, que distan): 1, 2… hasta las palabras válidas más próximas a DH bits de distancia. Si se recibe una de las tramas que se encuentra a una a DH bits de distancia. Si se recibe una de las tramas que se encuentra a una distancia 1, 2, …, Emáx, es decir, una de las palabras que no tienen otra palabra distancia 1, 2, …, Emáx, es decir, una de las palabras que no tienen otra palabra válida más próxima que la transmitida, el código corregirá el error. válida más próxima que la transmitida, el código corregirá el error. Para saber cuántos bits es capaz de corregir el código con probabilidad 1, su- Para saber cuántos bits es capaz de corregir el código con probabilidad 1, su- pogamos que, en la figura, DH es la distancia mínima entre dos palabras váli- pogamos que, en la figura, DH es la distancia mínima entre dos palabras váli- das (la distancia de Hamming del código). das (la distancia de Hamming del código). Sea Emáx el número de bits erróneos; de la figura deducimos que el criterio de Sea Emáx el número de bits erróneos; de la figura deducimos que el criterio de distancia mínima corregirá el error si Emáx < D, donde D = DH − Emáx. distancia mínima corregirá el error si Emáx < D, donde D = DH − Emáx. En definitiva, si la distancia de Hamming de un código es DH, utilizan- En definitiva, si la distancia de Hamming de un código es DH, utilizan- do el criterio de la distancia mínima se puede corregir cualquier com- do el criterio de la distancia mínima se puede corregir cualquier com- binación de Emáx bits erróneos que cumpla Emáx < DH/2. binación de Emáx bits erróneos que cumpla Emáx < DH/2. Código con paridad transversal y longitudinal Código con paridad transversal y longitudinal Si se utiliza un código con paridad transversal y longitudinal, la distancia de Hamming vale DH = 4. Por lo tanto, se pueden corregir Emáx < 2, es decir, 1 bit, tal y como habíamos deducido al principio de este subapartado. Un código con DH = 5 puede corregir Emáx < 2,5; es decir, 2 bits. Si se utiliza un código con paridad transversal y longitudinal, la distancia de Hamming vale DH = 4. Por lo tanto, se pueden corregir Emáx < 2, es decir, 1 bit, tal y como habíamos deducido al principio de este subapartado. Un código con DH = 5 puede corregir Emáx < 2,5; es decir, 2 bits. Enlace de datos FUOC • P03/75098/02118 21 Enlace de datos FUOC • P03/75098/02118 21 3. Control de errores 3. Control de errores En caso de que se reciba una trama con errores, el nivel de enlace puede adop- En caso de que se reciba una trama con errores, el nivel de enlace puede adop- tar una de las soluciones siguientes: tar una de las soluciones siguientes: 1) Descartar la trama. 1) Descartar la trama. 2) Intentar corregir los errores (si se utiliza un código corrector adecuado). 2) Intentar corregir los errores (si se utiliza un código corrector adecuado). 3) Solicitar la retransmisión. 3) Solicitar la retransmisión. La solución que se adopte depende de factores virtuales al uso del enlace o al tipo de aplicación. Más adelante se discuten estos factores. Aquí sólo apuntaremos que para aplicar la tercera solución es necesario que la comunicación sea bidireccional (half duplex o full duplex). La primera solución sólo es factible en aplicaciones que toleren un cierto grado de error en la información recibida. La ventaja de la segunda solu- Podéis ver los motivos que conducen a una solución determinada en los subapartados 5.2 y 5.3 de este módulo didáctico. Podéis ver también los conceptos half duplex y full duplex en el subapartado 3.1 del módulo “Transmisión de datos” de esta asignatura. Podéis ver el concepto de eficiencia en el subapartado 3.3.4 de este módulo didáctico. La solución que se adopte depende de factores virtuales al uso del enlace o al tipo de aplicación. Más adelante se discuten estos factores. Aquí sólo apuntaremos que para aplicar la tercera solución es necesario que la comunicación sea bidireccional (half duplex o full duplex). La primera solución sólo es factible en aplicaciones que toleren un cierto grado de error en la información recibida. La ventaja de la segunda solu- ción respecto de la tercera es que se evita el retardo que implica solicitar la ción respecto de la tercera es que se evita el retardo que implica solicitar la retransmisión de las tramas. Por el contrario, los códigos correctores de retransmisión de las tramas. Por el contrario, los códigos correctores de errores necesitan añadir mucha redundancia (bits extras) y, por lo tanto, la errores necesitan añadir mucha redundancia (bits extras) y, por lo tanto, la transmisión es más ineficiente (la relación entre los bits de información y transmisión es más ineficiente (la relación entre los bits de información y control disminuye). Más adelante se profundizará en el concepto de efi- control disminuye). Más adelante se profundizará en el concepto de efi- ciencia. ciencia. Un caso típico donde es preferible un código corrector de errores antes que un código detector acompañado de retransmisiones es en comunicaciones vía satélite. Conviene más pagar en ineficiencia por el incremento de bits redundantes que en tiempo de retransmisiones, porque la distancia que hay que recorrer es muy grande. Un caso típico donde es preferible un código corrector de errores antes que un código detector acompañado de retransmisiones es en comunicaciones vía satélite. Conviene más pagar en ineficiencia por el incremento de bits redundantes que en tiempo de retransmisiones, porque la distancia que hay que recorrer es muy grande. Los motivos anteriores explican por qué, cuando se necesita hacer una recu- Los motivos anteriores explican por qué, cuando se necesita hacer una recu- peración de errores, se adopta la tercera solución siempre que se puede. Los peración de errores, se adopta la tercera solución siempre que se puede. Los protocolos que usan esta técnica se conocen como protocolos ARQ, del inglés protocolos que usan esta técnica se conocen como protocolos ARQ, del inglés Automatic Repeat Request. En concreto, los protocolos que veremos son los si- Automatic Repeat Request. En concreto, los protocolos que veremos son los si- guientes: guientes: • Stop & Wait • Stop & Wait • Retransmisión selectiva • Retransmisión selectiva • Go back N • Go back N Para estudiar estos protocolos supondremos: Para estudiar estos protocolos supondremos: 1) Un nivel físico genérico en el cual: 1) Un nivel físico genérico en el cual: • Las tramas pueden llegar con error o se pueden perder. Diremos que la tra- • Las tramas pueden llegar con error o se pueden perder. Diremos que la tra- ma se pierde cuando los errores se producen de manera tal que impiden ma se pierde cuando los errores se producen de manera tal que impiden que el receptor pueda delimitar e interpretar la recepción de la trama. que el receptor pueda delimitar e interpretar la recepción de la trama. Enlace de datos Podéis ver los motivos que conducen a una solución determinada en los subapartados 5.2 y 5.3 de este módulo didáctico. Podéis ver también los conceptos half duplex y full duplex en el subapartado 3.1 del módulo “Transmisión de datos” de esta asignatura. Podéis ver el concepto de eficiencia en el subapartado 3.3.4 de este módulo didáctico. FUOC • P03/75098/02118 22 Enlace de datos FUOC • P03/75098/02118 22 • Las tramas llegan en el mismo orden en el que se han transmitido. • Las tramas llegan en el mismo orden en el que se han transmitido. 2) Un nivel por encima del nivel de enlace, en el cual: 2) Un nivel por encima del nivel de enlace, en el cual: • El transmisor siempre tiene datos de información a punto para transmitir. • El transmisor siempre tiene datos de información a punto para transmitir. El nivel de enlace, sin embargo, tiene la libertad de aceptarlos en instantes El nivel de enlace, sin embargo, tiene la libertad de aceptarlos en instantes arbitrarios. arbitrarios. • El receptor siempre está dispuesto a aceptar datos del nivel de enlace. • El receptor siempre está dispuesto a aceptar datos del nivel de enlace. Además de describir los protocolos, los evaluaremos. La evaluación de los Además de describir los protocolos, los evaluaremos. La evaluación de los protocolos consiste en el cálculo de los parámetros de más interés, como la protocolos consiste en el cálculo de los parámetros de más interés, como la eficiencia. Para la descripción y evaluación de estos protocolos es muy útil el eficiencia. Para la descripción y evaluación de estos protocolos es muy útil el uso de un diagrama de tiempo. Así pues, antes de empezar con la descripción uso de un diagrama de tiempo. Así pues, antes de empezar con la descripción de los protocolos, explicaremos esta herramienta. de los protocolos, explicaremos esta herramienta. 3.1. Diagramas de tiempo 3.1. Diagramas de tiempo Los diagramas de tiempo que utilizaremos en esta asignatura son una repre- Los diagramas de tiempo que utilizaremos en esta asignatura son una repre- sentación espaciotemporal de la transmisión de tramas entre las dos entidades sentación espaciotemporal de la transmisión de tramas entre las dos entidades de nivel de enlace. Este tipo de diagramas también se utiliza para el estudio de de nivel de enlace. Este tipo de diagramas también se utiliza para el estudio de la comunicación entre entidades en muchos otros contextos. la comunicación entre entidades en muchos otros contextos. Como ejemplo de este tipo de diagramas, la figura siguiente muestra la trans- Como ejemplo de este tipo de diagramas, la figura siguiente muestra la trans- misión de una trama denominada IK. La interpretación del índice K es la si- misión de una trama denominada IK. La interpretación del índice K es la si- guiente: si enumeramos la secuencia de tramas transmitidas con los números guiente: si enumeramos la secuencia de tramas transmitidas con los números {1, 2, 3, …}, IK representa la trama K de la secuencia transmitida. {1, 2, 3, …}, IK representa la trama K de la secuencia transmitida. En la figura anterior hay dos ejes temporales; sobre cada uno se representan En la figura anterior hay dos ejes temporales; sobre cada uno se representan los acontecimientos que tienen lugar en cada una de las estaciones: en el eje los acontecimientos que tienen lugar en cada una de las estaciones: en el eje Enlace de datos 23 FUOC • P03/75098/02118 Enlace de datos 23 FUOC • P03/75098/02118 superior, los que se llevan a cabo en la estación que transmite la trama, y en superior, los que se llevan a cabo en la estación que transmite la trama, y en el inferior, los que se realizan en la estación que la recibe. el inferior, los que se realizan en la estación que la recibe. En los diagramas de tiempo que representaremos haremos estas suposicio- En los diagramas de tiempo que representaremos haremos estas suposicio- nes: nes: • Asumiremos que el tiempo de procesamiento es cero. Es decir, que cuan- • Asumiremos que el tiempo de procesamiento es cero. Es decir, que cuan- do una entidad de nivel de enlace tiene una trama lista para transmitir, el do una entidad de nivel de enlace tiene una trama lista para transmitir, el nivel físico la empieza a transmitir inmediatamente. nivel físico la empieza a transmitir inmediatamente. • Supondremos que la velocidad de transmisión de la línea es fija y la de- • Supondremos que la velocidad de transmisión de la línea es fija y la de- signaremos por vt (medido en bits por segundo o bps). • Supondremos (si no se indica lo contrario) que el tamaño de las tramas, L, es fijo y se mide en bits. • Supondremos que la distancia entre las estaciones, D, y la velocidad de propagación en el medio, vp, son fijas. En función de vt y L, el tiempo de transmisión de una trama (tt) viene dado por: Ecuación 1 L ( bit ) t t ( s ) = ------------------v t ( bps ) En función de D y vp, el tiempo de propagación (tp) se puede obtener a partir de: Ecuación 2 D(m ) t p ( s ) = ---------------------vp ( m ⁄ s ) Enlace de datos signaremos por vt (medido en bits por segundo o bps). Velocidad de propagación En el vacío, una señal electromagnética se propaga a una velocidad de vp ≈ 3 · 108 m/s. En cualquier otro medio la velocidad de propagación es inferior. • Supondremos (si no se indica lo contrario) que el tamaño de las tramas, L, es fijo y se mide en bits. • Supondremos que la distancia entre las estaciones, D, y la velocidad de propagación en el medio, vp, son fijas. En función de vt y L, el tiempo de transmisión de una trama (tt) viene dado por: Ecuación 1 L ( bit ) t t ( s ) = ------------------v t ( bps ) En función de D y vp, el tiempo de propagación (tp) se puede obtener a partir de: Ecuación 2 D(m ) t p ( s ) = ---------------------vp ( m ⁄ s ) De ahora en adelante utilizaremos una versión simplificada como el diagrama de De ahora en adelante utilizaremos una versión simplificada como el diagrama de tiempo de la figura anterior, en la que indicaremos sólo el tiempo de transmisión tiempo de la figura anterior, en la que indicaremos sólo el tiempo de transmisión de la trama transmitida, el tiempo de propagación y el instante de llegada del úl- de la trama transmitida, el tiempo de propagación y el instante de llegada del úl- timo bit de la trama, tal y como se muestra en la figura siguiente: timo bit de la trama, tal y como se muestra en la figura siguiente: Velocidad de propagación En el vacío, una señal electromagnética se propaga a una velocidad de vp ≈ 3 · 108 m/s. En cualquier otro medio la velocidad de propagación es inferior. 24 FUOC • P03/75098/02118 Enlace de datos 24 FUOC • P03/75098/02118 Observad que el receptor sólo puede empezar a procesar la trama recibida Observad que el receptor sólo puede empezar a procesar la trama recibida (comprobar si hay errores) después de haber recibido el último bit. (comprobar si hay errores) después de haber recibido el último bit. 3.2. Evaluación de los protocolos: eficiencia 3.2. Evaluación de los protocolos: eficiencia El principal criterio de evaluación de los protocolos ARQ es la eficiencia: El principal criterio de evaluación de los protocolos ARQ es la eficiencia: La eficiencia cuantifica la pérdida de capacidad de transmisión de infor- La eficiencia cuantifica la pérdida de capacidad de transmisión de infor- mación. Es decir, se trata de la relación entre la velocidad media a la que mación. Es decir, se trata de la relación entre la velocidad media a la que se transmiten los bits de información y la velocidad máxima a la que se se transmiten los bits de información y la velocidad máxima a la que se podrían transmitir. podrían transmitir. La velocidad de transmisión máxima (vt) es la velocidad de transmisión La velocidad de transmisión máxima (vt) es la velocidad de transmisión de la línea; es decir, la velocidad a la cual el nivel físico es capaz de trans- de la línea; es decir, la velocidad a la cual el nivel físico es capaz de trans- mitir los bits: mitir los bits: 1 v t = -----------------------------------------------------------------------------------------tiempo de transmisión de un bit Ecuación 3 1 v t = -----------------------------------------------------------------------------------------tiempo de transmisión de un bit Ecuación 3 La velocidad que nos interesa, sin embargo, es la velocidad media a la que se pue- La velocidad que nos interesa, sin embargo, es la velocidad media a la que se pue- de transmitir la información, teniendo en cuenta todos los factores que reduzcan de transmitir la información, teniendo en cuenta todos los factores que reduzcan la velocidad de transmisión máxima. Esta velocidad la denominaremos veloci- la velocidad de transmisión máxima. Esta velocidad la denominaremos veloci- dad de transmisión eficaz o velocidad de transmisión efectiva (vef): dad de transmisión eficaz o velocidad de transmisión efectiva (vef): bits de información v ef = --------------------------------------------------------------tiempo de transmisión Ecuación 4 bits de información v ef = --------------------------------------------------------------tiempo de transmisión Ecuación 4 La eficiencia se define como la relación entre la velocidad efectiva y la veloci- La eficiencia se define como la relación entre la velocidad efectiva y la veloci- dad de transmisión; es decir: dad de transmisión; es decir: v bits de información 1 E = -----ef- = --------------------------------------------------------------- ⁄ -----------------------------------------------------------------------------------------vt tiempo de transmisión tiempo de transmisión de un bit Ecuación 5 Dado que: v bits de información 1 E = -----ef- = --------------------------------------------------------------- ⁄ -----------------------------------------------------------------------------------------vt tiempo de transmisión tiempo de transmisión de un bit Ecuación 5 Dado que: bits de información × tiempo de transmisión de un bit = bits de información × tiempo de transmisión de un bit = = tiempo que se han transmitido los bits de información, = tiempo que se han transmitido los bits de información, la ecuación 5 para la eficiencia se puede expresar también como se muestra a la ecuación 5 para la eficiencia se puede expresar también como se muestra a continuación: continuación: Ecuación 6 tiempo transmitiendo información E = ------------------------------------------------------------------------------------------------tiempo de transmisión Ecuación 6 tiempo transmitiendo información E = ------------------------------------------------------------------------------------------------tiempo de transmisión Enlace de datos 25 FUOC • P03/75098/02118 Enlace de datos 25 FUOC • P03/75098/02118 A veces es interesante tener la eficiencia en función de los bits transmitidos, A veces es interesante tener la eficiencia en función de los bits transmitidos, en lugar del tiempo invertido en la transmisión de éstos. Teniendo en cuenta en lugar del tiempo invertido en la transmisión de éstos. Teniendo en cuenta la igualdad siguiente: la igualdad siguiente: Número de bits que se podrían haber tiempo de transmisión ------------------------------------------------------------------------------------------ = tiempo de transmisión de un bit transmitido en el tiempo de transmisión, Número de bits que se podrían haber tiempo de transmisión ------------------------------------------------------------------------------------------ = tiempo de transmisión de un bit transmitido en el tiempo de transmisión, la ecuación 5 también se puede expresar de esta manera: la ecuación 5 también se puede expresar de esta manera: Ecuación 7 bits de información E = -----------------------------------------------------------------------------------------------------------------------bits que caben en el tiempo de transmisión Ecuación 7 bits de información E = -----------------------------------------------------------------------------------------------------------------------bits que caben en el tiempo de transmisión 3.3. Protocolo Stop & Wait 3.3. Protocolo Stop & Wait El protocolo Stop & Wait, que podemos traducir por ‘para y espera’, es el pro- El protocolo Stop & Wait, que podemos traducir por ‘para y espera’, es el pro- tocolo ARQ más sencillo. tocolo ARQ más sencillo. El principio de funcionamiento del protocolo Stop & Wait es “no trans- El principio de funcionamiento del protocolo Stop & Wait es “no trans- mitir una trama nueva hasta que no se tiene la certeza de la recepción mitir una trama nueva hasta que no se tiene la certeza de la recepción correcta de la trama anterior”. correcta de la trama anterior”. Para conseguirlo se definen dos tipos de tramas: Para conseguirlo se definen dos tipos de tramas: a) Las tramas de información o tramas, que llevan la información que se a) Las tramas de información o tramas, que llevan la información que se intercambian las entidades del nivel superior. intercambian las entidades del nivel superior. b) Las tramas de confirmación o confirmaciones, que forman parte del proto- b) Las tramas de confirmación o confirmaciones, que forman parte del proto- colo del nivel de enlace y que no llevan información de los niveles superiores. colo del nivel de enlace y que no llevan información de los niveles superiores. La figura siguiente muestra el funcionamiento de este protocolo. En esta figura La figura siguiente muestra el funcionamiento de este protocolo. En esta figura la estación 1 envía tramas de información a la estación 2, y la estación 2 las la estación 1 envía tramas de información a la estación 2, y la estación 2 las confirma. Para distinguir la estación transmisora de tramas de información de confirma. Para distinguir la estación transmisora de tramas de información de la estación transmisora de las confirmaciones, nos referiremos a las mismas la estación transmisora de las confirmaciones, nos referiremos a las mismas como primario y secundario, respectivamente. como primario y secundario, respectivamente. Notación En los diagramas de tiempo indicaremos las tramas de información con una I y las confirmaciones con una Α (de la palabra inglesa Acknowledgement). Enlace de datos Notación En los diagramas de tiempo indicaremos las tramas de información con una I y las confirmaciones con una Α (de la palabra inglesa Acknowledgement). FUOC • P03/75098/02118 26 Enlace de datos FUOC • P03/75098/02118 26 El diagrama de la figura debe interpretarse de la manera siguiente: cuando el El diagrama de la figura debe interpretarse de la manera siguiente: cuando el secundario recibe completamente la trama IK, comprueba si la ha recibido co- secundario recibe completamente la trama IK, comprueba si la ha recibido co- rrectamente y, en caso afirmativo, envía la confirmación AK. rrectamente y, en caso afirmativo, envía la confirmación AK. Observad que tanto el secundario como el primario invierten un cierto tiempo en Observad que tanto el secundario como el primario invierten un cierto tiempo en el procesamiento de las tramas recibidas. Esto implica que, aunque el tiempo de el procesamiento de las tramas recibidas. Esto implica que, aunque el tiempo de propagación es constante, a causa del tiempo de procesamiento de las tramas en propagación es constante, a causa del tiempo de procesamiento de las tramas en el secundario, el tiempo de espera de las confirmaciones es variable. el secundario, el tiempo de espera de las confirmaciones es variable. Para simplificarlo, supondremos generalmente que el tiempo de procesamien- Para simplificarlo, supondremos generalmente que el tiempo de procesamien- to de las tramas es cero, excepto cuando sea necesario tenerlo en cuenta. to de las tramas es cero, excepto cuando sea necesario tenerlo en cuenta. El tamaño de las tramas de confirmación es normalmente mucho menor que El tamaño de las tramas de confirmación es normalmente mucho menor que el de las tramas de información, dado que no llevan datos del nivel superior. Ade- el de las tramas de información, dado que no llevan datos del nivel superior. Ade- más, hay que tener en cuenta que el código detector de errores también tiene que más, hay que tener en cuenta que el código detector de errores también tiene que aplicarse a las confirmaciones para asegurar la recepción correcta. aplicarse a las confirmaciones para asegurar la recepción correcta. En este subapartado supondremos que el código detector de errores es lo bas- En este subapartado supondremos que el código detector de errores es lo bas- tante robusto como para poder detectar cualquier error que pueda haber en la tante robusto como para poder detectar cualquier error que pueda haber en la transmisión de una trama. transmisión de una trama. En caso de que haya error, el secundario solicita la retransmisión de la trama En caso de que haya error, el secundario solicita la retransmisión de la trama de información. Esto se puede hacer mediante las retransmisiones implícitas de información. Esto se puede hacer mediante las retransmisiones implícitas y las explícitas. y las explícitas. 3.3.1. Protocolo Stop & Wait con retransmisiones implícitas 3.3.1. Protocolo Stop & Wait con retransmisiones implícitas En este caso las reglas que siguen el primario y el secundario son las si- En este caso las reglas que siguen el primario y el secundario son las si- guientes: guientes: 1) El secundario envía confirmaciones positivas, A, de las tramas que recibe 1) El secundario envía confirmaciones positivas, A, de las tramas que recibe sin errores. sin errores. 2) El primario, después de enviar una trama IK, espera un tiempo T0 (activa 2) El primario, después de enviar una trama IK, espera un tiempo T0 (activa un temporizador o time-out) para recibir la confirmación positiva, AK. un temporizador o time-out) para recibir la confirmación positiva, AK. a) Si agotado el tiempo T0 la confirmación no ha llegado, retransmite la tra- a) Si agotado el tiempo T0 la confirmación no ha llegado, retransmite la tra- ma IK y vuelve a activar el time-out. ma IK y vuelve a activar el time-out. b) Si recibe la confirmación positiva, AK, desactiva el time-out, acepta nuevos b) Si recibe la confirmación positiva, AK, desactiva el time-out, acepta nuevos datos del nivel superior, monta una nueva trama IK+1 y repite este proceso. datos del nivel superior, monta una nueva trama IK+1 y repite este proceso. La figura siguiente muestra la recepción de una trama errónea y su retransmi- La figura siguiente muestra la recepción de una trama errónea y su retransmi- sión implícita. Evidentemente, el valor T0 del time-out debe fijarse de manera sión implícita. Evidentemente, el valor T0 del time-out debe fijarse de manera que el primario tenga tiempo de recibir la confirmación (es decir, T0 > ta + 2tp, que el primario tenga tiempo de recibir la confirmación (es decir, T0 > ta + 2tp, donde ta es el tiempo de transmisión de las confirmaciones y tp es el tiempo donde ta es el tiempo de transmisión de las confirmaciones y tp es el tiempo de propagación). Si el valor del time-out fuera demasiado pequeño, se produci- de propagación). Si el valor del time-out fuera demasiado pequeño, se produci- ría la retransmisión innecesaria de las tramas. ría la retransmisión innecesaria de las tramas. Enlace de datos FUOC • P03/75098/02118 27 Enlace de datos FUOC • P03/75098/02118 27 Notación Notación En los diagramas de tiempo indicaremos la recepción de una trama errónea con una cruz. En los diagramas de tiempo indicaremos la recepción de una trama errónea con una cruz. 3.3.2. Protocolo Stop & Wait con retransmisiones explícitas 3.3.2. Protocolo Stop & Wait con retransmisiones explícitas Las reglas en este caso son las mismas que en la retransmisión implícita, con Las reglas en este caso son las mismas que en la retransmisión implícita, con la diferencia de que el secundario también envía confirmaciones negativas la diferencia de que el secundario también envía confirmaciones negativas (NAK) en el caso de que reciba una trama con errores: (NAK) en el caso de que reciba una trama con errores: Notación Notación En los diagramas de tiempo indicaremos las confirmaciones negativas con la sigla NA (No Acknowledgement). En los diagramas de tiempo indicaremos las confirmaciones negativas con la sigla NA (No Acknowledgement). En general, la confirmación negativa permite una retransmisión más rápida de En general, la confirmación negativa permite una retransmisión más rápida de la trama errónea porque no hay que esperar a que se agote el time-out. Sin em- la trama errónea porque no hay que esperar a que se agote el time-out. Sin em- bargo, en la transmisión también es necesario utilizar un time-out, ya que las bargo, en la transmisión también es necesario utilizar un time-out, ya que las confirmaciones pueden llegar con errores o se pueden perder*. Esta condición se refleja en la figura siguiente: * Las confirmaciones pueden perderse en caso de que los errores no permitan reconocer la recepción de la trama. Notación Indicaremos que una trama se pierde (es decir, que los errores impiden reconocer su recepción) con una flecha que no llega al eje contrario y una cruz. Enlace de datos confirmaciones pueden llegar con errores o se pueden perder*. Esta condición se refleja en la figura siguiente: * Las confirmaciones pueden perderse en caso de que los errores no permitan reconocer la recepción de la trama. Notación Indicaremos que una trama se pierde (es decir, que los errores impiden reconocer su recepción) con una flecha que no llega al eje contrario y una cruz. FUOC • P03/75098/02118 28 Enlace de datos FUOC • P03/75098/02118 28 3.3.3. Necesidad de numerar las tramas y las confirmaciones 3.3.3. Necesidad de numerar las tramas y las confirmaciones Sabemos que las tramas llevan un campo de control que sirve para detectar po- Sabemos que las tramas llevan un campo de control que sirve para detectar po- sibles errores. En este subapartado veremos que, para el funcionamiento co- sibles errores. En este subapartado veremos que, para el funcionamiento co- rrecto del protocolo, es necesario numerar las tramas de información y las rrecto del protocolo, es necesario numerar las tramas de información y las confirmaciones (positivas o negativas). Así pues, otro campo de control de las confirmaciones (positivas o negativas). Así pues, otro campo de control de las tramas es un número de secuencia que permite identificarlas. tramas es un número de secuencia que permite identificarlas. Necesidad de numerar las tramas de información Necesidad de numerar las tramas de información La figura siguiente evidencia la necesidad de numerar las tramas de información: La figura siguiente evidencia la necesidad de numerar las tramas de información: En este caso, se pierde la confirmación de una trama. Dado que el primario no recibe la confirmación, salta el time-out y retransmite la misma trama IK. Si la trama no estuviera numerada, el secundario podría detectar la recepción duplicada de la trama. Gracias al número de secuencia el secundario detecta esta condición, descarta la trama duplicada y vuelve a enviar la confirmación para que el primario continúe la transmisión de la trama de información siguiente (la trama IK+1). En este caso, se pierde la confirmación de una trama. Dado que el primario no recibe la confirmación, salta el time-out y retransmite la misma trama IK. Si la trama no estuviera numerada, el secundario podría detectar la recepción duplicada de la trama. Gracias al número de secuencia el secundario detecta esta condición, descarta la trama duplicada y vuelve a enviar la confirmación para que el primario continúe la transmisión de la trama de información siguiente (la trama IK+1). Hasta ahora, en los diagramas de tiempo hemos considerado que el tiempo de procesamiento de las tramas era igual a cero. Ahora tendremos en cuenta que, en una situación real, este tiempo puede ser variable. Incluso puede tener valores anormalmente grandes. Este hecho puede responder a múltiples causas. Ejemplo Si el software que ejecuta el DLC reside en un computador multitarea puede pasar que el computador esté muy cargado y el tiempo que dedique al DLC sea muy variable. Hasta ahora, en los diagramas de tiempo hemos considerado que el tiempo de procesamiento de las tramas era igual a cero. Ahora tendremos en cuenta que, en una situación real, este tiempo puede ser variable. Incluso puede tener valores anormalmente grandes. Este hecho puede responder a múltiples causas. Necesidad de numerar las confirmaciones Necesidad de numerar las confirmaciones La figura siguiente es un ejemplo que evidencia la necesidad de numerar las confirmaciones: La figura siguiente es un ejemplo que evidencia la necesidad de numerar las confirmaciones: En el caso que presentamos, la confirmación A K llega al cabo de un tiempo anormalmente largo (a causa de un tiempo de procesamiento excesivo en el secundario), y provoca En el caso que presentamos, la confirmación A K llega al cabo de un tiempo anormalmente largo (a causa de un tiempo de procesamiento excesivo en el secundario), y provoca Enlace de datos Ejemplo Si el software que ejecuta el DLC reside en un computador multitarea puede pasar que el computador esté muy cargado y el tiempo que dedique al DLC sea muy variable. 29 FUOC • P03/75098/02118 Enlace de datos que antes de que llegue la confirmación salte el time-out y la trama I K se retransmita. Por este motivo, llegan dos confirmaciones de la trama I K. Si éstas no se numeraran, la segunda confirmación se interpretaría como la confirmación de la trama IK+1. En caso de que la trama IK+1 se perdiera (como indica la figura), el primario no la retransmitiría. 29 FUOC • P03/75098/02118 que antes de que llegue la confirmación salte el time-out y la trama I K se retransmita. Por este motivo, llegan dos confirmaciones de la trama I K. Si éstas no se numeraran, la segunda confirmación se interpretaría como la confirmación de la trama IK+1. En caso de que la trama IK+1 se perdiera (como indica la figura), el primario no la retransmitiría. 3.3.4. Cálculo de la eficiencia del protocolo Stop & Wait 3.3.4. Cálculo de la eficiencia del protocolo Stop & Wait En el caso del protocolo Stop & Wait la pérdida de capacidad de transmisión En el caso del protocolo Stop & Wait la pérdida de capacidad de transmisión se debe al tiempo que se pierde en la espera de confirmaciones y retransmisiones se debe al tiempo que se pierde en la espera de confirmaciones y retransmisiones de tramas. Hay también otros factores que afectan a la eficiencia, como los cam- de tramas. Hay también otros factores que afectan a la eficiencia, como los cam- pos de control en las tramas de información. A la hora de calcular la eficiencia pos de control en las tramas de información. A la hora de calcular la eficiencia de un protocolo siempre debemos considerar todos los datos que tengamos de un protocolo siempre debemos considerar todos los datos que tengamos al alcance y que resulten de una reducción de la capacidad de transmisión. al alcance y que resulten de una reducción de la capacidad de transmisión. Con el objetivo de calcular la eficiencia consideraremos el diagrama de tiempo Con el objetivo de calcular la eficiencia consideraremos el diagrama de tiempo siguiente: siguiente: Recordemos que tp es el tiempo de propagación. Supondremos que todas las tramas tienen el mismo tamaño, igual a L bits (si el tamaño fuera variable, to- Podéis ver la ecuación 1 en el subapartado 3.1 de este módulo didáctico. Recordemos que tp es el tiempo de propagación. Supondremos que todas las tramas tienen el mismo tamaño, igual a L bits (si el tamaño fuera variable, to- maríamos como L su valor medio). El tiempo necesario para la transmisión de maríamos como L su valor medio). El tiempo necesario para la transmisión de la trama lo da la ecuación 1. De la misma manera, si las confirmaciones son la trama lo da la ecuación 1. De la misma manera, si las confirmaciones son de M bits, el tiempo de transmisión de una confirmación (ta) es: de M bits, el tiempo de transmisión de una confirmación (ta) es: Ecuación 8 M ( bit ) t a ( s ) = ------------------v t ( bps ) Ecuación 8 M ( bit ) t a ( s ) = ------------------v t ( bps ) Según esto, el ciclo indicado como Tc en la figura se repetirá en la transmisión Según esto, el ciclo indicado como Tc en la figura se repetirá en la transmisión de cada trama. Si se aplica la ecuación 6, la eficiencia del protocolo vendrá de cada trama. Si se aplica la ecuación 6, la eficiencia del protocolo vendrá dada por la relación entre el tiempo de transmisión de la trama (tt) y el tiempo dada por la relación entre el tiempo de transmisión de la trama (tt) y el tiempo invertido para la transmisión de la trama (Tc). De la figura anterior deducimos invertido para la transmisión de la trama (Tc). De la figura anterior deducimos que Tc es Tc = tt + tp + ta + tp; así: que Tc es Tc = tt + tp + ta + tp; así: Ecuación 9 t tt E = -----t = --------------------------Tc t t + t a + 2t p Enlace de datos Ecuación 9 t tt E = -----t = --------------------------Tc t t + t a + 2t p Podéis ver la ecuación 1 en el subapartado 3.1 de este módulo didáctico. 30 FUOC • P03/75098/02118 Enlace de datos 30 FUOC • P03/75098/02118 A menudo, el tamaño de las tramas de información es mucho mayor que el de A menudo, el tamaño de las tramas de información es mucho mayor que el de las confirmaciones. Entonces tt >> ta y, por lo tanto, la ecuación 9 se puede las confirmaciones. Entonces tt >> ta y, por lo tanto, la ecuación 9 se puede reescribir de la manera siguiente: reescribir de la manera siguiente: Ecuación 10 tt 1 1 E ≈ ----------------= ------------------------- = ---------------t t + 2t p 1 + 2t p ⁄ t t 1 + 2a En función de la eficiencia podemos calcular la velocidad efectiva (veƒ): Ecuación 11 vt v ef = v t ⋅ E ≈ ---------------1 + 2a a = tp/tt Ecuación 10 tt 1 1 E ≈ ----------------= ------------------------- = ---------------t t + 2t p 1 + 2t p ⁄ t t 1 + 2a En función de la eficiencia podemos calcular la velocidad efectiva (veƒ): Ecuación 11 vt v ef = v t ⋅ E ≈ ---------------1 + 2a El parámetro a, según la medida de la trama, tiene la interpretación física si- El parámetro a, según la medida de la trama, tiene la interpretación física si- guiente: guiente: t tp tp ⋅ vt número de bits que caben en el enlace a = ---p- = ----------= ------------ = ----------------------------------------------------------------------------------------------------------L tamaño de la trama tt L ⁄ vt t tp tp ⋅ vt número de bits que caben en el enlace a = ---p- = ----------= ------------ = ----------------------------------------------------------------------------------------------------------L tamaño de la trama tt L ⁄ vt Es decir, podemos interpretar a como el número de tramas que caben en el Es decir, podemos interpretar a como el número de tramas que caben en el enlace. Por lo tanto, se da uno de estos casos: enlace. Por lo tanto, se da uno de estos casos: • Si a > 1, cuando el primer bit de la trama llega al secundario, el primario ya • Si a > 1, cuando el primer bit de la trama llega al secundario, el primario ya ha acabado de transmitir la trama. • Si a < 1, cuando el primer bit de la trama llega al secundario, el primario todavía no ha acabado de transmitir la trama. ha acabado de transmitir la trama. • Si a < 1, cuando el primer bit de la trama llega al secundario, el primario todavía no ha acabado de transmitir la trama. Hay que tener en cuenta las observaciones siguientes: Hay que tener en cuenta las observaciones siguientes: a) La eficiencia normalmente se da en tanto por ciento, es decir, multiplican- a) La eficiencia normalmente se da en tanto por ciento, es decir, multiplican- do el resultado de la ecuación 9 por 100. do el resultado de la ecuación 9 por 100. b) En el caso de que haya errores, la eficiencia es inferior porque hay que con- b) En el caso de que haya errores, la eficiencia es inferior porque hay que con- siderar las retransmisiones. Para evitar confusiones hablaremos de la eficien- siderar las retransmisiones. Para evitar confusiones hablaremos de la eficien- cia máxima para referirnos a la eficiencia que podemos conseguir en el mejor cia máxima para referirnos a la eficiencia que podemos conseguir en el mejor de los casos, es decir, sin errores. de los casos, es decir, sin errores. Enlace de datos a = tp/tt 31 FUOC • P03/75098/02118 c) Tal y como se ha comentado antes, deben tenerse en cuenta todos los datos que afecten a la eficiencia y que tengamos al alcance, por ejemplo los campos de control de las tramas de información. Supongamos que sabemos que de los L bits de las tramas de información hay Ld de información y Lc de control. Aplicando la ecuación 7, la eficiencia debida a los bits de control de la trama (llamémosla Et) se obtendría a partir de la ecuación siguiente: Ecuación 12 L E t = ----dL Evidentemente, la eficiencia total (Etot) es el producto de la eficiencia parcial: Ecuación 13 E tot = E p ⋅ E t Enlace de datos Notación En el cálculo de la eficiencia utilizaremos la notación siguiente: • Si tenemos que considerar la eficiencia debida a distintos factores, nos referiremos a cada uno con una E con un subíndice, y con Etot al producto de todas. • Si sólo consideramos una eficiencia, nos referiremos a la misma con la letra E sin ningún subíndice. EP es la eficiencia del protocolo, dada por las ecuaciones 9 y 10. 31 FUOC • P03/75098/02118 c) Tal y como se ha comentado antes, deben tenerse en cuenta todos los datos que afecten a la eficiencia y que tengamos al alcance, por ejemplo los campos de control de las tramas de información. Supongamos que sabemos que de los L bits de las tramas de información hay Ld de información y Lc de control. Aplicando la ecuación 7, la eficiencia debida a los bits de control de la trama (llamémosla Et) se obtendría a partir de la ecuación siguiente: Ecuación 12 L E t = ----dL Evidentemente, la eficiencia total (Etot) es el producto de la eficiencia parcial: Ecuación 13 E tot = E p ⋅ E t Actividad Actividad Calculad la eficiencia máxima que se puede conseguir en un enlace punto a punto que utiliza un protocolo Stop & Wait en los casos siguientes: Calculad la eficiencia máxima que se puede conseguir en un enlace punto a punto que utiliza un protocolo Stop & Wait en los casos siguientes: a) Enlace entre dos estaciones de una red de dimensiones reducidas con estos datos: a) Enlace entre dos estaciones de una red de dimensiones reducidas con estos datos: • • • • • Distancia entre las estaciones = 1 km Velocidad de transmisión del enlace = 10 Mbps Velocidad de propagación en el enlace = 2 · 108 m/s Tamaño medio de las tramas de información = 5 kbits Tamaño de las confirmaciones negligible b) Enlace vía satélite con los datos siguientes: • • • • Tiempo de propagación entre estaciones = 270 ms Velocidad de transmisión del enlace = 56 kbps Tamaño medio de las tramas de información = 4 kbits Tamaño de las confirmaciones negligible • • • • • Distancia entre las estaciones = 1 km Velocidad de transmisión del enlace = 10 Mbps Velocidad de propagación en el enlace = 2 · 108 m/s Tamaño medio de las tramas de información = 5 kbits Tamaño de las confirmaciones negligible b) Enlace vía satélite con los datos siguientes: • • • • Tiempo de propagación entre estaciones = 270 ms Velocidad de transmisión del enlace = 56 kbps Tamaño medio de las tramas de información = 4 kbits Tamaño de las confirmaciones negligible Solución Solución a) tp = D/vp = 103 / 2 · 108 = 0,5 · 10-5 s. tt = L/vt = 5 · 103 / 10 · 106 = 5 · 10-4 s. E(%) = tt / (tt + 2tp) · 100 = 98%. b) tt = 4 · 103 / 56 · 103 = 71,5 ms, de donde E = 12%. a) tp = D/vp = 103 / 2 · 108 = 0,5 · 10-5 s. tt = L/vt = 5 · 103 / 10 · 106 = 5 · 10-4 s. E(%) = tt / (tt + 2tp) · 100 = 98%. b) tt = 4 · 103 / 56 · 103 = 71,5 ms, de donde E = 12%. Una vez hayáis hecho esta actividad, veréis que para conseguir eficiencia ele- Una vez hayáis hecho esta actividad, veréis que para conseguir eficiencia ele- vada con el protocolo Stop & Wait se tiene que cumplir que a << 1; es decir, vada con el protocolo Stop & Wait se tiene que cumplir que a << 1; es decir, que el tiempo de propagación sea pequeño en comparación con el tiempo de que el tiempo de propagación sea pequeño en comparación con el tiempo de transmisión de una trama de información. transmisión de una trama de información. 3.4. Protocolos de transmisión continua 3.4. Protocolos de transmisión continua Acabamos de ver que el Stop & Wait puede llegar a ser muy ineficiente, a causa Acabamos de ver que el Stop & Wait puede llegar a ser muy ineficiente, a causa de que el primario no puede transmitir durante el tiempo de espera de las con- de que el primario no puede transmitir durante el tiempo de espera de las con- firmaciones. firmaciones. En los protocolos de transmisión continua se deja que el primario trans- En los protocolos de transmisión continua se deja que el primario trans- mita continuamente tramas de información mientras se esperan las mita continuamente tramas de información mientras se esperan las confirmaciones. confirmaciones. Enlace de datos Notación En el cálculo de la eficiencia utilizaremos la notación siguiente: • Si tenemos que considerar la eficiencia debida a distintos factores, nos referiremos a cada uno con una E con un subíndice, y con Etot al producto de todas. • Si sólo consideramos una eficiencia, nos referiremos a la misma con la letra E sin ningún subíndice. EP es la eficiencia del protocolo, dada por las ecuaciones 9 y 10. FUOC • P03/75098/02118 32 Enlace de datos Evidentemente, esto sólo es posible si el enlace es full duplex, porque el primario y el secundario tienen que poder ocupar simultáneamente el canal. En el caso del protocolo Stop & Wait esto no es necesario porque el primario y el se- FUOC • P03/75098/02118 32 Evidentemente, esto sólo es posible si el enlace es full duplex, porque el primaPodéis ver el enlace full duplex en el subapartado 3.1 del módulo “Transmisión de datos” de esta asignatura. rio y el secundario tienen que poder ocupar simultáneamente el canal. En el caso del protocolo Stop & Wait esto no es necesario porque el primario y el se- cundario ocupan el canal alternativamente. cundario ocupan el canal alternativamente. En caso de error, el primario se puede ver obligado a retransmitir una trama En caso de error, el primario se puede ver obligado a retransmitir una trama anterior a la última transmitida. anterior a la última transmitida. Así pues, en un protocolo de transmisión continua es necesario que el prima- Así pues, en un protocolo de transmisión continua es necesario que el prima- rio guarde en una lista las tramas que se han enviado y que están pendientes rio guarde en una lista las tramas que se han enviado y que están pendientes de confirmar, para poder retransmitirlas en caso de error. Esta lista se denomi- de confirmar, para poder retransmitirlas en caso de error. Esta lista se denomi- na lista de transmisión. na lista de transmisión. La figura siguiente muestra el principio de funcionamiento de un protocolo de transmisión continua. Cada trama transmitida se guarda en una lista y se Podéis consultar el cálculo de la eficiencia en presencia de errores en el anexo 2 de este módulo didáctico. La figura siguiente muestra el principio de funcionamiento de un protocolo de transmisión continua. Cada trama transmitida se guarda en una lista y se extrae cuando llega su confirmación. Se puede observar que el primario no se extrae cuando llega su confirmación. Se puede observar que el primario no se queda nunca parado; es decir, en ausencia de errores la eficiencia de un proto- queda nunca parado; es decir, en ausencia de errores la eficiencia de un proto- colo de transmisión continua es del 100%. colo de transmisión continua es del 100%. En caso de error se utiliza una de las dos estrategias que se explican a conti- En caso de error se utiliza una de las dos estrategias que se explican a conti- nuación: la retransmisión selectiva y el protocolo Go back N. nuación: la retransmisión selectiva y el protocolo Go back N. 3.4.1. Retransmisión selectiva 3.4.1. Retransmisión selectiva En la estrategia de retransmisión selectiva el secundario sólo solicita la retransmisión de las tramas erróneas. En función del convenio que se utiliza para solicitar la retransmisión, hay dos versiones de este protocolo: la implícita y la explícita (análogas a las que hay en el protocolo Stop & Wait). Enlace de datos Podéis ver las versiones implícitas y explícitas del protocolo Stop & Wait en los subapartados 3.3.1 y 3.3.2, respectivamente, de este módulo didáctico. En la estrategia de retransmisión selectiva el secundario sólo solicita la retransmisión de las tramas erróneas. En función del convenio que se utiliza para solicitar la retransmisión, hay dos versiones de este protocolo: la implícita y la explícita (análogas a las que hay en el protocolo Stop & Wait). Podéis ver el enlace full duplex en el subapartado 3.1 del módulo “Transmisión de datos” de esta asignatura. Podéis consultar el cálculo de la eficiencia en presencia de errores en el anexo 2 de este módulo didáctico. Podéis ver las versiones implícitas y explícitas del protocolo Stop & Wait en los subapartados 3.3.1 y 3.3.2, respectivamente, de este módulo didáctico. FUOC • P03/75098/02118 33 Enlace de datos FUOC • P03/75098/02118 33 Retransmisión selectiva implícita Retransmisión selectiva implícita Las reglas que debe cumplir una retransmisión selectiva implícita son las si- Las reglas que debe cumplir una retransmisión selectiva implícita son las si- guientes: guientes: a) El secundario sólo envía confirmaciones positivas. a) El secundario sólo envía confirmaciones positivas. b) El secundario envía una confirmación por cada trama de información b) El secundario envía una confirmación por cada trama de información recibida. recibida. c) Si el primario recibe dos confirmaciones no consecutivas, deduce que la c) Si el primario recibe dos confirmaciones no consecutivas, deduce que la confirmación que falta corresponde a una trama errónea y la retransmite. confirmación que falta corresponde a una trama errónea y la retransmite. d) Como en el protocolo Stop & Wait, el primario tiene que activar un time-out d) Como en el protocolo Stop & Wait, el primario tiene que activar un time-out para la retransmisión de las tramas pendientes de confirmar. Esto es así porque para la retransmisión de las tramas pendientes de confirmar. Esto es así porque una trama puede llegar con errores en sucesivas retransmisiones, pero el primario, una trama puede llegar con errores en sucesivas retransmisiones, pero el primario, con la no secuencia de las confirmaciones, sólo detectará el primer error. con la no secuencia de las confirmaciones, sólo detectará el primer error. Tal y como ya se ha comentado, el nivel de enlace debe entregar los datos de in- Tal y como ya se ha comentado, el nivel de enlace debe entregar los datos de in- formación que llevan las tramas no tan sólo sin errores, sino también en orden. formación que llevan las tramas no tan sólo sin errores, sino también en orden. Si en una retransmisión selectiva se produce un error, el secundario tie- Si en una retransmisión selectiva se produce un error, el secundario tie- ne que memorizar las tramas que llegan después de la trama con errores ne que memorizar las tramas que llegan después de la trama con errores en una lista para poder entregarlas en orden. Ésta se conoce como la lis- en una lista para poder entregarlas en orden. Ésta se conoce como la lis- ta de recepción. ta de recepción. En la figura siguiente se muestra una condición de error en una retransmisión En la figura siguiente se muestra una condición de error en una retransmisión selectiva implícita y la lista de recepción que es necesario que el secundario selectiva implícita y la lista de recepción que es necesario que el secundario elabore para poder reordenar las tramas: elabore para poder reordenar las tramas: En la lista de recepción también podríamos considerar la posición ocupada por la trama en fase de recepción. Enlace de datos En la lista de recepción también podríamos considerar la posición ocupada por la trama en fase de recepción. FUOC • P03/75098/02118 34 • La trama IK+1 llega con errores y, por lo tanto, el secundario no envía la confirmación correspondiente. Enlace de datos FUOC • P03/75098/02118 34 • La trama IK+1 llega con errores y, por lo tanto, el secundario no envía la confirmación correspondiente. • Cuando la confirmación AK+2 llega al primario, éste se da cuenta del error • Cuando la confirmación AK+2 llega al primario, éste se da cuenta del error en la trama IK+1 porque no ha recibido la confirmación, y retransmite la en la trama IK+1 porque no ha recibido la confirmación, y retransmite la copia que guarda en la lista de tramas no confirmadas. copia que guarda en la lista de tramas no confirmadas. Retransmisión selectiva explícita Retransmisión selectiva explícita Las reglas que debe cumplir una retransmisión selectiva explícita son las si- Las reglas que debe cumplir una retransmisión selectiva explícita son las si- guientes: guientes: a) El secundario envía confirmaciones positivas cuando la trama es correcta y a) El secundario envía confirmaciones positivas cuando la trama es correcta y negativas cuando recibe una trama con errores o fuera de secuencia. negativas cuando recibe una trama con errores o fuera de secuencia. b) Si el primario recibe una confirmación negativa NAK, debe retransmitir la b) Si el primario recibe una confirmación negativa NAK, debe retransmitir la trama IK e interpreta que todas las tramas anteriores a IK se han recibido co- trama IK e interpreta que todas las tramas anteriores a IK se han recibido co- rrectamente: una confirmación A K confirma la trama IK y todas las anteriores. rrectamente: una confirmación A K confirma la trama IK y todas las anteriores. Una consecuencia de esta regla es que, mientras el secundario espera la retransmisión de una trama K, deja de enviar confirmaciones positivas o negativas de tramas posteriores a la K. Una consecuencia de esta regla es que, mientras el secundario espera la retransmisión de una trama K, deja de enviar confirmaciones positivas o negativas de tramas posteriores a la K. c) El secundario tiene que activar un time-out para la retransmisión de las con- c) El secundario tiene que activar un time-out para la retransmisión de las con- firmaciones negativas de las tramas no recibidas, ya que una confirmación ne- firmaciones negativas de las tramas no recibidas, ya que una confirmación ne- gativa NAK podría perderse o llegar con errores, y el primario no retransmitiría gativa NAK podría perderse o llegar con errores, y el primario no retransmitiría la trama IK. la trama IK. La figura siguiente muestra el funcionamiento de la retransmisión selectiva La figura siguiente muestra el funcionamiento de la retransmisión selectiva explícita: explícita: Enlace de datos FUOC • P03/75098/02118 • 35 La trama I K+1 llega con errores y, por lo tanto, el secundario envía la co- Enlace de datos FUOC • P03/75098/02118 • 35 La trama I K+1 llega con errores y, por lo tanto, el secundario envía la co- rrespondiente confirmación negativa NAK+1 y deja de transmitir confir- rrespondiente confirmación negativa NAK+1 y deja de transmitir confir- maciones. maciones. • Cuando NAK+1 llega al primario, éste retransmite la trama IK+1. • Cuando NAK+1 llega al primario, éste retransmite la trama IK+1. • Cuando IK+1 llega al secundario, éste envía AK+3 y confirma todas las tra- • Cuando IK+1 llega al secundario, éste envía AK+3 y confirma todas las tra- mas recibidas correctamente hasta entonces. mas recibidas correctamente hasta entonces. 3.4.2. Protocolo Go back N 3.4.2. Protocolo Go back N En muchos enlaces la probabilidad de error en una trama es relativamente En muchos enlaces la probabilidad de error en una trama es relativamente baja, de manera que la retransmisión de tramas es un acontecimiento poco baja, de manera que la retransmisión de tramas es un acontecimiento poco frecuente. Aprovechando esto, el protocolo Go back N simplifica el meca- frecuente. Aprovechando esto, el protocolo Go back N simplifica el meca- nismo de recepción de las tramas y elimina así el problema de la reordena- nismo de recepción de las tramas y elimina así el problema de la reordena- ción. ción. Para eliminar el problema de la reordenación, en caso de error el primario re- Para eliminar el problema de la reordenación, en caso de error el primario re- transmite todas las tramas a partir de la trama errónea. De este modo, cuando transmite todas las tramas a partir de la trama errónea. De este modo, cuando el secundario detecta un error, lo comunica al primario y descarta todas las tra- el secundario detecta un error, lo comunica al primario y descarta todas las tra- mas que le llegan hasta la nueva recepción de la trama errónea, que irá seguida mas que le llegan hasta la nueva recepción de la trama errónea, que irá seguida de las tramas descartadas. de las tramas descartadas. El protocolo Go back N, en la práctica, sólo existe en la versión explícita. De El protocolo Go back N, en la práctica, sólo existe en la versión explícita. De esta forma, en caso de error el secundario descarta las tramas hasta que el pri- esta forma, en caso de error el secundario descarta las tramas hasta que el pri- mario retransmite la trama errónea y, por lo tanto, no tendría sentido enviar mario retransmite la trama errónea y, por lo tanto, no tendría sentido enviar confirmaciones de las tramas descartadas. Así pues, las reglas del protocolo Go confirmaciones de las tramas descartadas. Así pues, las reglas del protocolo Go back N son las siguientes: back N son las siguientes: a) Cuando el secundario recibe una trama con errores (o fuera de secuencia), a) Cuando el secundario recibe una trama con errores (o fuera de secuencia), solicita la retransmisión de trama errónea (o de la trama que falta) enviando solicita la retransmisión de trama errónea (o de la trama que falta) enviando una confirmación negativa. una confirmación negativa. b) El primario siempre transmite las tramas en secuencia, de manera que si re- b) El primario siempre transmite las tramas en secuencia, de manera que si re- cibe una confirmación negativa NAK, retransmite la trama IK y todas las pos- cibe una confirmación negativa NAK, retransmite la trama IK y todas las pos- teriores, aunque ya las hubiera transmitido. teriores, aunque ya las hubiera transmitido. c) Una confirmación positiva AK confirma la trama IK y todas las anteriores. c) Una confirmación positiva AK confirma la trama IK y todas las anteriores. Así pues, la pérdida de una confirmación no tiene ningún efecto porque la Así pues, la pérdida de una confirmación no tiene ningún efecto porque la confirmación siguiente ratifica la perdida. Una confirmación negativa de la confirmación siguiente ratifica la perdida. Una confirmación negativa de la trama K también ratifica todas las tramas anteriores a K. trama K también ratifica todas las tramas anteriores a K. d) El secundario activa un time-out para la retransmisión de las confirmacio- d) El secundario activa un time-out para la retransmisión de las confirmacio- nes negativas de las tramas no recibidas. nes negativas de las tramas no recibidas. Enlace de datos FUOC • P03/75098/02118 36 Enlace de datos FUOC • P03/75098/02118 36 La figura siguiente muestra el funcionamiento del protocolo Go back N: La figura siguiente muestra el funcionamiento del protocolo Go back N: a) La trama IK+1 llega con errores y, por lo tanto, el secundario envía la corres- a) La trama IK+1 llega con errores y, por lo tanto, el secundario envía la corres- pondiente confirmación negativa NAK+1. pondiente confirmación negativa NAK+1. b) Cuando NAK+1. llega al primario, éste aborta la transmisión en curso de la b) Cuando NAK+1. llega al primario, éste aborta la transmisión en curso de la trama IK+3 y empieza a retransmitir inmediatamente la trama IK+1. trama IK+3 y empieza a retransmitir inmediatamente la trama IK+1. Dado que el secundario no tiene que reordenar las tramas, no necesita una lis- Dado que el secundario no tiene que reordenar las tramas, no necesita una lis- ta para la reordenación. ta para la reordenación. Enlace de datos FUOC • P03/75098/02118 37 Enlace de datos FUOC • P03/75098/02118 37 4. Control de flujo 4. Control de flujo El control de flujo consiste en regular la velocidad de transmisión de las tra- El control de flujo consiste en regular la velocidad de transmisión de las tra- mas. La necesidad del control de flujo se explica por los motivos siguientes: mas. La necesidad del control de flujo se explica por los motivos siguientes: 1) Puede ocurrir que el mismo nivel de enlace no sea capaz de procesar las tra- 1) Puede ocurrir que el mismo nivel de enlace no sea capaz de procesar las tra- mas a la velocidad con la que llegan. mas a la velocidad con la que llegan. 2) En los protocolos de transmisión continua, el primario necesita una me- 2) En los protocolos de transmisión continua, el primario necesita una me- moria donde almacenar la lista de tramas pendientes de confirmar. Si no im- moria donde almacenar la lista de tramas pendientes de confirmar. Si no im- ponemos ninguna limitación a la velocidad de transmisión de las tramas, no ponemos ninguna limitación a la velocidad de transmisión de las tramas, no seremos capaces de dimensionar la memoria necesaria. seremos capaces de dimensionar la memoria necesaria. 3) Hasta ahora hemos supuesto que el nivel superior siempre está dispuesto a 3) Hasta ahora hemos supuesto que el nivel superior siempre está dispuesto a aceptar las tramas del nivel de enlace. En la práctica, sin embargo, es posible aceptar las tramas del nivel de enlace. En la práctica, sin embargo, es posible que esto no sea así. En este caso se podría agotar la memoria en la que el se- que esto no sea así. En este caso se podría agotar la memoria en la que el se- cundario almacena las tramas recibidas. cundario almacena las tramas recibidas. Típicamente, en el nivel de enlace el algoritmo de control de flujo está vinculado al algoritmo de control de errores. Por ejemplo, el protocolo Stop & Wait sirve sin modificaciones para hacer un control de flujo. Simplemente, el secundario tiene que retrasar las confirmaciones para conseguir disminuir la velocidad de transmisión del primario. 4.1. Protocolos de ventana Los algoritmos de transmisión continua no tienen que esperar las confirma- Control de flujo X-ON/X-OFF En algunas transmisiones orientadas a carácter (donde la unidad de transmisión de nivel físico es el carácter), se utiliza el mecanismo de control de flujo denominado X-ON/X-OFF. En este mecanismo hay un carácter especial (X-OFF) que se envía para detener el equipo remoto. Cuando uno de los equipos recibe un carácter X-OFF, se para hasta recibir el carácter de activación X-ON. Típicamente, en el nivel de enlace el algoritmo de control de flujo está vinculado al algoritmo de control de errores. Por ejemplo, el protocolo Stop & Wait sirve sin modificaciones para hacer un control de flujo. Simplemente, el secundario tiene que retrasar las confirmaciones para conseguir disminuir la velocidad de transmisión del primario. 4.1. Protocolos de ventana Los algoritmos de transmisión continua no tienen que esperar las confirma- ciones para la transmisión de nuevas tramas. De esta forma, dejar de enviar ciones para la transmisión de nuevas tramas. De esta forma, dejar de enviar confirmaciones no permite hacer un control de flujo. Para hacerlo, se limita confirmaciones no permite hacer un control de flujo. Para hacerlo, se limita el número de tramas que se pueden transmitir sin confirmar. Los protocolos el número de tramas que se pueden transmitir sin confirmar. Los protocolos resultantes se conocen como protocolos de ventana, porque esta limitación se resultantes se conocen como protocolos de ventana, porque esta limitación se puede interpretar como una ventana que se desplaza sobre el flujo de tramas puede interpretar como una ventana que se desplaza sobre el flujo de tramas del primario a medida que llegan las confirmaciones. del primario a medida que llegan las confirmaciones. Los protocolos de ventana son protocolos de transmisión continua en Los protocolos de ventana son protocolos de transmisión continua en los que el primario puede transmitir hasta W tramas después de la trama los que el primario puede transmitir hasta W tramas después de la trama K, una vez están confirmadas la trama K y todas las anteriores. El pará- K, una vez están confirmadas la trama K y todas las anteriores. El pará- metro W se denomina tamaño de la ventana. metro W se denomina tamaño de la ventana. El transmisor mantiene un puntero P en la primera trama no confirmada (to- El transmisor mantiene un puntero P en la primera trama no confirmada (to- das las tramas con identificador menor que P están confirmadas). Este puntero das las tramas con identificador menor que P están confirmadas). Este puntero se actualiza a medida que llegan las confirmaciones. se actualiza a medida que llegan las confirmaciones. Enlace de datos Control de flujo X-ON/X-OFF En algunas transmisiones orientadas a carácter (donde la unidad de transmisión de nivel físico es el carácter), se utiliza el mecanismo de control de flujo denominado X-ON/X-OFF. En este mecanismo hay un carácter especial (X-OFF) que se envía para detener el equipo remoto. Cuando uno de los equipos recibe un carácter X-OFF, se para hasta recibir el carácter de activación X-ON. FUOC • P03/75098/02118 38 Enlace de datos FUOC • P03/75098/02118 38 El primario está autorizado a transmitir tramas con identificadores < P + W. Las El primario está autorizado a transmitir tramas con identificadores < P + W. Las tramas P, P + 1, ..., P + W − 1 se conocen como ventana de transmisión. Por ejem- tramas P, P + 1, ..., P + W − 1 se conocen como ventana de transmisión. Por ejem- plo, si en las condiciones de la figura siguiente no llegan más confirmaciones, des- plo, si en las condiciones de la figura siguiente no llegan más confirmaciones, des- pués de la transmisión de la trama IK+7 el primario se quedará parado: pués de la transmisión de la trama IK+7 el primario se quedará parado: Para hacer el control de flujo en un protocolo de ventana, el secundario sim- Para hacer el control de flujo en un protocolo de ventana, el secundario sim- plemente deja de enviar confirmaciones. En este caso, el primario agotará la plemente deja de enviar confirmaciones. En este caso, el primario agotará la ventana y se parará. ventana y se parará. La ventana mínima que se puede definir es W = 1. En este caso, el primario no La ventana mínima que se puede definir es W = 1. En este caso, el primario no puede transmitir una nueva trama hasta que se confirme la anterior; es decir, puede transmitir una nueva trama hasta que se confirme la anterior; es decir, un protocolo de ventana con una ventana de tamaño W = 1 es equivalente un protocolo de ventana con una ventana de tamaño W = 1 es equivalente a un protocolo Stop & Wait. a un protocolo Stop & Wait. 4.2. Dimensionado de la lista de transmisión 4.2. Dimensionado de la lista de transmisión Una propiedad importante de la ventana de transmisión es que permite di- Una propiedad importante de la ventana de transmisión es que permite di- mensionar la memoria necesaria para almacenar la lista de tramas pendientes mensionar la memoria necesaria para almacenar la lista de tramas pendientes de confirmar del primario. de confirmar del primario. El razonamiento que seguiremos para llegar a esta conclusión es el siguiente: El razonamiento que seguiremos para llegar a esta conclusión es el siguiente: si todas las tramas con identificador menor que P (donde P es el puntero a la si todas las tramas con identificador menor que P (donde P es el puntero a la primera trama no confirmada) han sido confirmadas, podemos asegurar que primera trama no confirmada) han sido confirmadas, podemos asegurar que el secundario no solicitará la retransmisión de ninguna de éstas y, en conse- el secundario no solicitará la retransmisión de ninguna de éstas y, en conse- cuencia, no hay que guardarlas en la lista. Dado que el primario no puede ha- cuencia, no hay que guardarlas en la lista. Dado que el primario no puede ha- ber transmitido ninguna trama con identificador mayor o igual que P + W, y ber transmitido ninguna trama con identificador mayor o igual que P + W, y que en la lista sólo ha guardado las tramas transmitidas, deducimos que en la que en la lista sólo ha guardado las tramas transmitidas, deducimos que en la lista de tramas no confirmadas del primario de un protocolo de ventana puede lista de tramas no confirmadas del primario de un protocolo de ventana puede haber como máximo W tramas. haber como máximo W tramas. 4.3. Ventana de recepción 4.3. Ventana de recepción Por analogía con la ventana de transmisión, la ventana de recep- Por analogía con la ventana de transmisión, la ventana de recep- ción se define como el número máximo de tramas que debe almace- ción se define como el número máximo de tramas que debe almace- nar el secundario. nar el secundario. Enlace de datos 39 FUOC • P03/75098/02118 Enlace de datos 39 FUOC • P03/75098/02118 Enlace de datos Cuando se define la ventana de recepción se asume que el nivel de enlace Cuando se define la ventana de recepción se asume que el nivel de enlace saca de la lista de recepción todas las tramas que no están pendientes de ser saca de la lista de recepción todas las tramas que no están pendientes de ser recibidas con un identificador anterior. De esta manera, se garantiza que recibidas con un identificador anterior. De esta manera, se garantiza que los datos que llevan estas tramas se pasan sin errores y de manera secuen- los datos que llevan estas tramas se pasan sin errores y de manera secuen- ciada al nivel superior. Además, en la ventana de recepción se incluye la ciada al nivel superior. Además, en la ventana de recepción se incluye la trama que está en fase de recepción. trama que está en fase de recepción. Así pues, la ventana mínima en recepción es igual a 1 (para almacenar la Así pues, la ventana mínima en recepción es igual a 1 (para almacenar la trama en fase de recepción). trama en fase de recepción). También deben almacenarse las tramas que se pueden tener que reordenar. También deben almacenarse las tramas que se pueden tener que reordenar. Puesto que en los protocolos Stop & Wait y Go back N no existe el problema de Puesto que en los protocolos Stop & Wait y Go back N no existe el problema de la reordenación de las tramas, tienen una ventana de recepción que vale 1. la reordenación de las tramas, tienen una ventana de recepción que vale 1. El problema de la reordenación sólo surge en el caso de la retransmisión selectiva. Para conocer cuál es el número máximo de tramas que se pueden Podéis ver la figura mencionada en el subapartado 4.1. de este módulo didáctico. El problema de la reordenación sólo surge en el caso de la retransmisión selectiva. Para conocer cuál es el número máximo de tramas que se pueden tener que reordenar en el secundario, basaremos el razonamiento en la fi- tener que reordenar en el secundario, basaremos el razonamiento en la fi- gura anterior. Dado que todas las tramas con identificadores menores o gura anterior. Dado que todas las tramas con identificadores menores o iguales que K han sido confirmadas, tienen que haber sido recibidas sin iguales que K han sido confirmadas, tienen que haber sido recibidas sin errores por el secundario y, por lo tanto, éste las debe haber sacado de la errores por el secundario y, por lo tanto, éste las debe haber sacado de la lista de recepción. Así pues, resulta que las únicas tramas que puede tener lista de recepción. Así pues, resulta que las únicas tramas que puede tener que ordenar el secundario son las K + 1 … K + W tramas que el primario ha que ordenar el secundario son las K + 1 … K + W tramas que el primario ha sido autorizado a transmitir (en total W tramas). sido autorizado a transmitir (en total W tramas). Por lo tanto, en una retransmisión selectiva el tamaño de la ventana de re- Por lo tanto, en una retransmisión selectiva el tamaño de la ventana de re- cepción es igual que el tamaño de la ventana de transmisión. cepción es igual que el tamaño de la ventana de transmisión. La tabla siguiente resume el tamaño de las ventanas en los tres protocolos: La tabla siguiente resume el tamaño de las ventanas en los tres protocolos: Tamaño de las ventanas de transmisión y recepción Tamaño de las ventanas de transmisión y recepción Protocolo Ventana de transmisión Ventana de recepción Protocolo Ventana de transmisión Ventana de recepción Stop & Wait 1 1 Stop & Wait 1 1 Go back N W 1 Go back N W 1 Retransmisión selectiva W W Retransmisión selectiva W W 4.4. Ventana óptima 4.4. Ventana óptima Hemos visto que la eficiencia de los protocolos de transmisión continua es del Hemos visto que la eficiencia de los protocolos de transmisión continua es del 100%, gracias al hecho de que el primario no permanece nunca parado espe- 100%, gracias al hecho de que el primario no permanece nunca parado espe- rando confirmaciones. En un protocolo de ventana, esta condición puede no rando confirmaciones. En un protocolo de ventana, esta condición puede no darse; es decir, el transmisor se puede quedar parado si el tamaño de la venta- darse; es decir, el transmisor se puede quedar parado si el tamaño de la venta- na no es lo bastante grande. na no es lo bastante grande. Podéis ver la figura mencionada en el subapartado 4.1. de este módulo didáctico. 40 FUOC • P03/75098/02118 Enlace de datos 40 FUOC • P03/75098/02118 Ventana de transmisión pequeña Ventana de transmisión pequeña En la figura, la medida de la ventana es W = 3 (se pueden transmitir tres tramas sin confirmar). Es decir, después de transmitir una trama, el primario está autorizado a transmitir dos más antes de recibir la primera confirmación. En la figura se ve, sin embargo, que el tiempo de espera de la confirmación (Te) es mayor que el tiempo de transmisión de las dos tramas y el primario se queda parado. Actividad Enlace de datos En la figura, la medida de la ventana es W = 3 (se pueden transmitir tres tramas sin confirmar). Es decir, después de transmitir una trama, el primario está autorizado a transmitir dos más antes de recibir la primera confirmación. En la figura se ve, sin embargo, que el tiempo de espera de la confirmación (Te) es mayor que el tiempo de transmisión de las dos tramas y el primario se queda parado. Actividad Dad el valor de la eficiencia obtenida en la figura anterior en función de los parámetros tt, ta y tp definidos igual que en la figura “Evaluación del protocolo Stop & Wait”. Podéis ver la figura mencionada en el subapartado 3.3.4 de este módulo didáctico. Dad el valor de la eficiencia obtenida en la figura anterior en función de los parámetros tt, ta y tp definidos igual que en la figura “Evaluación del protocolo Stop & Wait”. Solución Solución En cada intervalo de tiempo igual a tt + Te (donde Te = 2tp + ta) se transmiten tres tramas de información. Así pues: E = 3tt / (tt + Te) = 3 tt / (tt + 2tp + ta) ≈ 3 / (1 + 2a), donde recordamos que a = tp/tt y se ha supuesto que ta << tt. En cada intervalo de tiempo igual a tt + Te (donde Te = 2tp + ta) se transmiten tres tramas de información. Así pues: E = 3tt / (tt + Te) = 3 tt / (tt + 2tp + ta) ≈ 3 / (1 + 2a), donde recordamos que a = tp/tt y se ha supuesto que ta << tt. En la actividad anterior podríamos conseguir una eficiencia del 100% con una En la actividad anterior podríamos conseguir una eficiencia del 100% con una ventana de transmisión mayor. ventana de transmisión mayor. La ventana óptima (Wopt) es la ventana mínima que permite conseguir La ventana óptima (Wopt) es la ventana mínima que permite conseguir una eficiencia del protocolo del 100%. una eficiencia del protocolo del 100%. En el ejemplo de la figura anterior hemos calculado que la ventana óptima En el ejemplo de la figura anterior hemos calculado que la ventana óptima (Wopt) vale lo siguiente: (Wopt) vale lo siguiente: Wopt = 1 + Te/tt = 1 + (2tp + ta) / tt, Wopt = 1 + Te/tt = 1 + (2tp + ta) / tt, donde x es el entero mayor o igual que x. donde x es el entero mayor o igual que x. 4.5. Dimensionamiento del campo de los identificadores de trama 4.5. Dimensionamiento del campo de los identificadores de trama Hasta ahora hemos supuesto que las tramas van numeradas para que se puedan identificar, sin preocuparnos de las limitaciones de esta secuencia de números. En la trama habrá un campo, supongamos que de n bits, destinado al número de secuencia. Dado que con n bits podemos generar 2n identificadores distintos, si numeramos de forma secuencial las tramas se repetirán cíclican mente los mismos identificadores cada 2 tramas. Podéis ver la figura mencionada en el subapartado 3.3.4 de este módulo didáctico. Con n cifras binarias... ... se puede representar el conjunto de enteros que hay entre 0 y 2n − 1. Por lo tanto, si el campo de los identificadores de trama es de n bits, disponemos de 2n identificadores distintos. Hasta ahora hemos supuesto que las tramas van numeradas para que se puedan identificar, sin preocuparnos de las limitaciones de esta secuencia de números. En la trama habrá un campo, supongamos que de n bits, destinado al número de secuencia. Dado que con n bits podemos generar 2n identificadores distintos, si numeramos de forma secuencial las tramas se repetirán cíclicamente los mismos identificadores cada 2n tramas. De esta forma, existe el peligro de que, al solicitar una retransmisión AK, haya am- De esta forma, existe el peligro de que, al solicitar una retransmisión AK, haya am- bigüedad: se puede tratar de la trama IK actual o de la del ciclo anterior. Igualmen- bigüedad: se puede tratar de la trama IK actual o de la del ciclo anterior. Igualmen- Con n cifras binarias... ... se puede representar el conjunto de enteros que hay entre 0 y 2n − 1. Por lo tanto, si el campo de los identificadores de trama es de n bits, disponemos de 2n identificadores distintos. FUOC • P03/75098/02118 41 Enlace de datos FUOC • P03/75098/02118 41 te, es necesario evitar que el secundario interprete como tramas duplicadas las que te, es necesario evitar que el secundario interprete como tramas duplicadas las que llegan con el mismo identificador, pero que son de ciclos distintos. llegan con el mismo identificador, pero que son de ciclos distintos. Para saber cuántos identificadores necesitamos como mínimo para evitar ambigüedades haremos una deducción informal para el caso del protocolo Stop & Podéis ver las condiciones que suponemos con respecto a la recepción de las tramas en el apartado 3 de este módulo didáctico. Para saber cuántos identificadores necesitamos como mínimo para evitar ambigüedades haremos una deducción informal para el caso del protocolo Stop & Wait. Supondremos las mismas condiciones que las que ya hemos enumerado Wait. Supondremos las mismas condiciones que las que ya hemos enumerado antes: las tramas pueden llegar con retardos arbitrarios, pero llegan en el orden antes: las tramas pueden llegar con retardos arbitrarios, pero llegan en el orden en el que se han transmitido. en el que se han transmitido. Dado que en este protocolo no se rompe nunca la secuencia de los identifica- Dado que en este protocolo no se rompe nunca la secuencia de los identifica- dores en la transmisión de las tramas de información, éstas siempre llegarán dores en la transmisión de las tramas de información, éstas siempre llegarán en orden. De este hecho se deduce que las confirmaciones también llegarán en orden. De este hecho se deduce que las confirmaciones también llegarán siempre en orden. siempre en orden. Supongamos que el primario ha recibido la confirmación de la trama K, pero Supongamos que el primario ha recibido la confirmación de la trama K, pero no la de la K + 1. Puesto que la ventana vale 1 y las tramas de información lle- no la de la K + 1. Puesto que la ventana vale 1 y las tramas de información lle- gan en orden, al secundario sólo pueden llegar tramas I K e IK+1. Y dado que las gan en orden, al secundario sólo pueden llegar tramas I K e IK+1. Y dado que las confirmaciones llegan en orden, al primario no le puede llegar ninguna con- confirmaciones llegan en orden, al primario no le puede llegar ninguna con- firmación anterior a la K. Por consiguiente, sólo le pueden llegar las confirma- firmación anterior a la K. Por consiguiente, sólo le pueden llegar las confirma- ciones AK y AK+1. Deducimos, pues, que en el caso del protocolo Stop & Wait ciones AK y AK+1. Deducimos, pues, que en el caso del protocolo Stop & Wait únicamente puede haber ambigüedad entre dos tramas y, por lo tanto, sólo únicamente puede haber ambigüedad entre dos tramas y, por lo tanto, sólo son necesarios dos identificadores distintos. son necesarios dos identificadores distintos. En la figura siguiente hay un ejemplo del funcionamiento del protocolo Stop En la figura siguiente hay un ejemplo del funcionamiento del protocolo Stop & Wait con dos identificadores (entre paréntesis en la figura). En este caso, la & Wait con dos identificadores (entre paréntesis en la figura). En este caso, la confirmación de la trama I K tarda un tiempo anormalmente largo y se retrans- confirmación de la trama I K tarda un tiempo anormalmente largo y se retrans- mite (salta el time-out T0). Eso provoca que la trama IK y la confirmación AK mite (salta el time-out T0). Eso provoca que la trama IK y la confirmación AK lleguen duplicadas con el identificador* (0). Tanto el primario cono el secundario detectan la duplicación porque la trama siguiente tiene el identificador * El identificador que se pondría en cada trama aparece entre paréntesis en la figura. lleguen duplicadas con el identificador* (0). Tanto el primario cono el secundario detectan la duplicación porque la trama siguiente tiene el identificador (1). Cuando llega la confirmación de la trama IK+1, el primario aborta la segun- (1). Cuando llega la confirmación de la trama IK+1, el primario aborta la segun- da transmisión de esta trama y empieza la transmisión de la siguiente (IK+2). da transmisión de esta trama y empieza la transmisión de la siguiente (IK+2). Lectura complementaria La deducción del número de identificadores necesarios en el caso de los protocolos Go back N y retransmisión selectiva es más compleja y no la haremos. El Para más detalles sobre la deducción del número de identificadores necesarios en cada protocolo se puede consultar la obra siguiente: D. Bertsekas; R. Gallager (1992). Data Networks (cap. 2). Upper Saddle River: Prentice Hall. Enlace de datos Podéis ver las condiciones que suponemos con respecto a la recepción de las tramas en el apartado 3 de este módulo didáctico. * El identificador que se pondría en cada trama aparece entre paréntesis en la figura. Lectura complementaria La deducción del número de identificadores necesarios en el caso de los protocolos Go back N y retransmisión selectiva es más compleja y no la haremos. El Para más detalles sobre la deducción del número de identificadores necesarios en cada protocolo se puede consultar la obra siguiente: D. Bertsekas; R. Gallager (1992). Data Networks (cap. 2). Upper Saddle River: Prentice Hall. 42 FUOC • P03/75098/02118 Enlace de datos 42 FUOC • P03/75098/02118 Enlace de datos resultado es que si el tamaño de la ventana es W, se necesitan W + 1 identifica- resultado es que si el tamaño de la ventana es W, se necesitan W + 1 identifica- dores distintos en el protocolo Go back N y 2W en el de retransmisión se- dores distintos en el protocolo Go back N y 2W en el de retransmisión se- lectiva. lectiva. El número de identificadores necesario, como se puede ver en la tabla si- El número de identificadores necesario, como se puede ver en la tabla si- guiente, coincide con la suma del tamaño de las ventanas de transmisión guiente, coincide con la suma del tamaño de las ventanas de transmisión y de recepción: y de recepción: Identificadores necesarios y ventana máxima en un protocolo de ventana Protocolo Número de identificadores necesarios Stop & Wait 2 Go back N W+1 Retransmisión selectiva 2W Identificadores necesarios y ventana máxima en un protocolo de ventana Tamaño de la ventana máximo si se utilizan n bits para los identificadores 2n − 1 2n−1 Tamaño de la ventana máximo si se utilizan n bits para los identificadores Protocolo Número de identificadores necesarios Stop & Wait 2 Go back N W+1 2n − 1 Retransmisión selectiva 2W 2n−1 Finalmente, el tamaño de la ventana máximo Wmáx, según el número de Finalmente, el tamaño de la ventana máximo Wmáx, según el número de n bits (n) que se utilicen en el campo del identificador de trama, será de Wmáx + 1 = 2 bits (n) que se utilicen en el campo del identificador de trama, será de Wmáx + 1 = 2n en el protocolo Stop & Wait y 2Wmáx = 2n en el de retransmisión selectiva. en el protocolo Stop & Wait y 2Wmáx = 2n en el de retransmisión selectiva. FUOC • P03/75098/02118 43 Enlace de datos FUOC • P03/75098/02118 43 5. Otras consideraciones sobre el nivel de enlace 5. Otras consideraciones sobre el nivel de enlace Hasta ahora, hemos visto las funciones más importantes asociadas al nivel Hasta ahora, hemos visto las funciones más importantes asociadas al nivel de enlace, que son la sincronización de las tramas, la detección y el control de de enlace, que son la sincronización de las tramas, la detección y el control de errores y el control de flujo. En este apartado se explican algunos detalles errores y el control de flujo. En este apartado se explican algunos detalles que también podemos encontrar en un protocolo de nivel de enlace. que también podemos encontrar en un protocolo de nivel de enlace. El objetivo de este apartado es, además, dar ejemplos de los contextos donde El objetivo de este apartado es, además, dar ejemplos de los contextos donde se puede encontrar el nivel de enlace. se puede encontrar el nivel de enlace. 5.1. Piggybacking 5.1. Piggybacking Hasta este momento siempre hemos considerado que había una estación que Hasta este momento siempre hemos considerado que había una estación que transmitía tramas de información (el primario) y otra que las confirmaba (el transmitía tramas de información (el primario) y otra que las confirmaba (el secundario). Ahora bien, hay casos en los cuales las dos estaciones se intercam- secundario). Ahora bien, hay casos en los cuales las dos estaciones se intercam- bian tramas de información recíprocamente y, por lo tanto, actuarían como bian tramas de información recíprocamente y, por lo tanto, actuarían como primario y secundario al mismo tiempo y tendrían que alternar las tramas de primario y secundario al mismo tiempo y tendrían que alternar las tramas de información con las confirmaciones. información con las confirmaciones. Las tramas de confirmación suelen tener un tamaño pequeño porque la única Las tramas de confirmación suelen tener un tamaño pequeño porque la única información relevante es la del identificador de la trama que confirman. La información relevante es la del identificador de la trama que confirman. La mayor parte de los bits de estas tramas la ocupan los campos de control (indi- mayor parte de los bits de estas tramas la ocupan los campos de control (indi- cadores de sincronización, CRC, etc.). cadores de sincronización, CRC, etc.). No nos hemos preocupado de esto hasta ahora porque la eficiencia que hemos No nos hemos preocupado de esto hasta ahora porque la eficiencia que hemos medido es la obtenida en el sentido primario-secundario. Sin embargo, si las medido es la obtenida en el sentido primario-secundario. Sin embargo, si las dos estaciones envían información, nos interesará conseguir que la eficiencia dos estaciones envían información, nos interesará conseguir que la eficiencia en los dos sentidos sea tan alta como se pueda. en los dos sentidos sea tan alta como se pueda. Una manera de aumentar la eficiencia en esta situación es incorporar Una manera de aumentar la eficiencia en esta situación es incorporar las confirmaciones a las tramas de información (de este modo nos las confirmaciones a las tramas de información (de este modo nos ahorramos la transmisión de los otros campos de control de las con- ahorramos la transmisión de los otros campos de control de las con- firmaciones). firmaciones). La manera de hacerlo consiste en destinar un campo de la trama de in- La manera de hacerlo consiste en destinar un campo de la trama de in- formación al identificador de la trama que se quiere confirmar del pri- formación al identificador de la trama que se quiere confirmar del pri- mario contrario. Esta técnica se conoce como piggybacking. mario contrario. Esta técnica se conoce como piggybacking. Enlace de datos FUOC • P03/75098/02118 44 Enlace de datos FUOC • P03/75098/02118 44 La figura siguiente muestra el diagrama de tiempo que se obtendría utilizando La figura siguiente muestra el diagrama de tiempo que se obtendría utilizando el piggybacking: el piggybacking: 5.2. Sincronismo de protocolo 5.2. Sincronismo de protocolo En la descripción que hemos hecho hasta ahora de los protocolos de recu- En la descripción que hemos hecho hasta ahora de los protocolos de recu- peración de errores y control de flujo, hemos supuesto implícitamente que peración de errores y control de flujo, hemos supuesto implícitamente que los protocolos estaban correctamente inicializados. Es decir, hemos supues- los protocolos estaban correctamente inicializados. Es decir, hemos supues- to que en los diagramas de tiempo que hemos utilizado no hay tramas de to que en los diagramas de tiempo que hemos utilizado no hay tramas de información ni confirmaciones anteriores a las mostradas que no puedan información ni confirmaciones anteriores a las mostradas que no puedan introducir ningún tipo de ambigüedad en los identificadores. En la práctica introducir ningún tipo de ambigüedad en los identificadores. En la práctica esto no es así. Antes de que las dos entidades de nivel de enlace puedan em- esto no es así. Antes de que las dos entidades de nivel de enlace puedan em- pezar a intercambiarse tramas de información, es necesaria una fase de ini- pezar a intercambiarse tramas de información, es necesaria una fase de ini- cialización. cialización. Se podría pensar que sólo hay que hacer la inicialización cuando las dos enti- Se podría pensar que sólo hay que hacer la inicialización cuando las dos enti- dades se ponen físicamente en marcha por primera vez. Esto no es posible por- dades se ponen físicamente en marcha por primera vez. Esto no es posible por- que, en un caso real, puede pasar que la ejecución de una de las entidades de que, en un caso real, puede pasar que la ejecución de una de las entidades de nivel de enlace se quede temporalmente fuera de servicio, lo cual haría que se nivel de enlace se quede temporalmente fuera de servicio, lo cual haría que se perdieran las tramas almacenadas en la memoria de transmisión y recepción, perdieran las tramas almacenadas en la memoria de transmisión y recepción, y se perdería la sincronización; es decir, se tendría que ejecutar de nuevo la y se perdería la sincronización; es decir, se tendría que ejecutar de nuevo la fase de inicialización. fase de inicialización. Además de la fase de inicialización también hay una fase de desconexión, en Además de la fase de inicialización también hay una fase de desconexión, en la que se acuerda la finalización del enlace. Esta fase permite liberar los recur- la que se acuerda la finalización del enlace. Esta fase permite liberar los recur- sos que se le dedican, como las memorias intermedias para almacenar las listas sos que se le dedican, como las memorias intermedias para almacenar las listas de transmisión y recepción. de transmisión y recepción. Un protocolo que tiene una fase de inicialización y una fase de desconexión se conoce como protocolo orientado a la conexión (connection oriented). De otro modo, hablaríamos de protocolo no orientado a la conexión (connectionless). Un protocolo que tiene una fase de inicialización y una fase de desconexión se conoce como protocolo orientado a la conexión (connection oriented). De otro modo, hablaríamos de protocolo no orientado a la conexión (connectionless). Enlace de datos FUOC • P03/75098/02118 45 Enlace de datos FUOC • P03/75098/02118 45 La figura siguiente muestra la fase de inicialización y la de descomposición. La La figura siguiente muestra la fase de inicialización y la de descomposición. La trama INIT solicita la inicialización, que es confirmada por la trama AINIT. trama INIT solicita la inicialización, que es confirmada por la trama AINIT. Las tramas DISC y A DISC funcionan de manera análoga para la desconexión. Las tramas DISC y A DISC funcionan de manera análoga para la desconexión. Estas tramas no están numeradas (por este motivo son conocidas como tra- Estas tramas no están numeradas (por este motivo son conocidas como tra- mas no numeradas o unnumbered frames). En las tramas hay un campo de mas no numeradas o unnumbered frames). En las tramas hay un campo de control que indica el tipo de trama, y que permite diferenciarlas: control que indica el tipo de trama, y que permite diferenciarlas: Dado que para poder hacer una recuperación automática de errores necesita- Dado que para poder hacer una recuperación automática de errores necesita- mos numerar las tramas, estos protocolos deberán ser protocolos orientados a mos numerar las tramas, estos protocolos deberán ser protocolos orientados a la conexión. la conexión. Sin embargo, no todos los protocolos de nivel de enlace son orientados a la Sin embargo, no todos los protocolos de nivel de enlace son orientados a la conexión. Según el tipo de red o aplicación, es posible que no se utilice un pro- conexión. Según el tipo de red o aplicación, es posible que no se utilice un pro- tocolo de recuperación de errores en el nivel de enlace y que, por lo tanto, las tocolo de recuperación de errores en el nivel de enlace y que, por lo tanto, las tramas no deban numerarse. En este caso tendríamos un nivel de enlace no tramas no deban numerarse. En este caso tendríamos un nivel de enlace no orientado a la conexión que haría la detección de errores, pero descartaría las orientado a la conexión que haría la detección de errores, pero descartaría las tramas erróneas en lugar de intentar recuperarlas. tramas erróneas en lugar de intentar recuperarlas. Hay motivos que pueden justificar un nivel de enlace no orientado a la co- Hay motivos que pueden justificar un nivel de enlace no orientado a la co- nexión: en aplicaciones en tiempo real en las que se transmite voz o vídeo, por nexión: en aplicaciones en tiempo real en las que se transmite voz o vídeo, por ejemplo, es posible que el retardo que se necesite para poder hacer la recupe- ejemplo, es posible que el retardo que se necesite para poder hacer la recupe- ración de errores no sea aceptable. ración de errores no sea aceptable. 5.3. Importancia del nivel de enlace según el contexto Hasta este momento hemos explicado las funciones que podemos encontrar en el nivel de enlace. Es importante entender, sin embargo, que el nivel de enlace no siempre efectúa todas las funciones explicadas. Esto depende mucho del contexto donde se encuentre el nivel de enlace. Recuperación de errores en el nivel de transporte Hay redes en las que el nivel de enlace no lleva a cabo una recuperación de errores, sino que simplemente descarta las tramas erróneas. En este caso, si es necesario, la recuperación de errores la hacen los niveles superiores, normalmente el nivel de transporte. 5.3. Importancia del nivel de enlace según el contexto Hasta este momento hemos explicado las funciones que podemos encontrar en el nivel de enlace. Es importante entender, sin embargo, que el nivel de enlace no siempre efectúa todas las funciones explicadas. Esto depende mucho del contexto donde se encuentre el nivel de enlace. Enlace de datos Recuperación de errores en el nivel de transporte Hay redes en las que el nivel de enlace no lleva a cabo una recuperación de errores, sino que simplemente descarta las tramas erróneas. En este caso, si es necesario, la recuperación de errores la hacen los niveles superiores, normalmente el nivel de transporte. FUOC • P03/75098/02118 46 Enlace de datos FUOC • P03/75098/02118 46 Notación Notación En esta figura, las líneas discontinuas conectan los dispositivos entre los que se establece el protocolo de nivel de enlace. En esta figura, las líneas discontinuas conectan los dispositivos entre los que se establece el protocolo de nivel de enlace. A continuación, describiremos las diferentes situaciones representadas en la fi- A continuación, describiremos las diferentes situaciones representadas en la fi- gura: gura: a) Comunicación punto a punto entre dos computadores; por ejemplo, la a) Comunicación punto a punto entre dos computadores; por ejemplo, la comunicación por el puerto serie entre dos PC para poder hacer una transfe- comunicación por el puerto serie entre dos PC para poder hacer una transfe- rencia de ficheros. A causa del reducido número de elementos que intervienen rencia de ficheros. A causa del reducido número de elementos que intervienen en este caso, normalmente toda la arquitectura de comunicaciones estará in- en este caso, normalmente toda la arquitectura de comunicaciones estará in- tegrada en el mismo programa. Evidentemente, aquí no habrá nivel de red y tegrada en el mismo programa. Evidentemente, aquí no habrá nivel de red y el nivel de enlace será responsable de la recuperación de errores. el nivel de enlace será responsable de la recuperación de errores. b) Enlace multipunto. Esta situación es semejante al caso anterior, pero lo que entra en comunicación es una comunidad de computadores y lo hace a partir de un medio compartido. Para poder comunicarse sin interferirse entre sí, uno de éstos (el maestro en la figura) se encarga de arbitrar las comunicaciones. Todas las comunicaciones son entre el maestro y otro de los computadores (los esclavos), o viceversa. Ejemplos de entorno con enlace multipunto Una comunidad de terminales de un departamento universitario, o un conjunto de instrumentos inteligentes de una planta industrial controlados por un computador central. Enlace de datos b) Enlace multipunto. Esta situación es semejante al caso anterior, pero lo que entra en comunicación es una comunidad de computadores y lo hace a partir de un medio compartido. Para poder comunicarse sin interferirse entre sí, uno de éstos (el maestro en la figura) se encarga de arbitrar las comunicaciones. Todas las comunicaciones son entre el maestro y otro de los computadores (los esclavos), o viceversa. Esta condición es representada por las flechas que hay entre el maestro y cada Esta condición es representada por las flechas que hay entre el maestro y cada uno de los esclavos (en los dos sentidos). En este entorno podemos interpretar uno de los esclavos (en los dos sentidos). En este entorno podemos interpretar Ejemplos de entorno con enlace multipunto Una comunidad de terminales de un departamento universitario, o un conjunto de instrumentos inteligentes de una planta industrial controlados por un computador central. FUOC • P03/75098/02118 47 Enlace de datos FUOC • P03/75098/02118 47 que hay un enlace punto a punto entre el maestro y cada uno de los esclavos, que hay un enlace punto a punto entre el maestro y cada uno de los esclavos, y que el maestro selecciona alternativamente uno de los enlaces posibles se- y que el maestro selecciona alternativamente uno de los enlaces posibles se- gún algún algoritmo de arbitraje. gún algún algoritmo de arbitraje. c) El entorno de acceso a Internet es, actualmente, uno de los más habituales. Millones de usuarios lo utilizan para acceder a Internet. En este entorno el protocolo de nivel de enlace se establece entre el computador del usuario y el computador del proveedor de Internet. Aquí el usuario se conecta al proveedor mediante un módem. El proveedor dispone de una batería de módems para que múltiples usuarios puedan conectarse simultáneamente. d) Red de área local (LAN). Una característica de estos tipos de redes es que la comunidad de computadores comparte el medio de transmisión, igual que en el caso b). La diferencia fundamental, sin embargo, es que ahora no hay un árbitro que selecciona uno de los enlaces posibles, sino que el algoritmo de acceso está distribuido entre los computadores que acceden al medio. Protocolo PPP El protocolo de nivel de enlace que se ha convertido en el estándar de Internet se conoce como PPP (del inglés Point-toPoint Protocol). Este protocolo tiene numerosas opciones, entre las cuales está la recuperación de errores. Por defecto, sin embargo, el protocolo PPP no hace la recuperación de errores. Esto se debe a que en la arquitectura de protocolos que se utiliza en Internet (conocida como TCP/IP) la recuperación de errores se hace en el nivel de transporte. 5.4. Multiplexación en el nivel de enlace El concepto de multiplexación ya se ha introducido anteriormente. La idea de la multiplexación es utilizar un único medio para la transmisión de diferentes flujos de información. Obviamente, hay que definir un mecanismo que permita separar los distintos flujos con respecto a la recepción. c) El entorno de acceso a Internet es, actualmente, uno de los más habituales. Millones de usuarios lo utilizan para acceder a Internet. En este entorno el protocolo de nivel de enlace se establece entre el computador del usuario y el computador del proveedor de Internet. Aquí el usuario se conecta al proveedor mediante un módem. El proveedor dispone de una batería de módems para que múltiples usuarios puedan conectarse simultáneamente. d) Red de área local (LAN). Una característica de estos tipos de redes es que la comunidad de computadores comparte el medio de transmisión, igual que en el caso b). La diferencia fundamental, sin embargo, es que ahora no hay un árbitro que selecciona uno de los enlaces posibles, sino que el algoritmo de acceso está distribuido entre los computadores que acceden al medio. Enlace de datos Protocolo PPP El protocolo de nivel de enlace que se ha convertido en el estándar de Internet se conoce como PPP (del inglés Point-toPoint Protocol). Este protocolo tiene numerosas opciones, entre las cuales está la recuperación de errores. Por defecto, sin embargo, el protocolo PPP no hace la recuperación de errores. Esto se debe a que en la arquitectura de protocolos que se utiliza en Internet (conocida como TCP/IP) la recuperación de errores se hace en el nivel de transporte. 5.4. Multiplexación en el nivel de enlace En el apartado 6 del módulo “TCP/IP: los protocolos de la red Internet” de la asigna-tura de Redes. Aplicaciones y protocolos de Internet se vio el concepto de multiplexación en el nivel de transporte. En el apartado 4 del módulo “Transmisión de datos” de esta asignatura se verá la multiplexación en el nivel físico. El concepto de multiplexación ya se ha introducido anteriormente. La idea de la multiplexación es utilizar un único medio para la transmisión de diferentes flujos de información. Obviamente, hay que definir un mecanismo que permita separar los distintos flujos con respecto a la recepción. Ahora veremos que la multiplexación también se puede encontrar en un pro- Ahora veremos que la multiplexación también se puede encontrar en un pro- tocolo de nivel de enlace. De hecho, es habitual que esta técnica se utilice en tocolo de nivel de enlace. De hecho, es habitual que esta técnica se utilice en cualquier nivel de la arquitectura de comunicaciones. cualquier nivel de la arquitectura de comunicaciones. En primer lugar, veamos por qué puede ser útil tener multiplexación en el ni- En primer lugar, veamos por qué puede ser útil tener multiplexación en el ni- vel de enlace. El primer ejemplo es el enlace multipunto, que ya hemos intro- vel de enlace. El primer ejemplo es el enlace multipunto, que ya hemos intro- ducido (ved el esquema b) de la figura anterior). El hecho de tener el medio ducido (ved el esquema b) de la figura anterior). El hecho de tener el medio compartido podemos interpretarlo como si hubiera un único enlace donde se compartido podemos interpretarlo como si hubiera un único enlace donde se multiplexan las tramas de las distintas estaciones. En este caso, podríamos in- multiplexan las tramas de las distintas estaciones. En este caso, podríamos in- terpretar el algoritmo de arbitraje que utiliza el maestro como el mecanismo terpretar el algoritmo de arbitraje que utiliza el maestro como el mecanismo de multiplexación. de multiplexación. Dentro de este enlace compartido necesitaremos distinguir cada una de las esta- Dentro de este enlace compartido necesitaremos distinguir cada una de las esta- ciones. Esto se consigue con una dirección de nivel de enlace. Es decir, uno de ciones. Esto se consigue con una dirección de nivel de enlace. Es decir, uno de los campos de control de las tramas es una dirección que identifica cada estación. los campos de control de las tramas es una dirección que identifica cada estación. Otro ejemplo de multiplexación en el nivel de enlace es el que muestra la fi- Otro ejemplo de multiplexación en el nivel de enlace es el que muestra la fi- gura siguiente. En este ejemplo hay un nivel físico y de enlace común y, por gura siguiente. En este ejemplo hay un nivel físico y de enlace común y, por encima, dos arquitecturas de comunicaciones (conjunto de protocolos) dife- encima, dos arquitecturas de comunicaciones (conjunto de protocolos) dife- rentes. En este caso el nivel de enlace lleva las unidades de información de la rentes. En este caso el nivel de enlace lleva las unidades de información de la arquitectura 1 o 2 a su arquitectura par 1 o 2, respectivamente. arquitectura 1 o 2 a su arquitectura par 1 o 2, respectivamente. En el apartado 6 del módulo “TCP/IP: los protocolos de la red Internet” de la asigna-tura de Redes. Aplicaciones y protocolos de Internet se vio el concepto de multiplexación en el nivel de transporte. En el apartado 4 del módulo “Transmisión de datos” de esta asignatura se verá la multiplexación en el nivel físico. FUOC • P03/75098/02118 48 Enlace de datos FUOC • P03/75098/02118 48 Este caso no es extraño en la práctica, ya que hay numerosos protocolos de co- Este caso no es extraño en la práctica, ya que hay numerosos protocolos de co- municaciones que puede interesar que convivan dentro de un mismo entorno municaciones que puede interesar que convivan dentro de un mismo entorno y que compartan el mismo enlace; por ejemplo, en una red de área local. y que compartan el mismo enlace; por ejemplo, en una red de área local. Para poder distinguir la arquitectura que transmite las tramas y, por lo tanto, Para poder distinguir la arquitectura que transmite las tramas y, por lo tanto, la arquitectura a la cual hay que entregarlas, también se utilizan direcciones la arquitectura a la cual hay que entregarlas, también se utilizan direcciones de nivel de enlace. de nivel de enlace. Enlace de datos FUOC • P03/75098/02118 49 Enlace de datos FUOC • P03/75098/02118 49 6. Ejemplo: el protocolo HDLC 6. Ejemplo: el protocolo HDLC Como ejemplo de un estándar de nivel de enlace, en este apartado describire- Como ejemplo de un estándar de nivel de enlace, en este apartado describire- mos algunas de las características del HDLC*. Este protocolo ha sido estandarizado por el organismo ISO y muchos otros protocolos de nivel de enlace son * HDLC es la sigla del término inglés High-level Data Link Control. derivados del mismo. El HDLC ha sido diseñado como un protocolo de nivel de enlace de propósito general que se puede utilizar en numerosas situaciones. Por este motivo se han mos algunas de las características del HDLC*. Este protocolo ha sido estandarizado por el organismo ISO y muchos otros protocolos de nivel de enlace son Enlace de datos * HDLC es la sigla del término inglés High-level Data Link Control. derivados del mismo. Podéis ver el concepto de maestro en el subapartado 5.3 de este módulo didáctico. El HDLC ha sido diseñado como un protocolo de nivel de enlace de propósito general que se puede utilizar en numerosas situaciones. Por este motivo se han definido las tres configuraciones de la figura siguiente. En esta figura los nom- definido las tres configuraciones de la figura siguiente. En esta figura los nom- bres primario y secundario no hacen referencia a la estación que envía las tra- bres primario y secundario no hacen referencia a la estación que envía las tra- mas de información y las confirmaciones, como hasta ahora, sino que esta mas de información y las confirmaciones, como hasta ahora, sino que esta terminología se utiliza para distinguir ciertos privilegios que tiene el primario. terminología se utiliza para distinguir ciertos privilegios que tiene el primario. El privilegio principal del HDLC es que puede hacer de árbitro en un enlace El privilegio principal del HDLC es que puede hacer de árbitro en un enlace multipunto (lo que hemos denominado maestro). multipunto (lo que hemos denominado maestro). Ejemplos de protocolos derivados del HDLC Ejemplos de protocolos derivados del HDLC Algunos protocolos que se han derivado del protocolo HDLC son los que mencionamos a continuación. Algunos protocolos que se han derivado del protocolo HDLC son los que mencionamos a continuación. • LLC: se utiliza en las redes de área local (LAN). • LLC: se utiliza en las redes de área local (LAN). • PPP: se utiliza en Internet. • PPP: se utiliza en Internet. • LAPM: es utilizado en el campo de la comunicación entre módems. • LAPM: es utilizado en el campo de la comunicación entre módems. Podéis ver el concepto de maestro en el subapartado 5.3 de este módulo didáctico. FUOC • P03/75098/02118 50 Enlace de datos FUOC • P03/75098/02118 50 • LAPD: se utiliza como canal de señalización (canal D) en el acceso a la red telefónica digital ISDN. • LAPD: se utiliza como canal de señalización (canal D) en el acceso a la red telefónica digital ISDN. • LAPB: se utiliza para conectar una estación a una red de gran alcance X.25. • LAPB: se utiliza para conectar una estación a una red de gran alcance X.25. En el HDLC las tramas que envía el primario se conocen como comandos, y En el HDLC las tramas que envía el primario se conocen como comandos, y las que envía el secundario, como respuestas. Si en la configuración todas las las que envía el secundario, como respuestas. Si en la configuración todas las estaciones son primarios y secundarios al mismo tiempo, se dice que es una estaciones son primarios y secundarios al mismo tiempo, se dice que es una configuración balanceada; de lo contrario, se trata de una configuración no configuración balanceada; de lo contrario, se trata de una configuración no balanceada. Evidentemente, una configuración multipunto debe ser no ba- balanceada. Evidentemente, una configuración multipunto debe ser no ba- lanceada, porque sólo puede haber una estación que sea primario (que haga lanceada, porque sólo puede haber una estación que sea primario (que haga de árbitro). de árbitro). El HDLC permite tres modos de operación distintos: El HDLC permite tres modos de operación distintos: a) Normal Response Mode (NRM). Este modo se utiliza en configuraciones a) Normal Response Mode (NRM). Este modo se utiliza en configuraciones no balanceadas (casos a) y c) de la figura anterior). En este modo de operación no balanceadas (casos a) y c) de la figura anterior). En este modo de operación los secundarios (o esclavos) sólo pueden transmitir tramas en respuesta a los los secundarios (o esclavos) sólo pueden transmitir tramas en respuesta a los comandos enviados por el primario (o maestro). Este modo se utiliza típica- comandos enviados por el primario (o maestro). Este modo se utiliza típica- mente en el enlace entre un computador y uno o más periféricos. mente en el enlace entre un computador y uno o más periféricos. b) Asynchronous Response Mode (ARM). Este modo se utiliza en configura- b) Asynchronous Response Mode (ARM). Este modo se utiliza en configura- ciones punto a punto no balanceadas (caso a) de la figura). A diferencia del ciones punto a punto no balanceadas (caso a) de la figura). A diferencia del modo NRM, el secundario puede transmitir sin que el primario lo solicite. Este modo NRM, el secundario puede transmitir sin que el primario lo solicite. Este modo es el menos usado en la actualidad. modo es el menos usado en la actualidad. c) Asynchronous Balanced Mode (ABM). Este modo se utiliza para configu- c) Asynchronous Balanced Mode (ABM). Este modo se utiliza para configu- raciones punto a punto balanceadas (caso b) de la figura). Los protocolos más raciones punto a punto balanceadas (caso b) de la figura). Los protocolos más usados derivados del HDLC, como el LAPM, el LAPD y el LAPB, son derivados usados derivados del HDLC, como el LAPM, el LAPD y el LAPB, son derivados de este modo. de este modo. Independientemente del modo, en el HDLC se definen tres tipos de tramas: Independientemente del modo, en el HDLC se definen tres tipos de tramas: a) Tramas de información. Equivalen a las tramas de información a las que a) Tramas de información. Equivalen a las tramas de información a las que nos hemos referido hasta ahora. Para la recuperación de errores y control de nos hemos referido hasta ahora. Para la recuperación de errores y control de flujo se utiliza Go back N o retransmisión selectiva (en el cual muchos de los flujo se utiliza Go back N o retransmisión selectiva (en el cual muchos de los derivados implementan sólo Go back N). Para las confirmaciones se utiliza la derivados implementan sólo Go back N). Para las confirmaciones se utiliza la técnica de piggybacking. técnica de piggybacking. b) Tramas de supervisión. Equivalen a las tramas de confirmación a las que b) Tramas de supervisión. Equivalen a las tramas de confirmación a las que nos hemos referido hasta ahora. Se utilizan para las confirmaciones cuando no nos hemos referido hasta ahora. Se utilizan para las confirmaciones cuando no se envían tramas de información. se envían tramas de información. c) Tramas no numeradas. Se usan en las fases de inicialización y desconexión c) Tramas no numeradas. Se usan en las fases de inicialización y desconexión y para enviar información de control suplementaria. El HDLC es un protocolo con una estructura de las tramas como la que se muestra en la figura siguiente. Los indicadores de inicio y final de trama valen Enlace de datos y para enviar información de control suplementaria. Hemos visto la técnica de la inserción de ceros en el ejemplo de mecanismo de transparencia, en el subapartado 1.2.1. El control CRC se explica en el anexo 2 de este módulo didáctico. El HDLC es un protocolo con una estructura de las tramas como la que se muestra en la figura siguiente. Los indicadores de inicio y final de trama valen Hemos visto la técnica de la inserción de ceros en el ejemplo de mecanismo de transparencia, en el subapartado 1.2.1. El control CRC se explica en el anexo 2 de este módulo didáctico. FUOC • P03/75098/02118 51 Enlace de datos FUOC • P03/75098/02118 51 01111110, y se utiliza la técnica de la inserción de ceros para la transparencia. 01111110, y se utiliza la técnica de la inserción de ceros para la transparencia. La comprobación de errores se realiza con códigos CRC, concretamente con el La comprobación de errores se realiza con códigos CRC, concretamente con el polinomio generador CRC-CCITT. polinomio generador CRC-CCITT. El contenido del campo de dirección depende del modo de operación. Por El contenido del campo de dirección depende del modo de operación. Por ejemplo, en un enlace multipunto, si trabajamos con el modo NRM, sólo hay ejemplo, en un enlace multipunto, si trabajamos con el modo NRM, sólo hay un primario y cada secundario tiene una dirección única. En este caso, en el un primario y cada secundario tiene una dirección única. En este caso, en el campo de dirección se pone siempre la dirección del secundario. En el modo campo de dirección se pone siempre la dirección del secundario. En el modo ABM, en cambio, se pone la dirección propia cuando se quiere enviar un pe- ABM, en cambio, se pone la dirección propia cuando se quiere enviar un pe- dido (la estación actúa como primario) y la dirección contraria cuando se en- dido (la estación actúa como primario) y la dirección contraria cuando se en- vía una respuesta (la estación actúa como secundario). vía una respuesta (la estación actúa como secundario). Los bits de control son los siguientes: Los bits de control son los siguientes: • SN. Lleva el número de secuencia de una trama de información. • SN. Lleva el número de secuencia de una trama de información. • RN. Lleva el número de secuencia de la trama confirmada. • RN. Lleva el número de secuencia de la trama confirmada. • P/F (Poll/Final bit). Este bit tiene muchos usos, algunos de los cuales son • P/F (Poll/Final bit). Este bit tiene muchos usos, algunos de los cuales son los siguientes: Enlace de datos los siguientes: – El primario pone este bit a 1 para solicitar una respuesta urgente de un se- – El primario pone este bit a 1 para solicitar una respuesta urgente de un se- cundario. cundario. – El secundario pone el bit a 1 para indicar el final de una respuesta. – El secundario pone el bit a 1 para indicar el final de una respuesta. • Tipo. El tercer y cuarto bits codifican el tipo de trama de supervisión, y el • Tipo. El tercer y cuarto bits codifican el tipo de trama de supervisión, y el sexto, séptimo y octavo, el tipo de trama no numerada. sexto, séptimo y octavo, el tipo de trama no numerada. Lectura complementaria Lectura complementaria Para obtener más detalles sobre el protocolo HDLC, podéis consultar la obra siguiente, que encontraréis referenciada en la bibliografía: F. Halsall (1998). Comunicación de datos, redes de computadores y sistemas abiertos. Para obtener más detalles sobre el protocolo HDLC, podéis consultar la obra siguiente, que encontraréis referenciada en la bibliografía: F. Halsall (1998). Comunicación de datos, redes de computadores y sistemas abiertos. El estándar describe el tipo de trama y el comportamiento que se debe seguir El estándar describe el tipo de trama y el comportamiento que se debe seguir en todas las situaciones posibles. en todas las situaciones posibles. En este apartado sólo se han presentado los ingredientes básicos del estándar En este apartado sólo se han presentado los ingredientes básicos del estándar para que el estudiante se haga una idea de todos los puntos que involucra la para que el estudiante se haga una idea de todos los puntos que involucra la estandarización de un protocolo de nivel de enlace. estandarización de un protocolo de nivel de enlace. FUOC • P03/75098/02118 52 Enlace de datos FUOC • P03/75098/02118 52 Resumen Resumen En este módulo didàctico hemos presentado los conceptos básicos de la trans- En este módulo didàctico hemos presentado los conceptos básicos de la trans- misión de datos. misión de datos. Hemos presentado el modelo sencillo de comunicaciones, que incluye los Hemos presentado el modelo sencillo de comunicaciones, que incluye los procesos de codificación de fuente y codificación de canal. procesos de codificación de fuente y codificación de canal. Cada uno de estos procesos tiene asociada una velocidad, la velocidad de mo- Cada uno de estos procesos tiene asociada una velocidad, la velocidad de mo- dulación y la velocidad de transmisión, cuyos límites hemos analizado, tan- dulación y la velocidad de transmisión, cuyos límites hemos analizado, tan- to en teoría como en la práctica. A partir de estos análisis hemos definido la to en teoría como en la práctica. A partir de estos análisis hemos definido la capacidad del canal como la velocidad máxima de transmisión con que se capacidad del canal como la velocidad máxima de transmisión con que se puede atravesar un canal. puede atravesar un canal. Hemos visto las codificaciones y las modulacione digitales com los mecanis- Hemos visto las codificaciones y las modulacione digitales com los mecanis- mos que, en el proceso de codificación de canal, permiten generar señales sus- mos que, en el proceso de codificación de canal, permiten generar señales sus- ceptibles de atravesar medios. ceptibles de atravesar medios. Hemos mostrado los mecanismos de multiplexación que permiten que dife- Hemos mostrado los mecanismos de multiplexación que permiten que dife- rentes comunicaciones compartan el mismo medio de transmisión. La multi- rentes comunicaciones compartan el mismo medio de transmisión. La multi- plexación puede ser en frecuencia o en tiempo. La primera es la adecuada plexación puede ser en frecuencia o en tiempo. La primera es la adecuada para señales analógicas y la segunda, para señales digitales. para señales analógicas y la segunda, para señales digitales. Hemos analizado las perturbaciones que afectan las señales transportadas por me- Hemos analizado las perturbaciones que afectan las señales transportadas por me- dios: la atenuación, la distorsión y el ruido. Hemos visto como cada una de estas dios: la atenuación, la distorsión y el ruido. Hemos visto como cada una de estas perturbaciones tiene efectos diferentes y como existen diferentes mecanismos perturbaciones tiene efectos diferentes y como existen diferentes mecanismos para combatirlas. para combatirlas. Finalmente, hemos presentado los medios de transmisión más utilizados en Finalmente, hemos presentado los medios de transmisión más utilizados en la actualidad, sus características más relevantes y hemos estudiado cómo se ve la actualidad, sus características más relevantes y hemos estudiado cómo se ve afectado, cada uno de ellos, las perturbaciones descritas anteriormente. afectado, cada uno de ellos, las perturbaciones descritas anteriormente. Enlace de datos FUOC • P03/75098/02118 53 Enlace de datos FUOC • P03/75098/02118 53 Ejercicios de autoevaluación Ejercicios de autoevaluación 1. En un enlace se transmite la palabra código 011001 y se recibe 111101. a) ¿Qué distancia de Hamming debe tener el código para asegurar la detección del error? b) ¿Qué capacidad de detección de ráfagas de error de bits necesitamos? c) ¿Qué distancia de Hamming debe tener el código para asegurar la corrección del error? 1. En un enlace se transmite la palabra código 011001 y se recibe 111101. a) ¿Qué distancia de Hamming debe tener el código para asegurar la detección del error? b) ¿Qué capacidad de detección de ráfagas de error de bits necesitamos? c) ¿Qué distancia de Hamming debe tener el código para asegurar la corrección del error? 2. En un código detector de errores que sólo tiene las tres palabras código válidas que se muestran a continuación: 110000, 001100 y 000011,... a) ¿cuál es la distancia de Hamming del código? b) si se recibe la palabra código 001000 y se aplica el criterio de corrección de la distancia mínima, ¿qué bits corregiríais? 2. En un código detector de errores que sólo tiene las tres palabras código válidas que se muestran a continuación: 110000, 001100 y 000011,... a) ¿cuál es la distancia de Hamming del código? b) si se recibe la palabra código 001000 y se aplica el criterio de corrección de la distancia mínima, ¿qué bits corregiríais? 3. En un nivel de enlace que utiliza un código de paridad longitudinal y transversal se recibe la palabra código siguiente: 3. En un nivel de enlace que utiliza un código de paridad longitudinal y transversal se recibe la palabra código siguiente: a) ¿Es una palabra código válida? b) Si se aplica el criterio de corrección de la distancia mínima, ¿qué bits corregiríais? a) ¿Es una palabra código válida? b) Si se aplica el criterio de corrección de la distancia mínima, ¿qué bits corregiríais? 4. Queremos comparar la capacidad de detección de ráfagas de error de un código de paridad longitudinal y transversal con un código CRC. Considerad un ejemplo de cada caso con el mismo número de bits de información y bits de control de errores. ¿Cuál es la capacidad de detección de ráfagas de error en cada uno de los casos? ¿Cuál es, pues, el código más robusto para la detección de ráfagas de error? 4. Queremos comparar la capacidad de detección de ráfagas de error de un código de paridad longitudinal y transversal con un código CRC. Considerad un ejemplo de cada caso con el mismo número de bits de información y bits de control de errores. ¿Cuál es la capacidad de detección de ráfagas de error en cada uno de los casos? ¿Cuál es, pues, el código más robusto para la detección de ráfagas de error? 5. Calculad la velocidad efectiva a la que se transfieren los datos en un enlace con una velocidad de transmisión de 9.600 bps si las tramas son de 800 bytes con el 85% de bytes de información y el 15% de control. Suponed que a causa del protocolo de nivel de enlace hay un intervalo de reposo de 10 ms entre dos tramas consecutivas. 5. Calculad la velocidad efectiva a la que se transfieren los datos en un enlace con una velocidad de transmisión de 9.600 bps si las tramas son de 800 bytes con el 85% de bytes de información y el 15% de control. Suponed que a causa del protocolo de nivel de enlace hay un intervalo de reposo de 10 ms entre dos tramas consecutivas. 6. El tiempo de propagación entre dos entidades de nivel de enlace es de 10 ms. La velocidad de transmisión es de 28 kbps. El tamaño de las tramas es de 800 B. a) ¿Cuál es la eficiencia máxima que puede conseguirse si se utiliza un protocolo Stop & Wait? b) ¿Cuál puede ser el tamaño máximo de las confirmaciones para que la eficiencia no sea inferior al 90%? 6. El tiempo de propagación entre dos entidades de nivel de enlace es de 10 ms. La velocidad de transmisión es de 28 kbps. El tamaño de las tramas es de 800 B. a) ¿Cuál es la eficiencia máxima que puede conseguirse si se utiliza un protocolo Stop & Wait? b) ¿Cuál puede ser el tamaño máximo de las confirmaciones para que la eficiencia no sea inferior al 90%? 7. En un enlace donde el tamaño de las tramas de información es mucho mayor que las tramas de confirmación, razonad en qué condiciones elegiríais un protocolo de nivel de enlace de los tipos que mencionamos a continuación: a) Stop & Wait. b) Go back N. c) Retransmisión selectiva. 7. En un enlace donde el tamaño de las tramas de información es mucho mayor que las tramas de confirmación, razonad en qué condiciones elegiríais un protocolo de nivel de enlace de los tipos que mencionamos a continuación: a) Stop & Wait. b) Go back N. c) Retransmisión selectiva. 8. En un enlace se utiliza un protocolo Stop & Wait. El tamaño de las tramas de información es variable, pero la cabecera es fija y de 50 bits. Las confirmaciones son todas de 100 bits. La distancia del enlace es de 1 km y la velocidad de propagación de medio es de 2 · 108 m/s. La velocidad de transmisión es de 10 Mbps. a) Dibujad el diagrama de tiempo e indicad los aspectos más relevantes del mismo en los casos siguientes: • Transmisión de una trama con éxito. • Transmisión de una trama que se pierde con la correspondiente retransmisión. Suponed que la retransmisión es debida a un time-out. Haced una breve explicación del mecanismo del time-out. b) Calculad el número de bits de datos que debería llevar cada trama de información para que la eficiencia fuese como mínimo del 90%. 8. En un enlace se utiliza un protocolo Stop & Wait. El tamaño de las tramas de información es variable, pero la cabecera es fija y de 50 bits. Las confirmaciones son todas de 100 bits. La distancia del enlace es de 1 km y la velocidad de propagación de medio es de 2 · 108 m/s. La velocidad de transmisión es de 10 Mbps. a) Dibujad el diagrama de tiempo e indicad los aspectos más relevantes del mismo en los casos siguientes: • Transmisión de una trama con éxito. • Transmisión de una trama que se pierde con la correspondiente retransmisión. Suponed que la retransmisión es debida a un time-out. Haced una breve explicación del mecanismo del time-out. b) Calculad el número de bits de datos que debería llevar cada trama de información para que la eficiencia fuese como mínimo del 90%. Enlace de datos FUOC • P03/75098/02118 54 Enlace de datos FUOC • P03/75098/02118 54 9. En una fábrica hay un enlace a 10 Mbps de 600 m de distancia y velocidad de propagación de 2 · 108 m/s. Se utiliza un protocolo Stop & Wait explícito con tramas de 1.500 bits de longitud y confirmaciones de 40 bits. Una máquina cercana produce chispas a una frecuencia de 50 Hz que impiden la recepción correcta de la trama que se estaba transmitiendo en el instante de la chispa. a) Dibujad el diagrama de tiempo con los aspectos más relevantes cuando se produce la chispa. Suponed que la chispa coincide siempre con la transmisión de una trama de información. b) Calculad la eficiencia máxima cuando no hay errores. c) Calculad la eficiencia máxima teniendo en cuenta las retransmisiones debidas a la interferencia. 9. En una fábrica hay un enlace a 10 Mbps de 600 m de distancia y velocidad de propagación de 2 · 108 m/s. Se utiliza un protocolo Stop & Wait explícito con tramas de 1.500 bits de longitud y confirmaciones de 40 bits. Una máquina cercana produce chispas a una frecuencia de 50 Hz que impiden la recepción correcta de la trama que se estaba transmitiendo en el instante de la chispa. a) Dibujad el diagrama de tiempo con los aspectos más relevantes cuando se produce la chispa. Suponed que la chispa coincide siempre con la transmisión de una trama de información. b) Calculad la eficiencia máxima cuando no hay errores. c) Calculad la eficiencia máxima teniendo en cuenta las retransmisiones debidas a la interferencia. 10. Indicad cuánto vale la ventana óptima en un enlace con retransmisión selectiva si el tiempo de propagación es negligible, en cada uno de los casos siguientes: a) Si el tamaño de las confirmaciones es menor que el de las tramas de información. b) Si se utiliza el piggybacking con tramas del mismo tamaño. 10. Indicad cuánto vale la ventana óptima en un enlace con retransmisión selectiva si el tiempo de propagación es negligible, en cada uno de los casos siguientes: a) Si el tamaño de las confirmaciones es menor que el de las tramas de información. b) Si se utiliza el piggybacking con tramas del mismo tamaño. 11. Dos estaciones de características iguales se comunican con un enlace full duplex de 100 kbps. Las estaciones generan tramas de información de tamaño variable entre 1 y 5 kbits. En el enlace se utiliza un mecanismo de ventana Go back N. Para las confirmaciones se usa la técnica del piggybacking siempre que sea posible, pero si hay alguna confirmación pendiente por un tiempo igual a 100 ms y la estación continúa inactiva, se envía una trama de confirmación de 200 bits. El tiempo de propagación entre las estaciones se considera negligible. a) Calculad la ventana óptima dibujando el diagrama de tiempo que utilizáis en el cálculo. b) ¿Cuántos bits de la cabecera se tendrían que dedicar a los identificadores de las tramas? 11. Dos estaciones de características iguales se comunican con un enlace full duplex de 100 kbps. Las estaciones generan tramas de información de tamaño variable entre 1 y 5 kbits. En el enlace se utiliza un mecanismo de ventana Go back N. Para las confirmaciones se usa la técnica del piggybacking siempre que sea posible, pero si hay alguna confirmación pendiente por un tiempo igual a 100 ms y la estación continúa inactiva, se envía una trama de confirmación de 200 bits. El tiempo de propagación entre las estaciones se considera negligible. a) Calculad la ventana óptima dibujando el diagrama de tiempo que utilizáis en el cálculo. b) ¿Cuántos bits de la cabecera se tendrían que dedicar a los identificadores de las tramas? 12. Se quiere transmitir un fichero de 1 Mbit entre dos PC que distan 10 Km. El nivel de aplicación segmenta el fichero en segmentos de 1 kB y los pasa al nivel de enlace. El nivel de enlace envía un segmento a cada trama de información y utiliza un protocolo Stop & Wait para hacer la recuperación de los errores. El enlace tiene, además, las características siguientes: • Transmisión orientada al carácter, asíncrona con 8 bits por carácter, 1 bit de arranque, 1 bit de parada y 1 bit de paridad. • La velocidad de transmisión es de 115.200 bps. • La velocidad de propagación es de 2· 108 m/s. • La probabilidad de error en 1 bit es pb = 10-5. • La figura siguiente muestra el formato de las tramas y de las confirmaciones: 12. Se quiere transmitir un fichero de 1 Mbit entre dos PC que distan 10 Km. El nivel de aplicación segmenta el fichero en segmentos de 1 kB y los pasa al nivel de enlace. El nivel de enlace envía un segmento a cada trama de información y utiliza un protocolo Stop & Wait para hacer la recuperación de los errores. El enlace tiene, además, las características siguientes: • Transmisión orientada al carácter, asíncrona con 8 bits por carácter, 1 bit de arranque, 1 bit de parada y 1 bit de paridad. • La velocidad de transmisión es de 115.200 bps. • La velocidad de propagación es de 2· 108 m/s. • La probabilidad de error en 1 bit es pb = 10-5. • La figura siguiente muestra el formato de las tramas y de las confirmaciones: a) Dibujad el diagrama de tiempo de la transmisión de una trama. b) Enumerad los factores que influyen en la eficiencia. Contabilizad la pérdida de eficiencia debida a cada uno de estos factores. c) Dad la velocidad de transmisión eficaz. d) Calculad el tiempo medio de transmisión del fichero. a) Dibujad el diagrama de tiempo de la transmisión de una trama. b) Enumerad los factores que influyen en la eficiencia. Contabilizad la pérdida de eficiencia debida a cada uno de estos factores. c) Dad la velocidad de transmisión eficaz. d) Calculad el tiempo medio de transmisión del fichero. Enlace de datos FUOC • P03/75098/02118 55 Enlace de datos FUOC • P03/75098/02118 55 Solucionario Solucionario Ejercicios de autoevaluación Ejercicios de autoevaluación 1. a) En la palabra código recibida hay 2 bits erróneos; esto implica que el error se detectará con probabilidad 1 si la distancia de Hamming es mayor que 2. b) La ráfaga de error es de 4 bits; esto implica que el error se detectará con probabilidad 1 si la capacidad de detección de ráfagas de error es mayor o igual que 4. c) Para corregir n bits erróneos con probabilidad 1 se tiene que cumplir que DH/2 > n, donde DH es la distancia de Hamming del código. Así pues, DH > 4. 1. a) En la palabra código recibida hay 2 bits erróneos; esto implica que el error se detectará con probabilidad 1 si la distancia de Hamming es mayor que 2. b) La ráfaga de error es de 4 bits; esto implica que el error se detectará con probabilidad 1 si la capacidad de detección de ráfagas de error es mayor o igual que 4. c) Para corregir n bits erróneos con probabilidad 1 se tiene que cumplir que DH/2 > n, donde DH es la distancia de Hamming del código. Así pues, DH > 4. 2. a) Entre cualquiera de las palabras código hay 4 bits de diferencia. De este modo, la distancia de Hamming vale 4. b) El criterio de la distancia mínima consiste en tomar la palabra código válida con menos bits de diferencia. Es la palabra código 001100. 2. a) Entre cualquiera de las palabras código hay 4 bits de diferencia. De este modo, la distancia de Hamming vale 4. b) El criterio de la distancia mínima consiste en tomar la palabra código válida con menos bits de diferencia. Es la palabra código 001100. 3. a) No es una palabra código válida porque la paridad longitudinal y la transversal indicadas no son correctas. b) El bit que es necesario corregir aplicando el criterio de distancia mínima es el que hay en el cruce de las paridades longitudinal y transversal incorrectas. 3. a) No es una palabra código válida porque la paridad longitudinal y la transversal indicadas no son correctas. b) El bit que es necesario corregir aplicando el criterio de distancia mínima es el que hay en el cruce de las paridades longitudinal y transversal incorrectas. 4. Supongamos que tenemos un código de paridad longitudinal y transversal con un bloque de n × m bits de información como el de la figura: 4. Supongamos que tenemos un código de paridad longitudinal y transversal con un bloque de n × m bits de información como el de la figura: La capacidad de detección de ráfagas de error (o CDR) de este código es la medida de una fila más 1, es decir, m + 2. El número de bits dedicados al control de paridad es ν + m + 1. Por lo tanto, un código CRC con el mismo número de bits dedicados al control de errores tendría un CDR de ν + m + 1 bits. Así pues, sólo en el caso de ν = 1 el código de paridad longitudinal y transversal y el código CRC tendrían un mismo CDR. Con ν = 1, sin embargo, la redundancia es muy elevada (¡hay más bits dedicados al control de errores que bits de información!). De este modo, hay que suponer que n es mayor que 1 y que el código CRC tiene más capacidad de detección de ráfagas de error. La capacidad de detección de ráfagas de error (o CDR) de este código es la medida de una fila más 1, es decir, m + 2. El número de bits dedicados al control de paridad es ν + m + 1. Por lo tanto, un código CRC con el mismo número de bits dedicados al control de errores tendría un CDR de ν + m + 1 bits. Así pues, sólo en el caso de ν = 1 el código de paridad longitudinal y transversal y el código CRC tendrían un mismo CDR. Con ν = 1, sin embargo, la redundancia es muy elevada (¡hay más bits dedicados al control de errores que bits de información!). De este modo, hay que suponer que n es mayor que 1 y que el código CRC tiene más capacidad de detección de ráfagas de error. 5. La eficiencia de las tramas es del 85%. Para calcular la eficiencia del protocolo debe tenerse en cuenta el intervalo de reposo. La figura que veis a continuación muestra el diagrama de tiempo: Podéis ver la figura “Evaluación del protocolo Stop & Wait” en el subapartado 3.3.4 de este módulo didáctico. 5. La eficiencia de las tramas es del 85%. Para calcular la eficiencia del protocolo debe tenerse en cuenta el intervalo de reposo. La figura que veis a continuación muestra el diagrama de tiempo: Enlace de datos Podéis ver la figura “Evaluación del protocolo Stop & Wait” en el subapartado 3.3.4 de este módulo didáctico. 56 FUOC • P03/75098/02118 donde tenemos lo siguiente*: Enlace de datos * Se usará el signo ≡ para indicar que hay una conversión de unidades. L800 ⋅ 8 • t t = --= ------------------ ≡ 666,7 ms vt 9.600 56 FUOC • P03/75098/02118 donde tenemos lo siguiente*: * Se usará el signo ≡ para indicar que hay una conversión de unidades. L800 ⋅ 8 • t t = --= ------------------ ≡ 666,7 ms vt 9.600 t tt • E P = ------t = -------------------------- ≡ 98,5% TC t t + 10 ms t tt • E P = ------t = -------------------------- ≡ 98,5% TC t t + 10 ms • E tot = E P ⋅ E t = 0,985 ⋅ 0,85 ≡ 83,7% • E tot = E P ⋅ E t = 0,985 ⋅ 0,85 ≡ 83,7% • v ef = v t ⋅ E tot = 9.600 ⋅ 0,837 ≡ 8.035 bps • v ef = v t ⋅ E tot = 9.600 ⋅ 0,837 ≡ 8.035 bps 6. a) La figura siguiente muestra el diagrama de tiempo que se corresponde con el caso que estamos considerando en el enunciado: 6. a) La figura siguiente muestra el diagrama de tiempo que se corresponde con el caso que estamos considerando en el enunciado: Se supone que ta ≈ 0, tt = L/vt = 800 · 8 / 28 · 103 ≡ 228,6 ms; así pues, obtenemos: Se supone que ta ≈ 0, tt = L/vt = 800 · 8 / 28 · 103 ≡ 228,6 ms; así pues, obtenemos: t tt 228,6 E P = ------t = ----------------= ------------------------------------- ≡ 92% TC t t + 2t p 228,6 + 2 ⋅ 10 Enlace de datos t tt 228,6 E P = ------t = ----------------= ------------------------------------- ≡ 92% TC t t + 2t p 228,6 + 2 ⋅ 10 b) Tenemos: b) Tenemos: tt E P = --------------------------- > 0,9 , t t + 2t p + t a tt E P = --------------------------- > 0,9 , t t + 2t p + t a donde: ta < tt (1/0,9 − 1) − 2 tp ≡ 5,4 ms. Por lo tanto, si denotamos con K el tamaño de las confirmaciones, entonces K/vt < 5,4 · 10-3, K < vt · 5,4 · 10-3 = 151,2 y finalmente obtenemos el resultado K < 152 bits. donde: ta < tt (1/0,9 − 1) − 2 tp ≡ 5,4 ms. Por lo tanto, si denotamos con K el tamaño de las confirmaciones, entonces K/vt < 5,4 · 10-3, K < vt · 5,4 · 10-3 = 151,2 y finalmente obtenemos el resultado K < 152 bits. 7. a) Stop & Wait: si el enlace es half duplex, o si tt >> tp. En este caso el parámetro a = tp / tt ≈ 0 y el Stop & Wait tiene un comportamiento parecido al Go back N y a la retransmisión selectiva; podéis ver la figura “Evaluación del protocolo Stop & Wait”. Podéis ver la figura mencionada en el subapartado 3.3.4 de este módulo didáctico. 7. a) Stop & Wait: si el enlace es half duplex, o si tt >> tp. En este caso el parámetro a = tp / tt ≈ 0 y el Stop & Wait tiene un comportamiento parecido al Go back N y a la retransmisión selectiva; podéis ver la figura “Evaluación del protocolo Stop & Wait”. b) Go back N: si el enlace es full fuplex, no se cumple tt >> tp, y hay pocos errores. En este caso el Go back N y la retransmisión selectiva tienen un comportamiento parecido. b) Go back N: si el enlace es full fuplex, no se cumple tt >> tp, y hay pocos errores. En este caso el Go back N y la retransmisión selectiva tienen un comportamiento parecido. c) Retransmisión selectiva: si el enlace es full duplex, no se cumple tt >> tp y hay muchos errores. En este caso la retransmisión selectiva tiene un comportamiento notablemente mejor que los otros protocolos. c) Retransmisión selectiva: si el enlace es full duplex, no se cumple tt >> tp y hay muchos errores. En este caso la retransmisión selectiva tiene un comportamiento notablemente mejor que los otros protocolos. 8. a) Transmisión de una trama con éxito: igual que la figura del apartado a) del ejercicio 5. b) tp = D/vp = 103/2 · 108 ≡ 5 µs, ta = La/vt = 100/10 · 106 ≡ 10 µs. tt L E = E P ⋅ E t = --------------------------- ⋅ ---------------- > 0,9 , t t + 2t p + t a L + 50 donde tt = (L + 50) / vt. Sustituyendo, se obtiene L > 2.250 bits. Podemos encontrar una explicación del time-out con la figura correspondiente al subapartado 3.3.1 de este módulo didáctico. 8. a) Transmisión de una trama con éxito: igual que la figura del apartado a) del ejercicio 5. b) tp = D/vp = 103/2 · 108 ≡ 5 µs, ta = La/vt = 100/10 · 106 ≡ 10 µs. tt L E = E P ⋅ E t = --------------------------- ⋅ ---------------- > 0,9 , t t + 2t p + t a L + 50 donde tt = (L + 50) / vt. Sustituyendo, se obtiene L > 2.250 bits. Podéis ver la figura mencionada en el subapartado 3.3.4 de este módulo didáctico. Podemos encontrar una explicación del time-out con la figura correspondiente al subapartado 3.3.1 de este módulo didáctico. 57 FUOC • P03/75098/02118 Enlace de datos 57 FUOC • P03/75098/02118 9. a) 9. a) b) tp = D/vp = 600/2 · 108 ≡ 3 µs, tt = L/vt = 1.500/10 · 106 ≡ 150 µs, ta = La/vt = 40/10 · 106 ≡ ≡ 4 µs. b) tp = D/vp = 600/2 · 108 ≡ 3 µs, tt = L/vt = 1.500/10 · 106 ≡ 150 µs, ta = La/vt = 40/10 · 106 ≡ ≡ 4 µs. t tt 150 E P = ------t = --------------------------- = ------------------------------------- ≡ 93,75% TC t t + 2t p + t a 150 + 2 ⋅ 3 + 4 t tt 150 E P = ------t = --------------------------- = ------------------------------------- ≡ 93,75% TC t t + 2t p + t a 150 + 2 ⋅ 3 + 4 c) Aplicando la ecuación (14): c) Aplicando la ecuación (14): tt E = -----pE = --------------------------------------N t ( t t + 2t p + t a ) Nt tt E = -----pE = --------------------------------------N t ( t t + 2t p + t a ) Nt Para calcular Nt debemos tener en cuenta que cada Te (20 ms) hay una trama que se transmite dos veces. En Te se pueden transmitir Te/TC tramas, donde Tc = tt + 2 tp + ta ≡ 160 µs. Así pues: Para calcular Nt debemos tener en cuenta que cada Te (20 ms) hay una trama que se transmite dos veces. En Te se pueden transmitir Te/TC tramas, donde Tc = tt + 2 tp + ta ≡ 160 µs. Así pues: Te/TC = 20 · 103 / 160 ≡ 125 transmisiones, Te/TC = 20 · 103 / 160 ≡ 125 transmisiones, De las cuales hay una repetida. Se transmiten, pues, 124 tramas de cada 125 transmisiones y, por lo tanto: Nt = 125/124. De las cuales hay una repetida. Se transmiten, pues, 124 tramas de cada 125 transmisiones y, por lo tanto: Nt = 125/124. También puede obtenerse el mismo resultado con el razonamiento siguiente: dado que de cada 125 transmisiones hay una errónea, la probabilidad de error en una trama es de pt = 1/125. De la ecuación 18 tenemos que: También puede obtenerse el mismo resultado con el razonamiento siguiente: dado que de cada 125 transmisiones hay una errónea, la probabilidad de error en una trama es de pt = 1/125. De la ecuación 18 tenemos que: Nt = 1 / (1 − pt) = 1 / (1 − 1 / 125) = 125 / 124. Nt = 1 / (1 − pt) = 1 / (1 − 1 / 125) = 125 / 124. Sustituyendo en la fórmula de la eficiencia anterior, se obtiene: Sustituyendo en la fórmula de la eficiencia anterior, se obtiene: E 0,9375 - ≡ 93% E = -----p- = ----------------------Nt 125 ⁄ 124 E 0,9375 - ≡ 93% E = -----p- = ----------------------Nt 125 ⁄ 124 10. a) El diagrama de tiempo es el que se ve al margen, de donde Wopt = 2. b) Supondremos que las dos estaciones transmiten continuamente. El caso más desfavorable tiene lugar cuando la trama de información IK acabe de llegar a la estación remota justo cuando ésta ha empezado a transmitir una trama de información. La confirmación de IK irá dentro de la trama siguiente, como muestra el diagrama de tiempo que se ve a continuación. De este modo, Wopt = 3. 10. a) El diagrama de tiempo es el que se ve al margen, de donde Wopt = 2. b) Supondremos que las dos estaciones transmiten continuamente. El caso más desfavorable tiene lugar cuando la trama de información IK acabe de llegar a la estación remota justo cuando ésta ha empezado a transmitir una trama de información. La confirmación de IK irá dentro de la trama siguiente, como muestra el diagrama de tiempo que se ve a continuación. De este modo, Wopt = 3. Enlace de datos 58 FUOC • P03/75098/02118 Enlace de datos 58 FUOC • P03/75098/02118 11. a) El caso más desfavorable es el que muestra el diagrama de tiempo siguiente. Aquí las tramas IK+1, Ik+2, … son tramas de 1 kbit y justo cuando se agotan los 100 ms de inactividad, la estación remota decide enviar una trama de 5 kbits. 11. a) El caso más desfavorable es el que muestra el diagrama de tiempo siguiente. Aquí las tramas IK+1, Ik+2, … son tramas de 1 kbit y justo cuando se agotan los 100 ms de inactividad, la estación remota decide enviar una trama de 5 kbits. El tiempo de transmisión de una trama de 1 kbit es de 103/100 · 103 ≡ 10 ms. El de una trama de 5 kbits es de 5 · 103/100 · 103 ≡ 50 ms. Así pues: El tiempo de transmisión de una trama de 1 kbit es de 103/100 · 103 ≡ 10 ms. El de una trama de 5 kbits es de 5 · 103/100 · 103 ≡ 50 ms. Así pues: Wopt = 1 + (100 + 50) / 10 = 16 tramas. Wopt = 1 + (100 + 50) / 10 = 16 tramas. b) Para un protocolo Go back N con una ventana W y n bits para los identificadores se tiene que cumplir W + 1 ≤ 2n. Sustituyendo W = 16 se obtiene: b) Para un protocolo Go back N con una ventana W y n bits para los identificadores se tiene que cumplir W + 1 ≤ 2n. Sustituyendo W = 16 se obtiene: n ≥ log217 = log1017/log102 = 4,08, de donde n ≥ 5 bit. n ≥ log217 = log1017/log102 = 4,08, de donde n ≥ 5 bit. 12. a) El diagrama de tiempo es el mismo que el del apartado a) del ejercicio 7. b) Influyen en la eficiencia: • Los bits de arranque, parada y paridad (ETx). bits de información por carácter 8 E Tx = ------------------------------------------------------------------------------------------ = -------------------------------- ≡ 66,7% bits transmitidos por carácter 8+1+1+1 • Los caracteres de control de las tramas (Et). caracteres de información por trama 1.000 E t = ----------------------------------------------------------------------------------------------------- = --------------- ≡ 99,4% caracteres transmitidos por trama 1,006 • El tiempo de espera de las confirmaciones (Ep). tt E p = --------------------------- ≡ 98% t t + 2t p + t a • Las retransmisiones debidas a los errores (Ee). –5 1 E e = ------ = 1 – p t ≈ 1 – L ⋅ p b = 1 – 1.006 ⋅ 8 ⋅ 10 ≡ 92% Nt 12. a) El diagrama de tiempo es el mismo que el del apartado a) del ejercicio 7. b) Influyen en la eficiencia: • Los bits de arranque, parada y paridad (ETx). bits de información por carácter 8 E Tx = ------------------------------------------------------------------------------------------ = -------------------------------- ≡ 66,7% bits transmitidos por carácter 8+1+1+1 • Los caracteres de control de las tramas (Et). caracteres de información por trama 1.000 E t = ----------------------------------------------------------------------------------------------------- = --------------- ≡ 99,4% caracteres transmitidos por trama 1,006 • El tiempo de espera de las confirmaciones (Ep). tt E p = --------------------------- ≡ 98% t t + 2t p + t a • Las retransmisiones debidas a los errores (Ee). –5 1 E e = ------ = 1 – p t ≈ 1 – L ⋅ p b = 1 – 1.006 ⋅ 8 ⋅ 10 ≡ 92% Nt Para calcular Ep se ha utilizado lo siguiente: Para calcular Ep se ha utilizado lo siguiente: tt = bits por trama / vt = 1.006 · 8 / 115.200 ≡ 69,86 ms. ta = bits por confirmación / vt = 5 · 8 / 115.200 ≡ 0,35 ms. tp = distancia / vp = 10 · 103 / 2 · 108 ≡ 0,5 ms. tt = bits por trama / vt = 1.006 · 8 / 115.200 ≡ 69,86 ms. ta = bits por confirmación / vt = 5 · 8 / 115.200 ≡ 0,35 ms. tp = distancia / vp = 10 · 103 / 2 · 108 ≡ 0,5 ms. Para calcular Ee se ha tenido en cuenta lo siguiente: Para calcular Ee se ha tenido en cuenta lo siguiente: pt = 1 − (1 − pb)L, pt = 1 − (1 − pb)L, donde L es el número de bits de una trama. Dado que pb · L ≈ 0,08 << 1, se puede aproximar por: donde L es el número de bits de una trama. Dado que pb · L ≈ 0,08 << 1, se puede aproximar por: (1 − pb)L ≈ 1 − pb · L = 1 − 10−5 · 1.006 · 8 = 0,92. (1 − pb)L ≈ 1 − pb · L = 1 − 10−5 · 1.006 · 8 = 0,92. La eficiencia total es el producto de toda la eficiencia anterior: Etot = ETx · Et · Ep · Ee = 0,667 · 0,994 · 0,98 · 0,92 ≡ 59,77%. La eficiencia total es el producto de toda la eficiencia anterior: Etot = ETx · Et · Ep · Ee = 0,667 · 0,994 · 0,98 · 0,92 ≡ 59,77%. c) vef = Etot · vt = 0,5977 · 115.200 ≡ 68,8 kbps. c) vef = Etot · vt = 0,5977 · 115.200 ≡ 68,8 kbps. d) Tiempo de transmisión = tamaño del fichero / vef = 106 / 68.800 ≡ 14,5 s. d) Tiempo de transmisión = tamaño del fichero / vef = 106 / 68.800 ≡ 14,5 s. Enlace de datos FUOC • P03/75098/02118 59 Enlace de datos FUOC • P03/75098/02118 59 Glosario Glosario código detector de errores m Transformación que se aplica a la trama para obtener el valor de los bits que se han añadido y detectar de esta forma si una trama llega con errores. Los códigos más utilizados son la paridad, la paridad longitudinal y transversal y los códigos CRC. código detector de errores m Transformación que se aplica a la trama para obtener el valor de los bits que se han añadido y detectar de esta forma si una trama llega con errores. Los códigos más utilizados son la paridad, la paridad longitudinal y transversal y los códigos CRC. control de flujo m Mecanismo que utiliza el nivel de enlace para evitar que las tramas lleguen antes de lo que es capaz de procesar. Normalmente se utiliza un mecanismo de ventana. control de flujo m Mecanismo que utiliza el nivel de enlace para evitar que las tramas lleguen antes de lo que es capaz de procesar. Normalmente se utiliza un mecanismo de ventana. diagrama de tiempo m Representación espaciotemporal de la comunicación entre dos entidades. Permite representar gráficamente un protocolo y el tiempo invertido en cada una de las acciones. diagrama de tiempo m Representación espaciotemporal de la comunicación entre dos entidades. Permite representar gráficamente un protocolo y el tiempo invertido en cada una de las acciones. distancia de Hamming f Número de bits de diferencia que hay entre dos palabras código. distancia de Hamming f Número de bits de diferencia que hay entre dos palabras código. enlace multipunto m Situación en la que una comunidad de computadores se comunican mediante un enlace compartido. Para poder comunicarse sin interferirse entre sí uno de los mismos se encarga de arbitrar las comunicaciones. enlace multipunto m Situación en la que una comunidad de computadores se comunican mediante un enlace compartido. Para poder comunicarse sin interferirse entre sí uno de los mismos se encarga de arbitrar las comunicaciones. framing f Véase sincronización de trama. framing f Véase sincronización de trama. inserción de caracteres f Mecanismo de transparencia que se utiliza en las transmisiones orientadas a carácter. inserción de caracteres f Mecanismo de transparencia que se utiliza en las transmisiones orientadas a carácter. inserción de ceros f Mecanismo de transparencia que se utiliza en las transmisiones orientadas a bit. inserción de ceros f Mecanismo de transparencia que se utiliza en las transmisiones orientadas a bit. lista de recepción f Lista en la cual el secundario guarda las tramas para poder entregarlas en orden. lista de recepción f Lista en la cual el secundario guarda las tramas para poder entregarlas en orden. lista de transmisión f Lista donde el primario guarda las tramas que se han enviado y que están pendientes de confirmar, para poder retransmitirlas en caso de error. lista de transmisión f Lista donde el primario guarda las tramas que se han enviado y que están pendientes de confirmar, para poder retransmitirlas en caso de error. mecanismo de transparencia m Mecanismo que se utiliza para no confundir los datos de la trama con el identificador de final de trama. mecanismo de transparencia m Mecanismo que se utiliza para no confundir los datos de la trama con el identificador de final de trama. nivel de enlace m Nivel que hay inmediatamente por encima del nivel físico. Su función más importante es transmitir información de manera fiable utilizando el flujo no fiable de bits del nivel físico. nivel de enlace m Nivel que hay inmediatamente por encima del nivel físico. Su función más importante es transmitir información de manera fiable utilizando el flujo no fiable de bits del nivel físico. palabra código f En el contexto de los códigos detectores de errores, conjunto de P + Q bits que resultan de la transformación que aplica el código a los P bits que se deben proteger. palabra código f En el contexto de los códigos detectores de errores, conjunto de P + Q bits que resultan de la transformación que aplica el código a los P bits que se deben proteger. piggybacking m Técnica que consiste en enviar las confirmaciones dentro de un campo de las tramas de información. piggybacking m Técnica que consiste en enviar las confirmaciones dentro de un campo de las tramas de información. primario m Estación que envía las tramas de información. En el protocolo HDLC, es la estación que puede enviar comandos. primario m Estación que envía las tramas de información. En el protocolo HDLC, es la estación que puede enviar comandos. protocolo m Formato y conjunto de reglas que se definen para la comunicación entre dos entidades del mismo nivel, en la arquitectura de comunicaciones. protocolo m Formato y conjunto de reglas que se definen para la comunicación entre dos entidades del mismo nivel, en la arquitectura de comunicaciones. protocolo no orientado a la conexión m Protocolo que no tiene fase de inicialización ni de desconexión. protocolo no orientado a la conexión m Protocolo que no tiene fase de inicialización ni de desconexión. protocolo orientado a la conexión m Protocolo que tiene una fase de inicialización y una fase de desconexión. protocolo orientado a la conexión m Protocolo que tiene una fase de inicialización y una fase de desconexión. ráfaga de error f Número de bits que hay entre el primer bit erróneo de una trama y el último, los dos incluidos. ráfaga de error f Número de bits que hay entre el primer bit erróneo de una trama y el último, los dos incluidos. recuperación automática de errores f Técnica que consiste en solicitar la retransmisión de una trama cuando se detecta un error. Los protocolos más conocidos que utilizan esta técnica son el Stop & Wait, el Go back N y la retransmisión selectiva. recuperación automática de errores f Técnica que consiste en solicitar la retransmisión de una trama cuando se detecta un error. Los protocolos más conocidos que utilizan esta técnica son el Stop & Wait, el Go back N y la retransmisión selectiva. redundancia f Bits adicionales que añade el código detector de errores. redundancia f Bits adicionales que añade el código detector de errores. secundario m Estación –en el contexto del módulo– que envía las tramas de confirmación. En el protocolo HDLC, se trata de la estación que envía las respuestas. secundario m Estación –en el contexto del módulo– que envía las tramas de confirmación. En el protocolo HDLC, se trata de la estación que envía las respuestas. Enlace de datos FUOC • P03/75098/02118 60 Enlace de datos FUOC • P03/75098/02118 60 sincronización de trama f Mecanismo que utiliza el nivel de enlace para determinar el inicio y el final de una trama dentro del flujo de bits o caracteres que llega del nivel físico. en framing sincronización de trama f Mecanismo que utiliza el nivel de enlace para determinar el inicio y el final de una trama dentro del flujo de bits o caracteres que llega del nivel físico. en framing trama f Estructura en la cual el nivel de enlace organiza los campos de control y de información para que puedan ser identificados dentro del flujo de bits del nivel físico. trama f Estructura en la cual el nivel de enlace organiza los campos de control y de información para que puedan ser identificados dentro del flujo de bits del nivel físico. vef Véase velocidad de transmisión efectiva o eficaz. vef Véase velocidad de transmisión efectiva o eficaz. velocidad de transmisión efectiva o eficaz f Velocidad media a la que se transmiten los bits de información. Se define como: vef = E · vt, donde E es la eficiencia del enlace, y vt, la velocidad de transmisión máxima. sigla: vef velocidad de transmisión efectiva o eficaz f Velocidad media a la que se transmiten los bits de información. Se define como: vef = E · vt, donde E es la eficiencia del enlace, y vt, la velocidad de transmisión máxima. sigla: vef ventana de recepción f Número máximo de tramas que tiene que almacenar el secundario. ventana de recepción f Número máximo de tramas que tiene que almacenar el secundario. ventana de transmisión f Número de tramas que el primario está autorizado a transmitir sin confirmar, dado que todas las anteriores están confirmadas. ventana de transmisión f Número de tramas que el primario está autorizado a transmitir sin confirmar, dado que todas las anteriores están confirmadas. ventana óptima f Ventana mínima que permite alcanzar una eficiencia del protocolo del 100%. ventana óptima f Ventana mínima que permite alcanzar una eficiencia del protocolo del 100%. Bibliografía Bibliografía Benedetto, S.; Biglier, E.; Castellani, V. (1987). Digital Transmission Theory. Englewood Cliffs: Prentice Hall. Benedetto, S.; Biglier, E.; Castellani, V. (1987). Digital Transmission Theory. Englewood Cliffs: Prentice Hall. Bertsekas, D.; Gallager, R. (1992). Data Networks (2.ª ed.) Englewood Cliffs: Prentice Hall. Bertsekas, D.; Gallager, R. (1992). Data Networks (2.ª ed.) Englewood Cliffs: Prentice Hall. Stallings, W. (2000). Comunicación de datos y redes de computadores. (6.ª ed.) Madrid: Prentice Hall. Stallings, W. (2000). Comunicación de datos y redes de computadores. (6.ª ed.) Madrid: Prentice Hall. Enlace de datos 61 FUOC • P03/75098/02118 Enlace de datos 61 FUOC • P03/75098/02118 Anexos Anexos Anexo 1 Anexo 1 Códigos detectores de errores polinomiales Códigos detectores de errores polinomiales Unos códigos detectores de errores muy utilizados son los conocidos como CRC*. Estos códigos se suelen utilizar en transmisiones orientadas a bit. * CRC es la sigla de la expresión inglesa Cyclic Redundancy Check. Unos códigos detectores de errores muy utilizados son los conocidos como CRC*. Estos códigos se suelen utilizar en transmisiones orientadas a bit. Los códigos detectores de errores CRC se basan en el cálculo de un número Los códigos detectores de errores CRC se basan en el cálculo de un número binario, conocido como CRC, resultado de una cierta operación con los bits binario, conocido como CRC, resultado de una cierta operación con los bits que se deben proteger. Este número se pone en el campo de control de errores que se deben proteger. Este número se pone en el campo de control de errores de la trama. En recepción se repite el cálculo y se interpreta que hay o no error de la trama. En recepción se repite el cálculo y se interpreta que hay o no error según si coincide con el CRC o no. según si coincide con el CRC o no. Para explicar el cálculo del CRC es conveniente representar las secuencias de bits como polinomios, tal y como se explica a continuación. Nos referiremos a los bits de una secuencia s de K bits como sK−1, sK−2, …, s0. Definimos la representación polinomial s(x) de la secuencia s de la manera siguiente: s ( x ) = sk – 1 x k–1 + sk – 2 x k–2 + … + s1 x + s 0 ... representación polinomial de una secuencia La representación polinomial de la secuencia “1001001” es: x6 + x3 + 1. bits como polinomios, tal y como se explica a continuación. Nos referiremos a los bits de una secuencia s de K bits como sK−1, sK−2, …, s0. Definimos la representación polinomial s(x) de la secuencia s de la manera siguiente: s ( x ) = sk – 1 x k–1 + sk – 2 x k–2 + … + s1 x + s 0 El objetivo de las potencias xj es distinguir el peso del bit sj dentro de la secuen- cia. Supongamos que la secuencia s es la formada por los bits de la trama que cia. Supongamos que la secuencia s es la formada por los bits de la trama que queremos proteger. A los bits s de la trama se añade una secuencia de Q bits, queremos proteger. A los bits s de la trama se añade una secuencia de Q bits, llamémosla c, para la detección de errores. Estos bits se conocen como el CRC llamémosla c, para la detección de errores. Estos bits se conocen como el CRC de la trama. La representación polinomial de la trama, llamémosla t, formada de la trama. La representación polinomial de la trama, llamémosla t, formada por los bits s y el CRC será, pues: por los bits s y el CRC será, pues: t(x) = s(x) · xQ + c(x). t(x) = s(x) · xQ + c(x). El cálculo del CRC se especifica en función de un polinomio generador g(x), de El cálculo del CRC se especifica en función de un polinomio generador g(x), de manera que el polinomio c(x) se define como el residuo de la división en módulo manera que el polinomio c(x) se define como el residuo de la división en módulo Q * CRC es la sigla de la expresión inglesa Cyclic Redundancy Check. Para explicar el cálculo del CRC es conveniente representar las secuencias de Ejemplo de... El objetivo de las potencias xj es distinguir el peso del bit sj dentro de la secuen- Q Enlace de datos 2 entre los polinomios s(x) · x y g(x), es decir: c(x) = Residuo[(s(x) · x ) / g(x)]. En 2 entre los polinomios s(x) · xQ y g(x), es decir: c(x) = Residuo[(s(x) · xQ) / g(x)]. En módulo 2, el resto es igual a la suma, que a la vez es la operación XOR binaria. módulo 2, el resto es igual a la suma, que a la vez es la operación XOR binaria. Ejemplo de cálculo del CRC Ejemplo de cálculo del CRC Supongamos que la secuencia de bits que hay que proteger es “11001”, con un CRC de tres bits, y que el polinomio generador es g(x) = x3 + 1. Tenemos que s(x) = x4 + x3 + 1, s(x) · x3= x7 + x6 + x3, y la división en módulo 2 de (s(x) · xQ) / g(x) es: Supongamos que la secuencia de bits que hay que proteger es “11001”, con un CRC de tres bits, y que el polinomio generador es g(x) = x3 + 1. Tenemos que s(x) = x4 + x3 + 1, s(x) · x3= x7 + x6 + x3, y la división en módulo 2 de (s(x) · xQ) / g(x) es: Se obtiene, pues, c(x) = x, y, por lo tanto, el CRC que habría que añadir sería “010”. Se obtiene, pues, c(x) = x, y, por lo tanto, el CRC que habría que añadir sería “010”. Ejemplo de... ... representación polinomial de una secuencia La representación polinomial de la secuencia “1001001” es: x6 + x3 + 1. 62 FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 62 Para saber si ha habido errores, con respecto a la recepción se repite la división: Para saber si ha habido errores, con respecto a la recepción se repite la división: si el residuo coincide con el CRC, se entiende que la trama se ha recibido co- si el residuo coincide con el CRC, se entiende que la trama se ha recibido co- rrectamente. rrectamente. El grado del polinomio generador g(x) no es arbitrario, sino que es determinado El grado del polinomio generador g(x) no es arbitrario, sino que es determinado por el número de bits que se desea que tenga el CRC. El residuo de la división por por el número de bits que se desea que tenga el CRC. El residuo de la división por un polinomio de grado p es un polinomio de grado menor o igual a p − 1. un polinomio de grado p es un polinomio de grado menor o igual a p − 1. Si queremos que el CRC tenga Q bits, es decir, que su representación po- Si queremos que el CRC tenga Q bits, es decir, que su representación po- linomial tenga un grado menor o igual a Q − 1, tendremos que elegir un linomial tenga un grado menor o igual a Q − 1, tendremos que elegir un polinomio generador de grado Q. En otras palabras, el grado del gene- polinomio generador de grado Q. En otras palabras, el grado del gene- rador debe ser igual al número de bits del CRC. rador debe ser igual al número de bits del CRC. Las propiedades del código CRC dependen del polinomio generador. En gene- Las propiedades del código CRC dependen del polinomio generador. En gene- ral, sin embargo, se puede demostrar que si elegimos un polinomio generador ral, sin embargo, se puede demostrar que si elegimos un polinomio generador adecuado de grado Q (es decir, con un CRC de Q bits): adecuado de grado Q (es decir, con un CRC de Q bits): a) La distancia de Hamming del código es mayor o igual a 4. a) La distancia de Hamming del código es mayor o igual a 4. b) La capacidad de detección de ráfagas de error es mayor o igual a Q. b) La capacidad de detección de ráfagas de error es mayor o igual a Q. c) La probabilidad de que una combinación arbitraria de bits sea aceptada c) La probabilidad de que una combinación arbitraria de bits sea aceptada como palabra válida vale 2−Q. como palabra válida vale 2−Q. Polinomios generadores estandarizados Polinomios generadores estandarizados Hay polinomios generadores muy utilizados que han sido estandarizados. Algunos de éstos, para CRC de 16 y 32 bits, son los siguientes: Hay polinomios generadores muy utilizados que han sido estandarizados. Algunos de éstos, para CRC de 16 y 32 bits, son los siguientes: a) CRC-16: g(x) = x16 + x15 + x2 + 1. a) CRC-16: g(x) = x16 + x15 + x2 + 1. b) CRC-CCITT: g(x) = x16 + x12 + x5 + 1. b) CRC-CCITT: g(x) = x16 + x12 + x5 + 1. c) CRC-32: g(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1. c) CRC-32: g(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1. Anexo 2 Anexo 2 Cálculo de la eficiencia de los protocolos ARQ en presencia de errores Cálculo de la eficiencia de los protocolos ARQ en presencia de errores Hemos visto que en ausencia de errores la eficiencia del protocolo Stop & Wait es determinada por la ecuación 9, mientras que para los protocolos de trans- Enlace de datos Podéis ver la ecuación 9 en el subapartado 3.3.4 de este módulo didáctico. Hemos visto que en ausencia de errores la eficiencia del protocolo Stop & Wait es determinada por la ecuación 9, mientras que para los protocolos de trans- misión continua es del 100%. Vamos a ver cómo podemos llegar a expresiones misión continua es del 100%. Vamos a ver cómo podemos llegar a expresiones cerradas para expresar esta eficiencia, si suponemos que se producen errores cerradas para expresar esta eficiencia, si suponemos que se producen errores de transmisión. de transmisión. Empezaremos suponiendo que conocemos el número medio de transmisiones Empezaremos suponiendo que conocemos el número medio de transmisiones necesarias para la transmisión con éxito de una trama (Nt). necesarias para la transmisión con éxito de una trama (Nt). Podéis ver la ecuación 9 en el subapartado 3.3.4 de este módulo didáctico. 63 FUOC • P03/75098/02118 Enlace de datos 63 FUOC • P03/75098/02118 1) Eficiencia del protocolo Stop & Wait 1) Eficiencia del protocolo Stop & Wait Consideremos el caso de un protocolo Stop & Wait explícito. El diagrama de Consideremos el caso de un protocolo Stop & Wait explícito. El diagrama de tiempo que utilizaremos para calcular la eficiencia es el siguiente: tiempo que utilizaremos para calcular la eficiencia es el siguiente: La trama IK se transmite Nt veces, Nt − 1 con error y la última con éxito. En la La trama IK se transmite Nt veces, Nt − 1 con error y la última con éxito. En la figura se ve que hemos empleado un tiempo igual a Nt · Tc para poder trans- figura se ve que hemos empleado un tiempo igual a Nt · Tc para poder trans- mitirla. mitirla. Así pues, si aplicamos la ecuación (6), llegamos a esta expresión: Así pues, si aplicamos la ecuación (6), llegamos a esta expresión: Ecuación 14 tt tt 1 E = --------------- = --------------------------------------≈ ---------------------------, Nt ⋅ Tc N t ( t t + t a + 2t p ) N t ( 1 + 2a ) Ecuación 14 tt tt 1 E = --------------- = --------------------------------------≈ ---------------------------, Nt ⋅ Tc N t ( t t + t a + 2t p ) N t ( 1 + 2a ) donde a = tp/tt, y hemos supuesto que tt >> ta. donde a = tp/tt, y hemos supuesto que tt >> ta. 2) Eficiencia en una retransmisión selectiva 2) Eficiencia en una retransmisión selectiva Consideremos una retransmisión selectiva explícita. El diagrama de tiempo para Consideremos una retransmisión selectiva explícita. El diagrama de tiempo para calcular la eficiencia es el de la figura, con las mismas suposiciones que antes: calcular la eficiencia es el de la figura, con las mismas suposiciones que antes: Enlace de datos 64 FUOC • P03/75098/02118 Enlace de datos 64 FUOC • P03/75098/02118 Aquí, el tiempo invertido en la transmisión es de Nt · tt, dado que el primario Aquí, el tiempo invertido en la transmisión es de Nt · tt, dado que el primario transmite otras tramas mientras espera las confirmaciones. Por lo tanto: transmite otras tramas mientras espera las confirmaciones. Por lo tanto: tt 1 - = -----E = ------------Nt ⋅ tt Nt Ecuación 15 tt 1 - = -----E = ------------Nt ⋅ tt Nt Ecuación 15 3) Eficiencia en un protocolo Go back N 3) Eficiencia en un protocolo Go back N Ahora consideraremos el diagrama de tiempo de la figura siguiente: Ahora consideraremos el diagrama de tiempo de la figura siguiente: Tal y como se ve en la figura, suponemos que cuando llega una confirma- Tal y como se ve en la figura, suponemos que cuando llega una confirma- ción negativa se aborta la transmisión de la trama en curso y se vuelve a ción negativa se aborta la transmisión de la trama en curso y se vuelve a empezar a partir de la trama errónea. Cada vez que hay un error se pierden empezar a partir de la trama errónea. Cada vez que hay un error se pierden las tramas transmitidas, salvo en el caso de la última transmisión (que se las tramas transmitidas, salvo en el caso de la última transmisión (que se hace con éxito). De este modo, el tiempo invertido en la transmisión es de hace con éxito). De este modo, el tiempo invertido en la transmisión es de (Nt · Tc − 1) + tt, donde Tc = tt + tp + ta + tp y, por lo tanto, la eficiencia se (Nt · Tc − 1) + tt, donde Tc = tt + tp + ta + tp y, por lo tanto, la eficiencia se calcula de esta manera: calcula de esta manera: Ecuación 16 tt tt 1 E = --------------------------------------- = ------------------------------------------------------------- ≈ -------------------------------------- , ( Nt – 1 ) ⋅ T c + tt ( N – 1 ) ( t t + t a + 2t p ) + t t 2a ( N – 1 ) + N t Ecuación 16 tt tt 1 E = --------------------------------------- = ------------------------------------------------------------- ≈ -------------------------------------- , ( Nt – 1 ) ⋅ T c + tt ( N – 1 ) ( t t + t a + 2t p ) + t t 2a ( N – 1 ) + N t donde se ha hecho la suposición habitual de considerar la hipótesis tt >> ta. Si donde se ha hecho la suposición habitual de considerar la hipótesis tt >> ta. Si la probabilidad de error en una trama es pequeña, entonces Nt > ≈ 1, y la ecuación (16) se aproxima a E ≈ 1/Nt, igual que en el caso de la retransmisión se- la probabilidad de error en una trama es pequeña, entonces Nt > ≈ 1, y la ecuación (16) se aproxima a E ≈ 1/Nt, igual que en el caso de la retransmisión se- lectiva (ecuación 15). Este hecho explica que en la práctica, donde la lectiva (ecuación 15). Este hecho explica que en la práctica, donde la retransmisión de las tramas suele ser poco frecuente, el protocolo Go back N retransmisión de las tramas suele ser poco frecuente, el protocolo Go back N (GBN) es el mecanismo más utilizado. (GBN) es el mecanismo más utilizado. La figura siguiente muestra un gráfico comparativo de la eficiencia obte- La figura siguiente muestra un gráfico comparativo de la eficiencia obte- nida con los protocolos Stop & Wait (SW), Go back N (GBN) y con la retrans- nida con los protocolos Stop & Wait (SW), Go back N (GBN) y con la retrans- Enlace de datos FUOC • P03/75098/02118 65 Enlace de datos FUOC • P03/75098/02118 65 misión selectiva (RS, ecuaciones 14, 16 y 15, respectivamente). Las curvas misión selectiva (RS, ecuaciones 14, 16 y 15, respectivamente). Las curvas se han dibujado para dos valores del parámetro a = tp/tt (a = 0,1 y a = 1,0): se han dibujado para dos valores del parámetro a = tp/tt (a = 0,1 y a = 1,0): De la figura anterior podemos deducir las características más importantes de De la figura anterior podemos deducir las características más importantes de los tres protocolos de niveles de enlace explicados hasta ahora: los tres protocolos de niveles de enlace explicados hasta ahora: • La eficiencia con retransmisión selectiva es independiente de a. • La eficiencia con retransmisión selectiva es independiente de a. • La eficiencia con retransmisión selectiva y Go back N es del 100% si la pro- • La eficiencia con retransmisión selectiva y Go back N es del 100% si la pro- babilidad de error en una trama es 0 (Nt = 1). En cambio, en el protocolo babilidad de error en una trama es 0 (Nt = 1). En cambio, en el protocolo Stop & Wait decrece rápidamente al aumentar a. Stop & Wait decrece rápidamente al aumentar a. • Si la probabilidad de error en una trama es pequeña (Nt > ≈ 1), la retransmisión selectiva y el Go back N tienen una eficiencia parecida. • Si la probabilidad de error en una trama es pequeña (Nt > ≈ 1), la retransmisión selectiva y el Go back N tienen una eficiencia parecida. • Si la probabilidad de error es alta (Nt >> 1), la eficiencia obtenida con los • Si la probabilidad de error es alta (Nt >> 1), la eficiencia obtenida con los tres protocolos es parecida. tres protocolos es parecida. Cálculo del número medio de retransmisiones en función de la probabilidad Cálculo del número medio de retransmisiones en función de la probabilidad de error en el bit de error en el bit En las ecuaciones 14, 15 y 16 hemos dado el valor de la eficiencia en función En las ecuaciones 14, 15 y 16 hemos dado el valor de la eficiencia en función del número medio de retransmisiones de una trama (Nt). En la práctica, es ha- del número medio de retransmisiones de una trama (Nt). En la práctica, es ha- bitual disponer de la probabilidad de error en un bit (pb). Ahora deduciremos bitual disponer de la probabilidad de error en un bit (pb). Ahora deduciremos Enlace de datos 66 FUOC • P03/75098/02118 Enlace de datos 66 FUOC • P03/75098/02118 Enlace de datos cuál es la relación que hay entre pb y Nt. Primero calcularemos la probabilidad cuál es la relación que hay entre pb y Nt. Primero calcularemos la probabilidad de error en la trama (pt) en función de pb. El número de bits de la trama lo de- de error en la trama (pt) en función de pb. El número de bits de la trama lo de- nominaremos L. Si suponemos que la probabilidad de error en los bits de la tra- nominaremos L. Si suponemos que la probabilidad de error en los bits de la tra- ma es independiente, la probabilidad de error en la trama es la que vemos a ma es independiente, la probabilidad de error en la trama es la que vemos a continuación: continuación: pt = 1 − P{no error en la trama} = 1 − P{no error en un bit}L, de donde: pt = 1 − P{no error en la trama} = 1 − P{no error en un bit}L, de donde: pt = 1 − (1 − pb)L Ecuación 17 pt = 1 − (1 − pb)L Ecuación 17 Dado que, si n · x << 1, podemos hacer el desarrollo (1 − x)n ≈ 1 − n · x, y la Dado que, si n · x << 1, podemos hacer el desarrollo (1 − x)n ≈ 1 − n · x, y la ecuación 17 se puede aproximar por: ecuación 17 se puede aproximar por: pt ≈ L · pb , si L · pb << 1. pt ≈ L · pb , si L · pb << 1. Supongamos a continuación que la probabilidad de error en las tramas es in- Supongamos a continuación que la probabilidad de error en las tramas es in- dependiente para cada trama. Entonces, si el número de retransmisiones de dependiente para cada trama. Entonces, si el número de retransmisiones de una trama es K, quiere decir que ha habido K − 1 tramas con error y una trama una trama es K, quiere decir que ha habido K − 1 tramas con error y una trama sin error. De este hecho se deduce que la probabilidad de que haya K retrans- sin error. De este hecho se deduce que la probabilidad de que haya K retrans- misiones es ésta: misiones es ésta: P{K retransmissions} = ptK−1 (1 − pt). P{K retransmissions} = ptK−1 (1 − pt). El número medio de retransmisiones es dado por la expresión siguiente: Nt = El número medio de retransmisiones es dado por la expresión siguiente: ∑ K ⋅ P { K retransmisiones } ; Nt = K≥1 de aquí: de aquí: Nt = K–1 ∑ K ⋅ pt K≥1 donde se ha utilizado la relación: 2 ( 1 – pt ) = ( 1 – pt ) ⁄ ( 1 – pt ) , ∑ n⋅x n–1 2 = 1 ⁄ ( 1 – x ) . Finalmente, se llega a: Nt = Nt = 1 / (1 − pt) K–1 ∑ K ⋅ pt K≥1 donde se ha utilizado la relación: n≥1 Ecuación 18 ∑ K ⋅ P { K retransmisiones } ; K≥1 2 ( 1 – pt ) = ( 1 – pt ) ⁄ ( 1 – pt ) , ∑ n⋅x n–1 2 = 1 ⁄ ( 1 – x ) . Finalmente, se llega a: n≥1 Ecuación 18 Nt = 1 / (1 − pt) Si sustituimos la ecuación 17 en la ecuación 18, nos queda el número medio Si sustituimos la ecuación 17 en la ecuación 18, nos queda el número medio de retransmisiones de cada trama en función de la probabilidad de error en el de retransmisiones de cada trama en función de la probabilidad de error en el FUOC • P03/75098/02118 67 Enlace de datos FUOC • P03/75098/02118 67 bit. La figura siguiente muestra un gráfico de la ecuación resultante para un bit. La figura siguiente muestra un gráfico de la ecuación resultante para un tamaño de la trama L = 1 kbit, 10 kbits, 100 kbits y 1 Mbit: tamaño de la trama L = 1 kbit, 10 kbits, 100 kbits y 1 Mbit: Del gráfico deducimos la relación orientativa siguiente: para tener un número x Del gráfico deducimos la relación orientativa siguiente: para tener un número medio de retransmisiones Nt ≈ 1 utilizando tramas de tamaño 10 , la probabi- medio de retransmisiones Nt ≈ 1 utilizando tramas de tamaño 10x, la probabi- Cuanto mayor sea el tamaño de la trama, mayor será el número medio de Cuanto mayor sea el tamaño de la trama, mayor será el número medio de retransmisiones necesario para transmitirla y, por lo tanto, menor será la retransmisiones necesario para transmitirla y, por lo tanto, menor será la eficiencia del algoritmo de recuperación de errores. La probabilidad de eficiencia del algoritmo de recuperación de errores. La probabilidad de error en el bit limita el tamaño máximo de trama que podemos utilizar error en el bit limita el tamaño máximo de trama que podemos utilizar para que el número medio de retransmisiones sea aproximadamente 1. para que el número medio de retransmisiones sea aproximadamente 1. lidad de error en el bit tiene que ser pb < 10−(x+1). lidad de error en el bit tiene que ser pb < 10−(x+1). Enlace de datos FUOC • P03/75098/02118 Enlace de datos FUOC • P03/75098/02118 Enlace de datos