Site hosted by Angelfire.com: Build your free website today!

Control del flujo

Es una técnica para que el emisor no sobrecargue al receptor al enviarle más datos de los que pueda procesar . El receptor tiene un buffer de una cierta capacidad para ir guardando los datos recibidos y tras procesarlos , enviarlos a capas superiores . Vamos a suponer que todas las tramas recibidas llegan con un poco de retardo pero sin errores y sin adelantarse unas a otras .

Control de flujo mediante parada y espera

Consiste en que el emisor envía una trama y al ser recibida por el receptor , éste ( el receptor ) confirma al emisor ( enviándole un mensaje de confirmación ) la recepción de la trama . Este mensaje recibido por el emisor es el que le indica que puede enviar otra trama al receptor . De esta forma , cuando el receptor esté colapsado ( el buffer a punto de llenarse ) , no tiene más que dejar de confirmar una trama y entonces el emisor esperará hasta que el receptor decida enviarle el mensaje de confirmación ( una vez que tenga espacio en el buffer ) . Este sistema es el más eficaz para que no haya errores y es el más utilizado cuando se permiten tramas muy grandes , pero es normal que el emisor parta las tramas en más pequeñas para evitar que al ser una trama de larga duración , es más probable que se produzca algún error en la transmisión . También , en LAN's , no se suele permitir que un emisor acapare la línea durante mucho tiempo ( para poder transmitir una trama grande ) . Otro problema adicional es que se infrautiliza la línea al estar parada mientras los mensajes del receptor llegan al emisor .

Control del flujo mediante ventana deslizante

El problema de que sólo hay una trama cada vez en tránsito por la red se soluciona con este sistema de ventanas deslizantes . En este sistema , el receptor y el emisor se ponen de acuerdo en el número de tramas que puede guardar el receptor sin procesar ( depende del tamaño del buffer ) . También se ponen de acuerdo en el número de bits a utilizar para numerar cada trama ( al menos hay que tener un número de bits suficientes para distinguir cada una de las tramas que quepan en el buffer del receptor ) , Por ejemplo , si en el buffer del receptor caben 7 tramas , habrá que utilizar una numeración con 3 bits ( 23 = 8 > 7 ) . El emisor transmite tramas por orden ( cada trama va numerada módulo 2número de bits ) hasta un máximo de el número máximo de tramas que quepan en el buffer del receptor ( en el ejemplo , 7 ) . El receptor irá procesando las tramas que le lleguen y confirmando que admite tramas a partir de una dada ( hasta un máximo de 7 en el ejemplo ) . Por ejemplo , si ha procesado hasta la trama 5 , confirmará el número 6 ( es decir , que puede procesar las tramas 6 , 7 , 0 , 1 , 2 , 3 y 4 ) . Al recibir el emisor la confirmación de la trama 6 , emitirá todas las que no haya transmitido desde la 6 hasta la 4 ( 6 , 7 , 0 , 1 , 2 , 3 y 4 ) . Por ejemplo , se ya había enviado la 6 , 7 , 0 y 1 , sabe que puede enviar la 2 , 3 y 4 . Existe la posibilidad de indicarle al emisor la confirmación de tramas recibidas y prohibirle el envío de más tramas ( con el mensaje de Receptor No Preparado ) . Cuando la dos estaciones son emisoras y receptoras , se pueden utilizar dos ventanas por estación , una para el envío y otra para la recepción . Se puede utilizar la misma trama para enviar datos y confirmaciones , mejorando así la utilización del canal . Este sistema de transmisión es mucho más eficiente que el de parada y espera , ya que pueden haber más de una trama a la vez en las líneas de transmisión ( en el de parada y espera sólo puede haber una trama a la vez ) .

Detección de errores

Cuanto mayor es la trama que se transmite , mayor es la probabilidad de que contenga algún error . Para detectar errores , se añade un código en función de los bits de la trama de forma que este código señale si se ha cambiado algún bit en el camino . Este código debe de ser conocido e interpretado tanto por el emisor como por el receptor .

