Está en la página 1de 26

RI1

Redes de
| Introducción. Cuestiones de diseño. Servicios
proporcionados a la capa de red. Entramado. Control
de errores. Control de flujo. Detección y Corrección de
Errores. Protocolos de transmisión
Información 1 confiable. Protocolos de Ventana Corrediza.
MÓDULO
COMUNICACIONES | Definir la función principal de la capa de enlace de datos. DIDÁCTICO
ENTRE | Introducir a los distintos servicios ofrecidos por la 2020
capa de enlace de datos.
COMPUTADORAS | Describir las principales características de cada servicio.
UNIDAD Capa de Enlace de Datos | Introducción a los métodos de entramado.
| Describir las características y el funcionamiento de los
distintos métodos de entramado.
| Introducción al los conceptos de control de errores y
de control de flujo.
| Introducción a los protocolos de transmisión confiable.
CLASE | Introducción a los protocolos de ventana corrediza.
Capa de Enlace de Datos

El objetivo principal de esta capa son los métodos o algoritmos para la comunicación confiable y
eficiente entre dos máquinas adyacentes.

Por adyacente, queremos decir que las dos máquinas están conectadas por un canal de comunicaciones
que actúa de manera conceptual como un alambre. La propiedad esencial de un canal que lo hace
asemejarse a un alambre es que los bits se entregan con exactitud en el mismo orden en que fueron
enviados.

A primera vista podría pensarse que este problema es tan trivial que no hay ningún software que
estudiar: la máquina A sólo pone los bits en el alambre, y la máquina B simplemente los toma. Por
desgracia, los circuitos de comunicación cometen errores ocasionales. Además, tienen una tasa
de datos finita y hay un retardo de propagación diferente de cero entre el momento en que se
envía un bit y el momento en que se recibe. Estas limitaciones tienen implicaciones importantes
para la eficiencia de la transferencia de datos. Los protocolos usados para comunicaciones deben
considerar todos estos factores.

Tras una introducción a los aspectos clave de diseño presentes en la capa de enlace de datos,
estudiaremos una serie de protocolos de complejidad creciente, cada uno de los cuales resuelve los
problemas presentes en esta capa. Por último, daremos algunos ejemplos de protocolos de enlace
de datos.

2
Cuestiones de Diseño
de la Capa de Enlace de Datos
La capa de enlace de datos tiene que desempeñar varias funciones específicas, entre las que se |1|
incluyen:
| Proporcionar una interfaz de servicio bien definida con la capa de red. Máquina emisora Máquina receptora
| Manejar los errores de transmisión. Paquete Paquete
| Regular el flujo de datos para que receptores lentos no sean saturados por emisores rápidos. Trama

Para cumplir con estas metas, la capa de enlace de datos toma de la capa de red los paquetes y Encabezado Campo de Terminador
los encapsula en tramas para transmitirlos. Cada trama contiene un encabezado, un campo de carga útil
carga útil (payload) para almacenar el paquete y un terminador o final, como se ilustra en la figura
|1|. El manejo de las tramas es la tarea primordial de la capa de enlace de datos. En las siguientes Encabezado Campo de Terminador
secciones examinaremos en detalle todos los aspectos mencionados. carga útil

Aunque aquí sólo analiza la capa de enlace de datos y los protocolos de enlace de datos, muchos de los
principios que analizaremos aquí, como el control de errores y el de flujo, también se encuentran en la Relación entre los paquetes y las tramas
capa de transporte y en otros protocolos. De hecho, en muchas redes, estas funciones se encuentran
sólo en las capas superiores y no en la de enlace de datos. Sin embargo, independientemente de
donde se encuentren, los principios son casi los mismos. Por lo general, éstos se muestran en la capa
de enlace de datos en sus formas más simples y puras, por lo que dicha capa es un buen lugar para
examinarlos en detalle.

3
Servicios proporcionados a la capa de red |2|a |2|b

Host 1 Host 2 Host 1 Host 2


La función de la capa de enlace de datos es suministrar servicios a la capa de red. El servicio principal
es transferir datos de la capa de red en la máquina de origen a la capa de red en la máquina de destino.
En la capa de red de la máquina de origen hay una entidad, llamada proceso, que entrega algunos bits
a la capa de enlace de datos para transmitirlos a la máquina de destino. El trabajo de la capa de enlace
de datos es transmitir los bits a la máquina de destino, para que puedan ser entregados a su capa de 4 4 4 4
red, como se muestra en la figura |2|a. La transmisión real sigue la trayectoria de la figura |2|b, pero es 3 3 3 3
Ruta de
más fácil pensar en términos de dos procesos de capa de enlace de datos que se comunican usando un datos virtual
2 2 2 2
protocolo de enlace de datos. Por esta razón, a lo largo de este capítulo usaremos de manera implícita
1 1 1 Ruta de 1
el modelo de la figura |2|a.
datos real

