PROTOCOLOS+DE+CONTROL+DE+ENLACE

Protocolos de Control de Enlace
==media type="youtube" key="0lcx6Yrh1-I" width="425" height="350" align="center" ==

Según nos acercamos al medio físico, la diversidad de los mismos provoca que existan varios protocolos a nivel de enlace de datos para adaptarse a las peculiaridades de cada medio físico. Dos protocolos de este nivel utilizados ampliamente en Internet son SLIP (Serial Line Internet Protocol) y PPP (Point to Point Protocol). Si bien el protocolo SLIP está específicamente diseñado para el transporte de tráfico TCP/IP, la tendencia actual es hacia el uso cada vez mayor del protocolo PPP, ya que también es apto para líneas telefónicas conmutadas, siempre que nuestro proveedor de Internet disponga de este protocolo para atender nuestra llamada. Al utilizar SLIP, es necesario conocer tanto nuestra dirección IP como la de nuestro proveedor, lo que puede causarnos problemas en el caso de que este asigne dinámicamente las direcciones (algo muy común actualmente). Igualmente, existe la posibilidad de tener que configurar algunos parámetros como pueden ser la máxima unidad de transmisión (MTU), máxima unidad de recepción (MRU), el uso de cabeceras de compresión, etc. El PPP fue desarrollado por el IETF (Internet Engineering Task Force) en 1993 para mejorar estas y algunas otras deficiencias, y crear un estándar internacional, por lo cual en este trabajo desarrollaremos principalmente el protocolo PPP, luego de lo que concluiremos con una breve comparación con su par (SLIP).

FUNCIONES Y SERVICIOS
El protocolo PPP proporciona un método estándar para transportar datagramas multiprotocolo sobre enlaces simples punto a punto entre dos "pares" (a partir de aquí, y hasta el final de este trabajo, utilizaremos el término "par" para referirnos a cada una de las máquinas en los dos extremos del enlace -en inglés es peer-). Estos enlaces proveen operación bidireccional full dúplex y se asume que los paquetes serán entregados en orden. Tiene tres componentes: 1. Un mecanismo de enmarcado para encapsular datagramas multiprotocolo y manejar la detección de errores. 2. Un protocolo de control de enlace (LCP, Link Control Protocol) para establecer, configurar y probar la conexión de datos. 3. Una familia de protocolos de control de red (NCPs, Network Control Protocols) para establecer y configurar los distintos protocolos de nivel de red.

Funcionamiento general
Para dar un panorama inicial del funcionamiento de este protocolo en el caso comentado, en que un usuario de una PC quiera conectarse temporalmente a Internet, describiremos brevemente los pasos a seguir: En primera instancia, la PC llama al router del ISP (Internet Service Provider, proveedor del servicio de Internet), a través de un módem conectado a la línea telefónica. Una vez que el módem del router ha contestado el teléfono y se ha establecido una conexión física, la PC manda al router una serie de paquetes LCP en el campo de datos de uno o más marcos PPP (esto será explicado con mayor detalle más adelante). Estos paquetes y sus respuestas seleccionan los parámetros PPP por usar. Una vez que se han acordado estos parámetros se envían una serie de paquetes NCP para configurar la capa de red. Típicamente, la PC quiere ejecutar una pila de protocolos TCP/IP, por lo que necesita una dirección IP. No hay suficientes direcciones IP para todos, por lo que normalmente cada ISP tiene un bloque de ellas y asigna dinámicamente una a cada PC que se acaba de conectar para que la use durante su sesión. Se utiliza el NCP para asignar la dirección de IP. En este momento la PC ya es un host de Internet y puede enviar y recibir paquetes IP. Cuando el usuario ha terminado se usa NCP para destruir la conexión de la capa de red y liberar la dirección IP. Luego se usa LCP para cancelar la conexión de la capa de enlace de datos. Finalmente la computadora indica al módem que cuelgue el teléfono, liberando la conexión de la capa física. PPP puede utilizarse no solo a través de líneas telefónicas de discado, sino que también pueden emplearse a través de SONET o de líneas HDLC orientadas a bits.

