Módulo 3. Enlace de datos - Curso de Administrador de Redes

Anuncio
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
Descargar