| Servicio: un servicio es un conjunto de primitivas (operaciones) que una capa proporciona a una La figura |2|: |2|a Comunicación virtual. |2|b Comunicación real.
capa que está sobre ella. El servicio define qué operaciones puede realizar la capa en beneficio La capa de enlace de datos puede diseñarse para ofrecer varios
de sus usuarios, pero no dice nada de cómo se implementan tales operaciones. Un servicio está servicios. Los servicios reales ofrecidos pueden variar de sistema
relacionado con la interfaz entre dos capas, donde la capa inferior es la que provee el servicio y la a sistema. Tres posibilidades razonables que normalmente se
superior quien lo recibe. proporcionan son:
1| Servicio no orientado a la conexión sin confirmación de recepción.
| Protocolo: es un conjunto de reglas que rigen el formato y el significado de los paquetes, o mensajes, 2| Servicio no orientado a la conexión con confirmación de recepción.
que se intercambian las entidades iguales en una capa. 3| Servicio orientado a la conexión con confirmación de recepción.

| Entidades: Se denomina entidad E(N) a un elemento activo que realiza las funciones de la capa N.
Una entidad puede ser de software o hardware (circuito integrado de entrada/salida). Las entidades
de la misma capa pero en máquinas diferentes se llamas entidades homólogas.

4
Las entidades E(N) utilizan los servicios brindados por la capa inmediatamente inferior N-1 para
efectuar las comunicaciones. La información es transferida físicamente entre capas adyacentes
desde un sistema hacia otro y las entidades se comunican lógicamente entre sí, ignorando los
detalles de la transferencia.

Consideremos cada uno de ellos por separado.

El servicio no orientado a la conexión sin confirmación de recepción consiste en hacer que la


máquina de origen envíe tramas independientes a la máquina de destino sin pedir que ésta confirme la
recepción. No se establece conexión de antemano ni se libera después. Si se pierde una trama debido
a ruido en la línea, en la capa de enlace de datos no se realiza ningún intento por detectar la pérdida ni
por recuperarse de ella. Esta clase de servicio es apropiada cuando la tasa de errores es muy baja, por
lo que la recuperación se deja a las capas superiores. También es apropiada para el tráfico en tiempo
real, por ejemplo de voz, en el que la llegada retrasada de datos es peor que los errores de datos. La
mayoría de las LANs utilizan servicios no orientados a la conexión sin confirmación de recepción en la
capa de enlace de datos.

El siguiente paso hacia adelante en cuanto a confiabilidad es el servicio no orientado a la conexión


con confirmación de recepción. Cuando se ofrece este servicio tampoco se utilizan conexiones
lógicas, pero se confirma de manera individual la recepción de cada trama enviada. De esta manera,
el emisor sabe si la trama ha llegado bien o no. Si no ha llegado en un tiempo especificado, puede
enviarse nuevamente. Este servicio es útil en canales inestables, como los de los sistemas inalámbricos.

5
Tal vez valga la pena poner énfasis en que proporcionar confirmaciones de recepción en la capa de
enlace de datos sólo es una optimización, nunca un requisito. La capa de red siempre puede enviar
un paquete y esperar que se confirme su recepción. Si la confirmación no llega antes de que expire
el temporizador, el emisor puede volver a enviar el mensaje.

El problema con esta estrategia es que las tramas tienen una longitud máxima impuesta por el
hardware mientras que los paquetes de la capa de red no la tienen. Si el paquete promedio se divide
en, digamos, 10 tramas, y se pierde 20% de todas las tramas enviadas, el paquete puede tardar
mucho tiempo en pasar. Si las tramas se confirman y retransmiten de manera individual, los paquetes
completos pasan con mayor rapidez. En los canales confiables, como la fibra óptica, la sobrecarga que
implica el uso de un protocolo de enlace de datos muy robusto puede ser innecesaria, pero en canales
inalámbricos bien vale la pena el costo debido a su inestabilidad inherente.

Regresando a nuestros servicios, el servicio más refinado que puede proporcionar la capa de enlace
de datos a la capa de red es el servicio orientado a la conexión con confirmación de recepción. Con
este servicio, las máquinas de origen y de destino establecen una conexión antes de transferir datos.
Cada trama enviada a través de la conexión está numerada, y la capa de enlace de datos garantiza que
cada trama enviada llegará a su destino. Es más, garantiza que cada trama será recibida exactamente
una vez y que todas las tramas se recibirán en el orden adecuado. En contraste, con el servicio no
orientado a la conexión es posible que una confirmación de recepción perdida cause que una trama
se envíe varias veces y, por lo tanto, que se reciba varias veces. Por su parte, el servicio orientado a la
conexión proporciona a los procesos de la capa de red el equivalente de un flujo de bits confiable.

