sábado, 9 de noviembre de 2013

CAPA DE ENLACE DE DATOS

                   CAPA DE ENLACE DE DATOS

La Capa de Enlace de Datos es la responsable del intercambio de datos entre un host cualquiera y la red a la que está conectado, permitiendo la correcta comunicación y trabajo conjunto entre las capas superiores (Red, Transporte y Aplicación) y el medio físico de transporte de datos. Su principal objetivo es proporcionar una comunicación eficiente, libre de errores, entre dos máquinas adyacentes, pertenecientes a la misma red/subred. Para ello se encarga de la notificación de errores, la topología de la red y el control de flujo en la transmisión de tramas.
Cuando la conexión entre dos host es punto a punto, como en el caso de que ambos host pertenezcan a la misma red/subred, la Capa de Enlace de Datos se encarga de que los datos se envíen con seguridad a través del medio físico (Capa Física) y sin errores de transmisión. En otro tipo de conexiones no puede realizar este cometido, siendo entonces las capas superiores las encargadas del mismo.
Por este motivo podemos afirmar que la Capa de Enlace de Datos es la encargada de la transmisión y direccionamiento de datos entre host situados en la misma red/subred, mientras que la capa de Red (Internet) es la encargada de la transmisión y direccionamiento de datos entre host situados en redes diferentes.
La Capa de Enlace de Datos proporciona sus servicios a la Capa de Red, suministrando un tránsito de datos confiable a través de un enlace físico. Al hacerlo, la capa de enlace de datos se ocupa del direccionamiento físico (comparado con el lógico), la topología de red, el acceso a la red, la notificación de errores, formación y entrega ordenada de tramas y control de flujo. Por lo tanto, su principal misión es convertir el medio de transmisión en un medio libre de errores de cualquier tipo.

DISEÑO DE LA CAPA DE ENLACE DE DATOS
                  
La capa de Enlace de Datos tiene que desempeñar varias funciones específicas:
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 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 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 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 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. Esta clase de servicio es apropiado cuando la tasa de errores es muy baja. La mayoría de las LAN’s utilizan este tipo de servicio en la capa de enlace de datos.
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. Este servicio es útil en canales inestables, como los de los sistemas inalámbricos.
Proporcionar confirmaciones de recepción en la capa de enlace de datos es una optimización, pero no un requisito. La capa de red siempre puede envía un paquete y esperar que se confirme su recepción.

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 esté 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:

 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 cuántos caracteres siguen y donde está el fin de esa trama. El problema con este método es que la cuenta puede alterarse por un error de transmisión; en la actualidad no se utiliza este método.
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. Una desventaja importante del uso de esta técnica de entramado es que está fuertemente atada a los caracteres de 8 bits y no todos los códigos utilizan los 8 bits. P.E.: UNICODE no utiliza 8 bits
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 más 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 está 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 positiva o negativa 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.
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. Esta posibilidad se maneja introduciendo temporizadores en la capa de enlace. 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. Si la trama o la confirmación de recepción se pierden el temporizador expirará, alertando al emisor sobre el problema. Aunque las tramas pueden transmitirse muchas veces existe el peligro de que el receptor acepte la trama dos o más veces y que pase a la capa de red más de una vez.
Control de flujo
Otro tema del diseño es qué hacer con un emisor que quiere transmitir tramas de manera sistemática y a mayor velocidad que aquella con la que puede aceptarlos el receptor. Esta situación puede ocurrir cuando el emisor opera una computadora rápida y el receptor una lenta. El emisor envía tramas a alta velocidad hasta que satura por completo al receptor. 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.

DETECCION Y CONTROL DE ERRORES

Como resultado de los procesos físicos que lo generan, los errores en algunos medios tienden a aparecer en ráfagas y no de manera individual.

CÓDIGOS DE CORRECCIÓN DE ERRORES

Los diseñadores de redes han desarrollado dos estrategias principales para manejar los errores. Una es incluir suficiente información redundante en cada bloque de datos transmitido para que el receptor pueda deducir lo que debió ser el carácter transmitido a este se le conoce como código de corrección de errores. La otra estrategia es incluir suficiente redundancia para permitir que el receptor sepa que ha ocurrido un error y entonces solicita una retransmisión a este se le conoce como códigos de detección de errores.
En los canales altamente confiables como la fibra, es más económico utilizar un código de detección errores y simplemente retransmitir los bloques defectuosos que surgen ocasionalmente. En los canales que causan muchos errores, como los enlaces inalámbricos es mejor agregar la redundancia suficiente a cada bloque para que el receptor pueda describir cual era el bloque original transmitido.
Como ejemplo sencillo de código de detección de errores, es el que agrega un bit de paridad a los datos. Este bit se escoge de modo que la cantidad de bits 1 en la palabra código sea par o impar dependiendo del código.

CÓDIGO DE DETECCIÓN DE ERRORES

Los códigos de corrección de errores se utilizan de manera amplia en los enlaces inalámbricos, que son más ruidosos y propensos a errores que el alambre de cobre o la fibra óptica, en estos casos la tasa de error es mucho más baja, por lo que la detección de errores y la retransmisión por lo general son más eficientes ahí para manejar un error ocasional.

Código Poli nominal

Este tipo de códigos se basan en el tratamiento de cadenas de bits como representaciones de polinomios con coeficiente de cero y uno solamente.
Cuando se emplea este método, el receptor y el emisor deben acordar por adelantado un polinomio generador. Tanto lo bits de orden mayor y menor del generador deben ser 1.

 PROTOCOLOS DE ENLACE DE DATOS

