PPP - Protocolo Punto a Punto
INTRODUCCIÓN
La mayor parte de la infraestructura de redes de área
extensa está construida a partir de líneas alquiladas punto a punto.
En la práctica, la comunicación punto a punto se utiliza de
diferentes maneras. Actualmente, una de las formas más habituales de
conectarse a Internet para un usuario común es a través de un módem y una línea
telefónica. En general, la PC llama al router de su proveedor de
Internet y así actúa como host de la Red. Este método de operación
no es distinto a tener una línea arrendada entre la PC y el router,
excepto que la conexión desaparece cuando el usuario termina la sesión. Este
concepto se ilustra en la siguiente figura:
Tanto para la conexión por línea alquilada de router
a router como para la conexión conmutada de host a router
se requiere de un protocolo punto a punto de enlace de datos en la línea,
para el manejo de marcos de control de errores y las demás funciones de la
capa de enlace de datos.
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).
PROTOCOLO PPP
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.
El formato de la trama completa es:
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) |
Campo protocolo
Este campo es de 1 o 2 bytes y su valor identifica el
contenido del datagrama en el campo de información del paquete (cuando
hablamos de "paquete" nos estamos refiriendo al marco de la capa de
enlace, que es en la que opera el PPP; no debe confundirse con los de la capa
de red, manejados por IP). El bit menos significativo del byte menos
significativo debe ser 1 y el bit menos significativo del byte más
significativo debe ser 0. Los marcos recibidos que no cumplan con estas reglas
deben ser tratados como irreconocibles.
Los valores en el campo de protocolo dentro del rango de 0hex
a 3hex identifican el protocolo de capa de red de los paquetes específicos, y
valores en el rango de 8hex a Bhex identifican paquetes pertenecientes al
protocolo de control de red asociado (NCPs). Los valores en el campo de
protocolo dentro del rango de 4hex a 7hex son usados para protocolos con bajo
volumen de tráfico, los cuales no tienen asociados NCP. Valores en el rango
de Chex a Fhex identifican paquetes de los protocolos de control de la capa de
enlace (como LCP).
Campo información
Puede tener 0 o más bytes. Contiene el datagrama para el
protocolo especificado en el campo protocolo. La máxima longitud para este
campo, incluyendo el relleno pero no incluyendo el campo de protocolo,
es determinada por la unidad máxima de recepción (MRU), la cual es de 1500
bytes por defecto. Mediante negociaciones, PPP puede usar otros valores para
la MRU.
A la información se le puede agregar un relleno, con
un número arbitrario de bytes, hasta llegar a la MRU.
Operación del PPP
Para establecer comunicaciones sobre un enlace punto a punto
cada extremo del mismo debe enviar primero paquetes LCP para configurar y
testear el enlace de datos. Después de que éste ha sido establecido, el
"par" debe ser autentificado. Entonces, PPP debe enviar paquetes NCP
para elegir y configurar uno o más protocolos de red. Una vez que han sido
configurados cada uno de los protocolos de la capa de red elegidos, los
datagramas de cada protocolo de capa de red pueden ser enviados a través del
enlace. El enlace permanecerá configurado para la comunicación hasta que una
serie de paquetes NCP o LCP cierren la conexión, o hasta que ocurra un evento
externo (por ej., que un timer de inactividad expire o que se produzca
una intervención del administrador de la red).