6
Cuando se utiliza un servicio orientado a la conexión, las transferencias tienen tres fases distintas.
En la primera, la conexión se establece haciendo que ambos lados inicialicen las variables y los
contadores necesarios para seguir la pista de las tramas que han sido recibidas y las que no. En la
segunda fase se transmiten una o más tramas. En la tercera fase, la conexión se cierra y libera las
variables, los búferes y otros recursos utilizados para mantener la conexión.

Considere un ejemplo típico: una subred de WAN que consiste en enrutadores conectados por medio de
líneas telefónicas alquiladas de punto a punto. Cuando llega una trama a un enrutador, el hardware la
examina para verificar si está libre de errores, y después la pasa al software de la capa de enlace de datos
(que podría estar integrado en un chip de la tarjeta de interfaz de red). Dicho software comprueba si ésta
es la trama esperada y, de ser así, entrega el paquete contenido en el campo de carga útil al software de
enrutamiento. A continuación, este soft elige la línea de salida adecuada y reenvía el paquete al software
de la capa de enlace de datos, que luego lo transmite.

El código de enrutamiento con frecuencia requiere que el trabajo se haga bien, es decir, que haya
conexiones estables y ordenadas en cada una de las líneas punto a punto. No quiere que se le moleste
frecuentemente con paquetes que se perdieron en el camino. Es responsabilidad del protocolo de
enlace de datos hacer que las líneas de comunicación no estables parezcan perfectas o, cuando menos,
bastante buenas.

Entramado

A fin de proporcionar servicios a la capa de red, la de enlace de datos debe utilizar los servicios que
la capa física le proporciona. Lo que hace la capa física es aceptar un flujo de bits puros e intentar

7
entregarlo al destino. No se garantiza que este flujo de bits esté libre de errores. La cantidad de bits
recibidos puede ser menor, igual o mayor que la cantidad de bits transmitidos, y éstos pueden tener
diferentes valores. Es responsabilidad de la capa de enlace de datos detectar y, de ser necesario,
corregir los errores.

El método común es que la capa de enlace de datos divida el flujo de bits en tramas separadas y que
calcule la suma de verificación de cada trama.

Cuando una trama llega al destino, se recalcula la suma de verificación. Si la nueva suma de
verificación calculada es distinta de la contenida en la trama, la capa de enlace de datos sabe que
ha ocurrido un error y toma medidas para manejarlo.

La división en tramas del flujo de bits es más difícil de lo que parece a primera vista. Una manera
de lograr esta división en tramas es introducir intervalos de tiempo entre las tramas, de la misma
manera que los espacios entre las palabras en el texto común. Sin embargo, las redes pocas veces
ofrecen garantías sobre la temporización, por lo que es posible que estos intervalos sean eliminados
o que puedan introducirse otros intervalos durante la transmisión.

Puesto que es demasiado riesgoso depender de la temporización para marcar el inicio y el final de
cada trama, se han diseñado otros métodos. En esta sección veremos cuatro métodos:
1| Conteo de caracteres.
2| Banderas, con relleno de caracteres.
3| Banderas de inicio y fin, con relleno de bits.
4| Violaciones de codificación de la capa física.

8
El primer método de entramado, conteo de caracteres, se vale de un campo en el encabezado para |3|a
especificar el número de caracteres en la trama. Cuando la capa de enlace de datos del destino ve la
Cuenta de caracteres Un caracter
cuenta de caracteres, sabe cuántos caracteres siguen y, por lo tanto, dónde está el fin de la trama.
Esta técnica se muestra en la figura |3|a para cuatro tramas de 5, 5, 8 y 8 caracteres de longitud,
5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3
respectivamente.
Cuadro 1 Cuadro 2 Cuadro 3 Cuadro 4
5 caracteres 5 caracteres 8 caracteres 8 caracteres
El problema con este algoritmo es que la cuenta puede alterarse por un error de transmisión. Por
ejemplo, si la cuenta de caracteres de 5 en la segunda trama de la figura |3|b se vuelve un 7, el destino |3|b
perderá la sincronía y será incapaz de localizar el inicio de la siguiente trama. Incluso si el destino
sabe que la trama está mal porque la suma de verificación es incorrecta, no tiene forma de saber Error

dónde comienza la siguiente trama. Regresar una trama a la fuente solicitando una retransmisión
tampoco ayuda, ya que el destino no sabe cuántos caracteres tiene que saltar para llegar al inicio de 5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3

la retransmisión. Por esta razón, en la actualidad casi no se utiliza el método de conteo de caracteres. Cuadro 1 Cuadro 2
Equivocado Ahora un caracter cuenta

El segundo método de entramado, Banderas con relleno de caracteres, evita el problema de


