viernes, 20 de febrero de 2015

CAPA DE ENLACE

Diseño de la Capa de Enlace: la capa de enlace tiene como objetivo proporcionar un medio de comunicación que parezca libre de errores. Para ello, se implementan diversos algoritmos de detección y corrección de errores. Lo anterior se debe a que los dispositivos que colocan los bits en el medio, así como el medio mismo ocasionalmente inducen errores. Por otra parte, también intervienen los factores externos. La capa de enlace de datos tiene que desempeñar varias funciones especificas:
  1. Proporcionar una matriz de servicio bien definida con la capa de red
  2. Manejar los errores de transmisión
  3. Regular el flujo de datos para que receptores lentos no sean saturados por emisores rápidos
Para cumplir con estas metas, la capa de enlace toma de la capa de red los paquetes y los encapsula en tramas para transmitirlos. Cada trama contiene un encabezado, un campo de carga útil para almacenar el paquete y un terminador o final
Servicios Proporcionados a la Capa de Red: La función de la capa de enlace 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 maquina 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 maquina de destino, para que puedan ser entregados a su capa de red. La capa de enlace puede diseñarse para ofrecer varios servicios....

Servicio no Orientado a la Conexión sin Confirmación de Recepción: este servicio consiste en hacer que la maquina de origen envíe tramas independientes a la máquina de destino sin pedir que ésta confirme la recepción. No se establece una conexión de antemano ni se libera después. Si se pierde una trama debido al ruido en la línea, en la capa de enlace no se realiza ningún intento por detectar la pérdida ni por preocupar la trama. 
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 han llegado en un tiempo especificado puede enviarse nuevamente. 
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 garantiza que cada trama enviada llegará a su destino. Este servicio proporciona a los procesos de la capa de red el equivalente de un flujo de bits confiable.
Cuando se utiliza este tipo de servicio las transferencias tienen tres fases distintas:
  1. La conexión se establece haciendo que ambos lados inicien las variables y los contadores necesarios para seguir la pista de las tramas que han sido recibidas y las que no.
  2. Se transmiten las tramas.
  3. La conexión se cierra y libera las variables que se utilizan para mantener la conexión y el seguimiento de las tramas.
Entramado: a fin de proporcionar servicios a la capa de red, la de enlace de datos debe utilizar los servicios de la capa física. Lo que hace la capa física es aceptar un flujo de bits puros e intenta entregarlo al destino. No se garantiza que ese flujo de bits este libre de errores. La cantidad de bits recibidos puede ser menor, igual o mayor a la cantidad de bits transmitidos, y estos 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 a su destino, se recalcula la suma de verificación. Si la suma de verificación calculada es distinta de la contenida en la trama, la capa de enlace sabe que ha ocurrido un error y toma medidas para manejarlo.
Una manera de lograr esta división en tramas es introducir intervalos de tiempo entre las tramas. Sin embargo, las redes pocas veces ofrecen garantía sobre este método, por lo que es posible que estos intervalos sean eliminados o que puedan introducirse otros intervalos durante la transmisión. Otros métodos de división de tramas son:
  1. Conteo de Caracteres: este método se vale de un campo en el encabezado para especificar el número de caracteres en la trama. Cuando la capa de enlace del destino ve la cuenta de caracteres sabe cuantos caracteres siguen y donde esta el fin de esa trama. 
  2. Banderas con Relleno de Caracteres: este método evita el problema de tener que sincronizar nuevamente después de un error, haciendo que cada trama inicie y termine con bits especiales. La mayoría de los protocolos utilizan un byte llamado bandera o indicador, como delimitador del inicio y el final de una trama. De esta manera si el receptor pierde la sincronía, simplemente busca la bandera para encontrar el final o inicio de la trama actual. Cuando se utiliza este método para transmitir datos binarios, surge un problema: se puede dar el caso con mucha facilidad de que el patrón de bits de la bandera aparezca en los datos, lo que interferirá con el entramado. Una forma de resolver este problema es hacer que la capa de enlace del emisor inserte un byte de escape especial (ESC) justo antes de cada bandera. La capa de enlace del receptor quita el byte de escape antes de entregar los datos a la capa de red. Esta técnica se conoce como relleno de caracteres. 
  3. Banderas con Relleno de 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 mas obvias por lo que tuvo que desarrollarse una nueva técnica. La nueva técnica permite que las tramas de datos contengan un número arbitrario de bits y admite código de caracteres con un número arbitrario de bits por carácter. Cada trama inicia y termina con un patrón especial de bits 0111110. Cada vez que la capa de enlace del emisor encuentra 5 unos consecutivos en los datos, automáticamente inserta un bit 0 en el flujo de bits saliente. Esto se conoce como relleno de bits el cual es análogo al relleno de caracteres. Cuando el receptor ve 5 bits 1 de entrada consecutivos, seguidos de un bit 0 automáticamente extrae el bit 0 de relleno.

Control de Errores: la manera normal de asegurar la entrega confiable de datos es proporcionar retroalimentación al emisor sobre lo que esta ocurriendo del otro lado de la línea. Por lo general el protocolo exige que el receptor regrese tramas de control especiales que contengan confirmaciones de recepción 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.
Un protocolo en el cual el emisor envía una trama y luego espera una confirmación de recepción, se quedara esperando eternamente si se pierde una trama completa debido a una falla de hardware.
Control de Flujo: aunque la transmisión esté libre de errores, en cierto punto el receptor no será capaz de manejar las tramas conforme lleguen y comenzara a perder algunas. Para evitar esta situación se utilizan generalmente dos métodos:
  1. Control de flujo basado en retroalimentación: El receptor regresa información al emisor autorizándolo por enviar más datos o indicándole su estado.
  2. 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.

No hay comentarios:

Publicar un comentario