Como SLIP, PPP es un protocolo usado para mandar datagramas a través de una conexión serie; sin embargo, resuelve varias de las deficiencias de SLIP. Primero, puede transportar un alto número de protocolos y no está limitado al protocolo IP. Proporciona detección de errores en el mismo enlace, mientras que SLIP acepta y reenvía datagramas corruptos mientras que la corrupción no se produzca en la cabecera. Igualmente importante, permite a los extremos comunicantes negociar opciones, como la dirección IP y el tamaño máximo del datagrama, y provee autentificación del cliente. Esta negociación interna, permite una automatización fiable del establecimiento de la conexión. Mientras la autentificación elimina la necesidad de cuentas de usuario que requiere SLIP. Para cada una de estas capacidades, PPP tiene un protocolo específico. En este capítulo cubrimos brevemente estos elementos básicos que forman PPP. Esta discusión de PPP está lejos de ser completa; si quiere aprender más sobre PPP, le instamos a que lea el RFC de su especificación y la alrededor de docena de RFCs que lo complementan.[1] Además hay un extenso libro de O'Reilly sobre el tema Using & Managing PPP, por Andrew Sun.
En la parte más baja de PPP está el protocolo de Control de Conexión de Datos de Alto-Nivel (HDLC), que define los límites de las tramas PPP individuales, y proporciona un control de errores de 16 bit.[2] Al contrario de lo que ocurría con SLIP, una trama PPP es capaz de llevar paquetes de otros protocolos distintos al IP, como IPX de Novell o Appletalk. PPP consigue esto añadiendo a la trama básica HDLC un campo de control que identifica el tipo de paquete contenido en la misma.
El Protocolo de Control de Enlace, es utilizado en la parte más alta del HDLC para negociar las opciones concernientes a la conexión de datos, tales como la Unidad Máxima de Recepción (MRU), que establece el tamaño máximo del datagrama que cada extremo de comunicación acepta recibir.
Un paso importante en la configuración del enlace PPP corresponde a la autentificación del cliente. Aunque no es obligatorio, es casi un deber para las líneas telefónicas y así mantener fuera a los intrusos. Normalmente la máquina llamada (el servidor) pide al cliente que se identifique probando que se sabe alguna clave secreta. Si el llamante se equivoca con la clave, la conexión termina. Con PPP, las autorizaciones se producen en los dos sentidos; es decir, el que llama también puede pedir al servidor que se autentifique. Estos procedimientos de autentificación son totalmente independientes entre sí. Hay dos protocolos distintos, según el tipo de autentificación, los cuales discutiremos más adelante en este capítulo: el Protocolo de Autentificación por Contraseña (PAP) y el Protocolo de Autentificación por Reto (CHAP).
Cada protocolo de red que es encaminado a través de la conexión de datos, como el IP, el Appletalk, etc; se configura dinámicamente usando el correspondiente Protocolo de Control de Red (NCP). Por ejemplo, para enviar datagramas IP a través del enlace, los dos nodos tienen que negociar en primer lugar qué direcciones IP van a utilizar. El protocolo de control utilizado para esto es el Protocolo de Control del IP (IPCP).
Aparte de enviar datagramas IP estándar a través del enlace, el PPP también permite la compresión Van Jacobson de las cabeceras en los datagramas IP. Es una técnica para reducir las cabeceras de los paquetes TCP a un espacio de tan sólo tres bytes. También se utiliza en el CSLIP, y es conocida coloquialmente como compresión de cabeceras VJ. La utilización de la compresión puede negociarse también al comienzo de la conexión gracias al IPCP.
[1] | Los RFCs más relevantes están indicados en la bibliografia al final del libro. |
[2] | En realidad, HDLC es un protocolo mucho más general publicado por la Organización Internacional de Estándares (ISO). |