Un flujo de caracteres. |3|a Sin errores. |3|b Con un error
tener que sincronizar nuevamente después de un error, haciendo que cada trama inicie y termine
con bytes especiales. En el pasado, los bytes de inicio y final eran diferentes, pero en los años |4|a
recientes la mayoría de los protocolos han utilizado el mismo byte, llamado bandera (o indicador),
como delimitador de inicio y final, que en la figura |4|a se muestra como FLAG. De esta manera, si el
receptor pierde la sincronía, sim plemente puede buscar la bandera para encontrar el final e inicio de
la trama actual. Dos banderas consecutivas señalan el final de una trama y el inicio de la siguiente.

Cuando se utiliza este método para transmitir datos binarios, como programas objeto o números de
punto flotante, surge un problema serio. Se puede dar el caso con mucha facilidad de que el patrón

9
de bits de la bandera aparezca en los datos (payload), lo que interferiría en el entramado. Una |4|b
forma de resolver este problema es hacer que la capa de enlace de datos del emisor inserte un byte
de escape especial (ESC) justo antes de cada bandera “accidental” en los datos.

La capa de enlace de datos del lado receptor quita el byte de escape antes de entregar los datos a la
capa de red. Esta técnica se llama relleno de caracteres. Por lo tanto, una bandera de entramado se
puede distinguir de uno en los datos por la ausencia o presencia de un byte de escape que la antecede.

Por supuesto que surge la pregunta de qué sucede si un byte de escape aparece en medio de los
datos. La respuesta es que también se rellena con un byte de escape. Por lo tanto, cualquier byte
de escape individual es parte de una secuencia de escape, mientras que uno doble indica que un
escape sencillo apareció de manera natural en los datos. En la figura |4|b se muestran algunos |4|a Una trama delimitada por banderas o |4|b Cuatro ejemplos de
ejemplos. En todos los casos, la secuencia de bytes que se entrega después de la eliminación de los secuencias de bytes antes y después del relleno de caracteres.
bytes de escape es exactamente la misma que la secuencia de bytes original.

El esquema de relleno de caracteres que se muestra en las figuras |4| es una ligera simplificación
del esquema empleado en el protocolo PPP que la mayoría de las computadoras utiliza para
comunicarse con el proveedor de servicios de Internet.

Una desventaja importante del uso de esta técnica de entramado es que está fuertemente atada los
caracteres de 8 bits. No todos los códigos utilizan caracteres de 8 bits. Por ejemplo, UNICODE utiliza
caracteres de 16 bits. A medida que se desarrollaron las redes, las desventajas de incorporar la
longitud del código de caracteres en el mecanismo de entramado se volvieron más obvias, por que
tuvo que desarrollarse una técnica nueva que permitiera caracteres de tamaño arbitrario.

10
La nueva técnica permite que las tramas de datos contengan un número arbitrario de bits y admite |5|a 011011111111111111110 010
códigos de caracteres con un número arbitrario de bits por carácter. Dicha técnica, banderas de inicio
|5|b 011011111011111011111010 010
y fin con relleno de bits, funciona de la siguiente manera: cada trama comienza y termina con un
patrón especial de bits, 011111 (que es de hecho una bandera). Cada vez que la capa de enlace de datos
Bits de Relleno
del emisor encuentra cinco unos consecutivos en los datos, automáticamente inserta un bit 0 en el flujo
de bits saliente. Este relleno de bits es análogo al relleno de caracteres, en el cual un byte de escape se |5|c 011011111111111111110 010
inserta en flujo de caracteres saliente antes de un byte igual a la bandera de entramado en los datos.
Relleno de bits. |5|a Los datos originales. |5|b Los datos, según
Cuando el receptor ve cinco bits 1 de entrada consecutivos, seguidos de un bit 0, automáticamente extrae aparecen en la línea. |5|c Los datos, como se guardan en la memoria
(es decir, borra) el bit 0 de relleno. Así como el relleno de caracteres es completamente transparente para del receptor tras eliminar el relleno
la capa de red en ambas computadoras, también lo es el relleno de bits. Si los datos de usuario contienen
el patrón indicador 01111110, éste se transmite como 011111010, pero se almacena en la memoria del
receptor como 01111110. En las figuras |5| se da un ejemplo de relleno de bits.

Con el relleno de bits, el límite entre las dos tramas puede ser reconocido sin ambigüedad mediante
el patrón de banderas. De esta manera, si el receptor pierde la pista de dónde está, todo lo que
tiene que hacer es explorar la entrada en busca de secuencias de banderas, pues sólo pueden
ocurrir en los límites de las tramas y nunca en los datos.

El último método de entramado, violaciones de codificación de la capa física, sólo se aplica a las
redes en las que la codificación en el medio físico contiene cierta redundancia. Por ejemplo, algunas
LANs codifican un bit de datos usando dos bits físicos. Normalmente, un bit 1 es un par alto-bajo, y
un bit 0 es un par bajo-alto. El esquema implica que cada bit de datos tiene una transición a medio
camino, lo que hace fácil para el receptor localizar los límites de los bits. Las combinaciones alto-
alto y bajo-bajo no se usan para datos, pero en algunos protocolos se utilizan para delimitar tramas.
11
Como nota final sobre el entramado, muchos protocolos de enlace de datos usan, por seguridad,
una combinación de cuenta de caracteres con uno de los otros métodos. Cuando llega una trama,
se usa el campo de cuenta para localizar el final de la trama. Sólo si el delimitador apropiado está
presente en esa posición y la suma de verificación es correcta, la trama se acepta como válida. De
otra manera, se explora el flujo de entrada en busca del siguiente delimitador.