Comprobación de paridad

Se añade un bit de paridad al bloque de datos ( por ejemplo , si hay un número par de bits 1 , se le añade un bit 0 de paridad y si son impares , se le añade un bit 1 de paridad ) . Pero puede ocurrir que el propio bit de paridad sea cambiado por el ruido o incluso que más de un bit de datos sea cambiado , con lo que el sistema de detección fallará .

Comprobación de redundancia cíclica ( CRC )

Dado un bloque de n bits a transmitir , el emisor le sumará los k bits necesarios para que n+k sea divisible ( resto 0 ) por algún número conocido tanto por el emisor como por el receptor . Este proceso se puede hacer bien por software o bien por un circuito hardware ( más rápido ) .

Control de errores

Se trata en este caso de detectar y corregir errores aparecidos en las transmisiones . Puede haber dos tipos de errores :

Tramas perdidas : cuando una trama enviada no llega a su destino . Tramas dañadas : cuando llega una trama con algunos bits erróneos .

Hay varias técnicas para corregir estos errores :

Detección de errores : discutida antes . Confirmaciones positivas : el receptor devuelve una confirmación de cada trama recibida correctamente . Retransmisión después de la expiración de un intervalo de tiempo : cuando ha pasado un cierto tiempo , si el emisor no recibe confirmación del receptor , reenvía otra vez la trama . Confirmación negativa y retransmisión : el receptor sólo confirma las tramas recibidas erróneamente , y el emisor las reenvía .

Todos estos métodos se llaman ARQ ( solicitud de repetición automática ) . Entre los más utilizados destacan :

ARQ con parada-y-espera

Se basa en la técnica de control de flujo de parada-y-espera . Consiste en que el emisor transmite una trama y hasta que no recibe confirmación del receptor , no envía otra . Puede ocurrir que : La trama no llegue al receptor , en cuyo caso , como el emisor guarda una copia de la trama y además tiene un reloj , cuando expira un cierto plazo de tiempo sin recibir confirmación del receptor , reenvía otra vez la trama . La trama llegue al receptor deteriorada , en cuyo caso no es confirmada como buena por el receptor . Pero puede ocurrir que el receptor confirme una trama buena pero la confirmación llegue al emisor con error , entonces , el emisor enviaría otra vez la trama . Para solucionar esto , las tramas se etiquetan desde 0 en adelante y las confirmaciones igual .

Es una técnica sencilla y barata pero poco eficiente .

ARQ con adelante-atrás-N

Se basa en la técnica de control de flujo con ventanas deslizantes . Cuando no hay errores , la técnica es similar a las ventanas deslizantes , pero cuando la estación destino encuentra una trama errónea , devuelve una confirmación negativa y rechaza todas las tramas que le lleguen hasta que reciba otra vez la trama antes rechazada , pero en buenas condiciones . Al recibir la estación fuente una confirmación negativa de una trama , sabe que tiene que volver a transmitir esa trama y todas las siguientes . Si el receptor recibe la trama i y luego la i+2 , sabe que se ha perdido la i+1 , por lo que envía al emisor una confirmación negativa de la i+1 . La estación emisora mantiene un temporizador para el caso de que no reciba confirmación en un largo periodo de tiempo o la confirmación llegue errónea , y así poder retransmitir otra vez las tramas .

ARQ con rechazo selectivo

Con este método , las únicas tramas que se retransmiten son las rechazadas por el receptor o aquellas cuyo temporizador expira sin confirmación . Este método es más eficiente que los anteriores . Para que esto se pueda realizar , el receptor debe tener un buffer para guardar las tramas recibidas tras el rechazo de una dada , hasta recibir de nuevo la trama rechazada y debe de ser capaz de colocarla en su lugar correcto ( ya que deben de estar ordenadas ) . Además , el emisor debe de ser capaz de reenviar tramas fuera de orden . Estos requerimientos adicionales hacen que este método sea menos utilizado que el de adelante-atrás-N .