CONFIGURACIÓN BÁSICA
Los enlaces PPP son fáciles de configurar. El estándar por defecto maneja todas las configuraciones simples. Se pueden especificar mejoras en la configuración por defecto, las cuales son automáticamente comunicadas al "par" sin la intervención del operador. Finalmente, el operador puede configurar explícitamente las opciones para el enlace, lo cual lo habilita para operar en ambientes donde de otra manera sería imposible. Esta auto-configuración es implementada a través de un mecanismo de negociación de opciones extensible en el cual cada extremo del enlace describe al otro sus capacidades y requerimientos.

ENTRAMADO
La encapsulación PPP provee multiplexamiento de diferentes protocolos de la capa de red sobre el mismo enlace. Ha sido diseñada cuidadosamente para mantener compatibilidad con el hardware mayormente usado. Sólo son necesarios 8 bytes adicionales para formar la encapsulación cuando se usa dentro del entramado por defecto. En ambientes con escaso ancho de banda, la encapsulación y el entramado pueden requerir menos bytes.

Indicador
(1 byte) Dirección (1 byte) Control (1 byte) Protocolo (1 o 2 bytes) Información (variable) Suma (2 o 4 bytes) Indicador (1 byte) Todas las tramas comienzan con el byte indicador "01111110". Luego viene el campo dirección, al que siempre se asigna el valor "11111111". La dirección va seguida del campo de control, cuyo valor predeterminado es "00000011". Este valor indica un marco sin número ya que PPP no proporciona por omisión transmisión confiable (usando números de secuencia y acuses) pero en ambientes ruidosos se puede usar un modo numerado para transmisión confiable. El anteúltimo campo es el de suma de comprobación, que normalmente es de 2 bytes, pero puede negociarse una suma de 4 bytes. La trama finaliza con otro byte indicador "01111110". Debido a que los campos indicados anteriormente son utilizados para encapsular la información fundamental del protocolo, desde ahora nos centraremos en el siguiente esquema: Protocolo (1 o 2 bytes) Información (y relleno) (variable)

PROTOCOLOS ORIENTADOS A BITS
media type="youtube" key="1qZ1YfwaDhk" width="425" height="350" align="center"

BIT oriented protocols
En una transmisión orientada a bit, los datos son transmitidos como constantes ráfagas de bits. Antes de que la transmisión de datos empiece, caracteres especiales de sincronía son transmitidos por el transmisor, así el receptor puede sincronizarse a sí mismo con la ráfaga de bits. Este patrón de bits es comunmente representado en una cadena de 8 bits.

SDLC (Synchronous Data Link Control) de IBM es un protocolo orientado a bits. Su caracter de sincronia (sync) es la cadena de bits 01111110, y esto es seguido por una dirección de 8 bits, un campo de control y por por los datos (información útil). Una vez que el sistema receptor recibe esas tramas iniciales, empieza a leer 8 bits a la vez (1 byte) desde la cadena de bits hasta que aparezca un error o una bandera de término.

Los protocolos SDLC y HDLC (High-level Data Link Control) de IBM son orientados a bit. HDLC es usado comúnmente en las redes de conmutación de paquetes X.25, SDLC es un subconjunto de HDLC.

Los protocolos orientados a bits son los usados comúnmente en la transmisión en las redes de datos LAN y WAN.

DELIMITACIÓN DE LA TRAMA
La capa de enlace debe ocuparse de la delimitación y sincronización de la trama. Para la sincronización puede usar 3 métodos: La transparencia se realiza mediante la inserción de bits. Consta de ir contando los unos consecutivos y cuando se encuentra con 5 unos seguidos y consecutivos introduce el bit 0 después del quinto uno. Ejemplo: Las banderas/flag suelen ser 01111110, y al aplicar la transparencia pasa a ser 011111010.
 * El primero de ellos es "Principio y fin" (caracteres específicos para identificar el principio o el fin de cada trama).
 * También puede usar "Principio y cuenta" (Utiliza un carácter para indicar comienzo y seguido por un contador que indica su longitud).
 * Por último puede usar el "Guion" (se emplea una agrupación especifica de bits para identificar el principio y fin mediante banderas/flags).