Control de errores

Una vez resuelto el problema de marcar el inicio y el final de cada trama, llegamos al siguiente
problema: cómo asegurar que todas las tramas realmente se entreguen en el orden apropiado a la
capa de red del destino. Suponga que el emisor se dedicó a enviar tramas sin importarle si estaban
llegando de manera adecuada. Esto podría estar bien para un servicio no orientado a la conexión sin
confirmación de recepción, pero no será correcto para un servicio confiable orientado a la conexión.

La manera normal de asegurar la entrega confiable de datos es proporcionar retroalimentación al


emisor sobre lo que está ocurriendo en el otro lado de la línea. Por lo general, el protocolo exige
que el receptor regrese tramas de control especiales que contengan confirmaciones de recepciones
positivas o negativas de las tramas que llegan. Si el emisor recibe una confirmación de recepción
positiva de una trama, sabe que la trama llegó correctamente. Por otra parte, una confirmación de
recepción negativa significa que algo falló y que la trama debe transmitirse otra vez.

Una complicación adicional surge de la posibilidad de que los problemas de hardware causen la
desaparición de una trama completa (por ejemplo, por una ráfaga de ruido). En este caso, el receptor no

12
reaccionará en absoluto, ya que no tiene razón para reaccionar. Debe quedar claro que’ un protocolo en
el cual el emisor envía una trama y luego espera una confirmación de recepción, positiva o negativa, se
quedaría esperando eternamente si se pierde por completo una trama debido a una falla de hardware.

Esta posibilidad se maneja introduciendo temporizadores en la capa de enlace de datos. Cuando el


emisor envía una trama, por lo general también inicia un temporizador. Éste se ajusta de modo que
expire cuando haya transcurrido un intervalo suficiente para que la trama llegue a su destino, se
procese ahí y la confirmación de recepción se regrese al emisor. Por lo general, la trama se recibirá
de manera correcta y la confirmación de recepción llegará antes de que el temporizador expire, en
cuyo caso se cancelará.

Sin embargo, si la trama o la confirmación de recepción se pierden, el temporizador expirará,


alertando al emisor sobre un problema potencial. La solución obvia es simplemente transmitir
de nuevo la trama. Sin embargo, aunque las tramas pueden transmitirse muchas veces, existe el
peligro de que el receptor acepte la misma trama dos o más veces y que la pase a la capa de red más
de una vez. Para evitar que esto ocurra, generalmente es necesario asignar números de secuencia a
las tramas que salen, a fin de que el receptor pueda distinguir las retransmisiones de los originales.
El asunto de la administración de temporizadores y números de secuencia para asegurar que
cada trama llegue finalmente a la capa de red en el destino una sola vez, ni más ni menos, es una
parte importante de las tareas de la capa de enlace de datos. Posteriormente en este capítulo
estudiaremos la manera en que se lleva a cabo esta administración, observando una serie de
ejemplos de complejidad creciente.

13
Control de flujo

Otro tema de diseño importante que se presenta en la capa de enlace de datos (y también en las
capas superiores) es qué hacer con un emisor que quiere transmitir tramas de manera sistemática
y a mayor velocidad que aquella con que puede aceptarlos el receptor. Esta situación puede ocurrir
fácilmente cuando el emisor opera en una computadora rápida (o con baja carga) y el receptor
opera en una máquina lenta (o sobrecargada). El emisor envía las tramas a alta velocidad hasta
que satura por completo al receptor. Aunque la transmisión esté libre de errores, en cierto punto el
receptor simplemente no será capaz de manejar las tramas conforme lleguen y comenzará a perder
algunas. Es obvio que tiene que hacerse algo para evitar esta situación.

Por lo general se utilizan dos métodos. En el primero, el control de flujo basado en retroalimentación,
el receptor regresa información al emisor autorizándolo para enviar más datos o indicándole su estado.
En el segundo, el control de flujo basado en tasa, el protocolo tiene un mecanismo integrado que
limita la tasa a la que el emisor puede transmitir los datos, sin recurrir a retroalimentación por parte
del receptor. En este capítulo estudiaremos el método de control de flujo basado en retroalimentación
debido a que el método basado en tasa no se utiliza en la capa de enlace de datos.

Se conocen varios esquemas de control de flujo basados en retroalimentación, pero la mayoría se