CONTROL DE ENLACE DE DATOS DE ALTO NIVEL (HDLC HIGH-LEVEL DATA LINK CONTROL)
HDLC es un protocolo del nivel de enlace (de acuerdo al modelo de referencia OSI), orientado a la conexión. Especificado por la ISO, basado en el SDLC de IBM.

Sus características básicas son:

û  Orientado a bit.
û  Control de flujo.
û  Control de errores
û  Protocolo de ventanas deslizantes.
HDLC define tres tipos de estaciones:
û  Estación primaria: Controla las operaciones de enlace; Los marcos enviados se conocen como comandos u órdenes; Mantiene separado el enlace lógico de cada estación secundaria.
û  Estación secundaria: Controlada por la estación primaria; Los marcos enviados se conocen como respuestas.
û  Estación combinada: Puede emitir tanto comandos como respuestas.
El protocolo permite configurar el enlace de dos formas:
Balanceado
û  Dos estaciones combinadas.
û  Soporta full-duplex y half-duplex.
No balanceado
û  Una estación primaria y una o más estaciones secundarias.
û  Soporta full-duplex y half-duplex.
Formato de trama HDLC
û  FLAG: Un patrón de 8 bits 01111110 que indican el comienzo y el fin de la trama HDLC.
û  ADDRESS: Es relevante únicamente para configuración No Balanceada. Posee la dirección de una estación secundaria, ya sea que ésta reciba la transmisión o emita una respuesta.
û  CONTROL: Éste campo varía de acuerdo a la especificación de los datos transportados. Existen tres categorías de HDLC:
§  Información (I-frame) – Lleva datos.
§  Supervisión (S-frame) – Transporta comandos y respuestas.
§  Innumerados (U-frame) – Transporta secuencias de comandos adicionales.
û  FCS: Utiliza para detección de errores CRC (Cyclic Redundancy Check).
LA CAPA DE ENLACE EN INTERNET
Internet está formada por maquinas individuales y la infraestructura de comunicación que las conecta. Dentro de un solo edificio las LAN’s se usan ampliamente para la interconexión, pero la mayor parte de la infraestructura de área amplia esta construida a partir de líneas alquiladas punto a punto.
En la práctica, la comunicación punto a punto se utiliza principalmente en dos situaciones:
1.    Miles de organizaciones tienen una o mas LAN’s, cada una con cierta cantidad de hosts junto con un ruteador o puente. Por lo general todas las conexiones al mundo exterior pasan a través de uno o dos ruteadores que tienen líneas alquiladas punto a punto a ruteadores distantes. Son estos ruteadores y estas líneas arrendadas las que forman la base sobre la cual esta construido Internet.
2.    Las líneas punto a punto desempeñan un papel principal en Internet debido a los millones de personas que tienen conexiones domésticas a Internet a través de módems y líneas de acceso telefónico.
PPP - Protocolo Punto a Punto
Internet necesita de un protocolo punto a punto para diversos propósitos. Este protocolo se define en el RFC 1661. PPP realiza una detección de errores, soporta múltiples protocolos, permite la negación de direcciones IP en el momento de la conexión, permite la autenticación, entre otras funciones. PPP proporciona tres características:
1.    Un método de entramado que delinea sin ambigüedades el final de una trama y el inicio de otra. El formato de trama también maneja la detección de errores.
2.    Un protocolo de control de enlace para activar líneas, probarlas, negociar opciones y desactivarlas ordenadamente cuando ya no son necesarias. Este protocolo se conoce como LCP (Protocolo de Control de Enlace). Admite circuitos síncronos y asíncronos y codificaciones orientadas a bits y a caracteres.
3.    Un mecanismo para negociar opciones de capa de red con independencia del protocolo de red utilizado.
La diferencia principal entre PPP y HDLC es que PPP esta orientado a caracteres y no a bits. PPP usa relleno de bytes en las líneas de acceso telefónico con módem, por lo que todas las tramas tienen un número entero de bytes. PPP no solo puede mandar tramas a través de líneas de acceso telefónico, sino que también puede enviar a través de líneas HDLC auténticas orientadas a bits.
Todas las tramas PPP comienzan con la Bandera estándar de HDLC que se rellena con bytes si ocurre dentro del campo de carga útil. Luego esta el campo de Dirección que siempre se establece al valor binario 11111111 para indicar que todas las estaciones deben aceptar trama. Después viene el campo de Control cuyo valor predeterminado es 00000011. Este valor indica una trama no numerada, es decir, PPP no proporciona de manera predeterminada una transmisión confiable usando números de secuencia y confirmaciones de recepción. En entornos ruidosos, como los de las redes inalámbricas, se puede emplear el modo numerado para una transmisión confiable.
El campo de Protocolo indica la clase de paquete que esta en el campo de Carga útil el tamaño predeterminado de este campo es de 2 bytes. El campo de Carga útil es de longitud variable, hasta algún máximo negociado, aunque la longitud máxima predeterminada es de 1500 bytes. Posteriormente se encuentra el campo de Suma de verificación que normalmente es de una longitud de 2 bytes aunque puede llegar a utilizar 4 bytes.
PPP es un mecanismo de entramado multiprotocolo adecuado para utilizarse a través de módems, líneas seriales de bits y otras capas físicas. Soporta detección de errores, negociación de opciones, compresión de encabezados y, opcionalmente, transmisión de confiable con un formato de tramas similar al HDLC.

No hay comentarios:

Publicar un comentario