fundamenta en el mismo principio. El protocolo contiene reglas bien definidas respecto al momento
en que un emisor puede enviar la siguiente trama. Con frecuencia estas reglas prohíben el envío
de tramas hasta que el receptor lo autorice, implícita o explícitamente. Por ejemplo, cuando se
establece una conexión, el receptor podría decir: “Puedes enviarme n tramas ahora, pero una vez
que lo hagas, no envíes nada más hasta que te indique que continúes”.

14
Detección y Corrección de Errores

Se han desarrollado dos estrategias fundamentales para el manejo de los errores que pueden
presentarse en la transmisión de datos. Una de ellas consiste en agregar información redundante en
cada bloque de datos enviado, para que el receptor pueda deducir cuál fue el caracter que se envió.
La otra estrategia consiste en incluir redundancia para que el receptor pueda detectar la existencia
de un error y solicitar una retransmisión. En el primer caso se utilizan códigos correctores de error
y en el segundo caso códigos detectores de errores. Los métodos más usados en la detección y
corrección de errores son: chequeo de redundancia cíclica, bits de paridad, código de Hamming y
los algoritmos de Checksum.

15
Protocolos de Transmisión Confiable

Protocolo simplex sin restricciones

Se supone una comunicación perfecta, sin errores, donde el receptor está siempre disponible y preparado
para recibir tramas con un espacio de buffer infinito, por lo que no debe efectuarse control de flujo. El
emisor está siempre preparado para transmitir cualquier cosa que reciba de la capa de red. En este caso el
único evento posible es la llegada de una trama.

Protocolo simplex de parada y espera

En un caso más real, puede suceder que el receptor no siempre está disponible para recibir, por tener
ocupado su buffer de entrada debido a que la capa de enlace no sea capaz de procesar los tramas con
suficiente rapidez o porque la capa de red del receptor no sea lo bastante rápida. En este caso, lo más
sencillo es que el emisor espere una confirmación después de enviar cada trama, de forma que sólo
después de recibir la confirmación envíe el siguiente. De esta manera se garantiza la no saturación del
receptor. Esto es lo que se conoce como un protocolo de parada y espera.

16
Protocolo simplex para un canal con ruido

Si el canal de comunicación no es perfecto, los tramas pueden alterarse debido al ruido de la


comunicación, o incluso perderse por completo. Gracias a la presencia del campo CRC el receptor podrá
detectar la llegada de un frame defectuoso, en cuyo caso pedirá retransmisión. La posibilidad de que
un frame se pierda por completo introduce una complicación adicional, ya que si esto le ocurre por
ejemplo a un ack el emisor pasado un tiempo razonable enviará el frame de nuevo pensando que no ha
llegado la primera vez, lo cual produciría un frame duplicado que el receptor pasaría a la capa de red,
situación inaceptable para cualquier protocolo. Para poder reconocer cuando un frame llega duplicado
lo más sencillo es numerarlo, en este caso, el emisor no enviará un frame hasta recibir el acuse de
recibo del anterior, por lo que bastaría con numerarlos con un sólo bit. Los protocolos donde el emisor
espera una confirmación o acuse de recibo para cada dato enviado se denominan protocolos Positive
Acknowledgement with Retransmission (PAR) o Automatic Repeat reQuest (ARQ). En este protocolo el
receptor no realiza la comprobación del campo CRC, para él todo frame que reciba de la capa física es
correcto y se supone que éstos pueden llegar o perderse, pero no llegar de forma parcial o alterados. Se
puede considerar que hay un nivel inferior que se ocupa de comprobar el CRC, y que descarta el frame
en caso de detectar cualquier error. De esta forma el efecto sería equivalente a la suposición simplista
de que los tramas o no llegan o llegan perfectamente.

17
Protocolos de Ventana Corrediza

Los siguientes tres procotolos son bidireccionales y pertenecen a una clase llamada protocolos
de ventana corrediza ó deslizante. Los tres difieren entre ellos en la eficiencia, complejidad y
requerimientos de buffer. Cada trama de salida contiene un número de secuencia, que va desde 0
hasta algún valor máximo, por lo general 2n -1.

La esencia de todos los protocolos de ventana corrediza es que, en cualquier instante, el emisor
mantiene un grupo de números de secuencia que corresponde a las tramas que tiene permitido enviar.
Se dice que estas tramas caen dentro de la ventana emisora. De manera semejante, el receptor
mantiene una ventana receptora correspondiente al grupo de tramas que tiene permitido aceptar.

Las ventanas del emisor y del receptor no necesariamente deben tener los mismos límites inferior
y posterior, ni siquiera el mismo tamaño. En algunos protocolos las ventanas son de tamaños fijos,
pero en otros pueden crecer y disminuir a medida que envían y reciben tramas.

Son requisitos indispensables que los paquetes se entreguen a la capa de red de destino en el mismo
orden en que se pasaron a la capa de enlace de datos en la máquina emisora y que las tramas se
entreguen en el orden en que fueron enviadas.

Los números de secuencia en la ventana del emisor representan tramas enviadas, o que pueden
ser enviadas, pero cuya recepción aún no ha sido confirmada. Cuando llega un paquete nuevo de
la capa de red, se le da el siguiente número secuencial mayor, y el extremo superior de la ventana

18
avanza en uno. Al llegar una confirmación de recepción, el extremo inferior avanza en uno. De esta 7 0 7 0 7 0 7 0
6 1 6 1 6 1 6 1
manera, la ventana mantiene continuamente una lista de tramas sin confirmación de recepción. |6| Emisor
5 2 5 2 5 2 5 2
4 3 4 3 4 3 4 3
Dado que las tramas que están en la ventana del emisor pueden perderse o dañarse en tránsito, el
emisor debe mantener todas estas tramas en su memoria para su posible retransmisión. Por lo tanto
7 0 7 0 7 0 7 0
si el tamaño de la ventana es n, el emisor necesita n buffers para contener las tramas sin confirmación 6 1 6 1 6 1 6 1
de recepción. Si la ventana llega a crecer a su tamaño máximo, la capa de enlace de datos emisora Receptor
5 2 5 2 5 2 5 2
deberá hacer que la capa de red se detenga hasta que se libere otro buffer. 4 3 4 3 4 3 4 3
|6|a |6|b |6|c |6|d
La ventana de la capa de enlace del receptor, corresponde a las tramas que puede aceptar. Todas las
tramas que caigan fuera de la ventana se descartarán sin comentarios. Ventana corrediza de tamaño 1, con número de secuencia de 3
bits. |6|a Al inicio. |6|b Tras la transmisión de la primera trama. |6|c
Cuando se recibe la trama cuyo número de secuencia es igual al extremo inferior de la ventana, se Tras la recepción de la primera trama. |6|d Tras recibir la primera
pasa a la capa de red, se genera una confirmación de recepción y se avanza la ventana en uno. confirmación de recepción.

La ventana del receptor siempre conserva el mismo tamaño. Una ventana de tamaño 1, significa que la
capa de enlace de datos solo acepta tramas en orden, pero con ventanas más grandes esto no es así.
La capa de Red, por el contraste, siempre recibe los datos en el orden correcto sin importar el tamaño
de la ventana de la capa de enlace de datos.

19
Protocolo de Ventana Deslizante de un bit

Este protocolo de ventana corrediza tiene un tamaño máximo de ventana de 1bit. Este también utiliza
parada y espera, ya que el emisor envía una trama y espera su confirmación de recepción antes de
transmitir la siguiente.

La capa de enlace de datos del emisor obtiene el paquete de su cada de Red, construye una trama
a partir de él y la envía. Al llegar esta (o cualquier) trama, la capa de enlace de datos receptora la
revisa para saber si es un duplicado. Si la trama es la esperada, se pasa a la capa de Red y la ventana
del receptor se corre hacia arriba.

El campo de confirmación de recepción contiene el número de la última trama recibida sin error. Si este
número concuerda con el de secuencia de la trama que está tratando de enviar el emisor, este sabe que
ha terminado con la trama almacenada en el buffer y que puede obtener el siguiente paquete de la capa
de Red. Si el número de secuencia no concuerda, debe continuar intentando enviar la misma trama. Por
cada trama que envía recibe una.

Protocolo de ventana deslizante con retroceso n

Cuando se utiliza un protocolo de ventana deslizante de más de un bit el emisor no actúa de forma
sincronizada con el receptor: cuando el receptor detecta una trama defectuosa hay varias tramas
posteriores ya en camino, que llegarán de todas formas a él, aún cuando reporte el problema
inmediatamente.

20
Existen dos posibles estrategias a seguir en este caso, la primera es que el receptor ignore los tramas |7|a
(posteriores) recibidos a partir del erróneo (inclusive) y solicite al emisor la retransmisión de todas
las tramas siguientes. Esta técnica se denomina retroceso n (figura |7|a) y corresponde a una ventana
deslizante de tamaño uno en el receptor. En este caso, el receptor se asegura que los tramas se
procesarán en secuencia, por lo que no tiene que reservar espacio en el buffer para más de un trama.
De todas formas, el emisor deberá almacenar en su buffer todos los tramas que se encuentren dentro
de la ventana (es decir, todos los tramas en tránsito), ya que en cualquier momento el receptor puede
solicitar la retransmisión de alguno de ellos.

Protocolo de Ventana Deslizante con repetición selectiva |7|b

La segunda opción para solucionar el problema de las retransmisiones consiste en que el receptor
descarte la trama errónea y pida sólo la retransmisión de éste, aceptando las tramas posteriores que
hayan llegado correctamente. Esto se conoce como repetición selectiva (figura |7|b) y corresponde a
una ventana deslizante mayor que 1 en el receptor (normalmente, es de igual tamaño que la ventana
del emisor).

En otras palabras, la repetición selectiva consiste en aprovechar aquellas tramas correctas que lleguen Canalización y recuperación de un error. |7|a Efecto de un error cuando
después del erróneo, y pedir al emisor que retransmita los que presentaron problemas. el tamaño de la ventana es de 1. |7|b Efecto cuando el tamaño de la
ventana del receptor es grande.
La desventaja que presenta el método es que ahora el receptor ha de disponer de espacio en el buffer
para almacenar todos las tramas de la ventana, ya que en caso de pedirse retransmisión tendrá que
intercalar en su sitio el trama retransmitido antes de pasar los siguientes a la capa de red, esto porque

21
la capa de red debe recibir los paquetes estrictamente en orden. Entonces, se puede decir que su
funcionamiento corresponde al de una ventana deslizante de igual tamaño en el emisor que en el
receptor, lo que esto supone tener un buffer lo suficientemente grande para almacenar un número de
tramas igual al tamaño de ventana que se esté utilizando.

La posibilidad de una recepción no secuencial de tramas plantea nuevos problemas. Por ejemplo,
suponiendo que el emisor envía las tramas 0 a 6, los que son recibidos correctamente. Entonces el
receptor realiza las siguientes acciones: los transmite a la capa de red, libera los buffers correspondientes
avanza la ventana para poder recibir siete tramas más, cuyos números de secuencia podrán ser 7, 0, 1,
2, 3, 4, 5 y envía un ack para las tramas 0 a 6 recibidas. Si el ack no llega al emisor, éste supondrá que
ninguno de ellos ha llegado, por lo que reenviará las tramas 0 a 6 de nuevo. De éstas, las tramas 0 a 5 se
encuentran dentro de la ventana del receptor. En un procesamiento secuencial, el receptor no aceptaría
estas tramas si no recibe antes el trama 7 pendiente, pero con retransmisión selectiva se aceptarían y
se pediría retransmisión del 7. Una vez recibido, éste se pasaría a la capa de red seguido de los tramas
0 a 5 antes recibidos, que serían duplicados de los anteriores. En este caso el receptor pasará tramas
duplicadas al nivel de red.

La solución a este conflicto está en evitar que un mismo número de secuencia pueda aparecer en
dos ventanas consecutivas. Por ejemplo, si el tamaño de ventana es de 7 el número de secuencia
podría ser de 4 bits y la ventana del receptor sería 0-6, 713, 14-4, etc. El valor máximo de la ventana
para un protocolo de repetición selectiva en el caso general sería (MAX_SEQ+1)/2.

Aunque el número de secuencia se ha duplicado respecto al caso anterior, el número de tramas que
hay que mantener en el buffer no necesita ser superior al tamaño de ventana, ya que este será el
número máximo de tramas que habrá que manejar en cualquier circunstancia.
22
La técnica de repetición selectiva da lugar a protocolos más complejos que la de retroceso n, y requiere
mayor espacio de buffers en el receptor. Sin embargo, cuando las líneas de transmisión tienen una tasa
de errores elevada da un mejor rendimiento, ya que permite aprovechar todas las tramas correctamente
transmitidas.

23
Desempeño 2

| Estas preguntas te ayudaran a autoevaluarte, a pensar y repensar lo


leído en la clase. Investiga y busca información para expresar tu opinión
con fundamentos validos. La opinión crítica es muy importante para la
comprensión.

1. Si deseo enviar voz por una red ¿Me conviene que haya control de
errores? ¿Qué ocasionaría el controlar trama a trama?

2. Si estoy enviando un archivo de imagen a través de internet ¿Me conviene


que haya control de errores? ¿Por qué?
Eso será todo por hoy. Revisen nuevamente la clase y ante cualquier
duda que surja, se comunican con el tutor. Nos veremos en la clase
N° 3!!

¡Nos vemos!
Créditos

Imágenes

Encabezado: Foto de Daniel Dino-Slofer en Pixabay


https://pixabay.com/photos/fiber-cable-wire-connection-4814456/

Página 9:
https://www.computing.dcu.ie/~humphrys/Notes/Networks/data.framing.html

Página 10:
https://www.computing.dcu.ie/~humphrys/Notes/Networks/data.framing.html

Página 21:
Imagen 1 y 2:
http://www.ing.unp.edu.ar/asignaturas/rytd/Web_ApuntesIngGallardo/archivos_
redesytransmision/frmprincipal/enlacedatos/enlacedatos.htm

Tipografía Si detectás un error del tipo que fuere (falta un punto, un acento, una palabra
mal escrita, un error en código, etc.), por favor comunicate con nosotros a
Para este diseño se utilizó la tipografía Source Sans Pro diseñada por Paul D. Hunt. correcciones@issd.edu.ar e indicanos por cada error que detectes la página
Extraida de Google Fonts. y el párrafo. Muchas gracias por tu aporte.

También podría gustarte