Ir al contenido

Protocolo punto a punto

✏️ Editar🕓 Historial🔗 Enlaces
NombreProtocolo punto a punto (PPP)
Point-to-Point Protocol
FamiliaProtocolos de enlace punto a punto
FunciónTransmisión de datagramas IP en líneas serie
NivelCapa de enlace de datos
EstándaresRFC 1661, RFC 1662
DerivadosPPPoE, PPPoA

El Protocolo punto a punto, más conocido por sus siglas inglesas PPP (Point-to-Point Protocol), es un protocolo de la capa de enlace de datos que permite establecer una conexión directa entre dos nodos de una red. Se define en el documento RFC 1661 y se emplea principalmente para transportar paquetes de protocolos de capa de red —sobre todo IP— a través de enlaces serie, como una línea telefónica entre una computadora y un proveedor de servicios de Internet.

1. Resumen[editar]

PPP conecta dos enrutadores o dos computadoras directamente, sin que haya entre ellos ningún otro equipo de red. Para que los paquetes IP puedan viajar por un módem o por una línea serie, hace falta un protocolo de capa de enlace que indique dónde comienza y dónde termina cada trama. Esa es, precisamente, una de las funciones básicas de PPP.

Además del transporte de datos, PPP ofrece servicios complementarios importantes:

  • Autenticación: permite comprobar la identidad de los extremos antes de abrir la conexión.
  • Asignación dinámica de direcciones IP: como los proveedores suelen tener más clientes que direcciones IP, PPP permite entregar una dirección a cada cliente solo mientras dura la conexión y reasignarla después a otro usuario.
  • Detección de enlaces en bucle: mediante números mágicos, PPP puede detectar si una línea ha quedado en bucle y devuelve los mensajes del propio emisor.
  • Compresión y cifrado: ambas funciones son opcionales y se negocian entre los extremos.

PPP se usa sobre muchos tipos de redes físicas: cable serie, línea telefónica, línea troncal, telefonía celular, enlaces de radio y enlaces de fibra óptica como SONET.[1] También es la base de las conexiones de acceso telefónico y, a través de sus derivados PPPoE y PPPoA, de muchas conexiones de banda ancha por línea de abonado digital (DSL).

2. Historia y estandarización[editar]

PPP fue diseñado a partir de las especificaciones originales de HDLC, con características adicionales que hasta entonces solo se encontraban en protocolos de enlace propietarios. El documento RFC 1547, publicado en diciembre de 1993, recopiló los requisitos que debía cumplir un protocolo punto a punto estándar para Internet y sirve como referencia histórica del proceso de diseño.[2]

La especificación principal llegó con el RFC 1661, The Point-to-Point Protocol (PPP), publicado en julio de 1994.[1:1] El RFC 1662 describe la encapsulación de PPP en tramas similares a HDLC, que es la forma habitual de usarlo sobre enlaces serie.[3] A partir de ahí, la IETF publicó una serie de documentos complementarios para cubrir la autenticación (RFC 1994), la compresión (RFC 1962) y el cifrado (RFC 1968), entre otros aspectos.

El contexto histórico importa: durante los años noventa, las conexiones telefónicas por módem se volvieron el acceso doméstico más común a Internet, y PPP reemplazó gradualmente al protocolo SLIP como forma estándar de transportar IP sobre esas líneas. Esa transición se explica tanto por la mayor flexibilidad de PPP como por su capacidad para negociar opciones y soportar varios protocolos de red a la vez.

3. Descripción general[editar]

PPP es un protocolo de capa de enlace concebido para funcionar sobre circuitos síncronos y asíncronos. Su único requisito respecto del medio físico es que el circuito sea dúplex, es decir, que permita transmisión en ambos sentidos. Esto lo hace adecuado para una gran variedad de escenarios, desde un módem telefónico tradicional hasta una línea arrendada entre dos sedes de una empresa.

Una de las características más valoradas de PPP es que puede transportar varios protocolos de capa de red simultáneamente sobre el mismo enlace. No está limitado a IP: los primeros años de PPP también contemplaron IPX, AppleTalk, DECnet y NetBIOS, y en la actualidad soporta tanto IPv4 como IPv6. Para cada protocolo de red existe un Protocolo de Control de Red (NCP) específico que negocia sus propios parámetros, como la dirección de red o las opciones de compresión.

En la práctica, el uso más extendido de PPP durante las décadas de 1990 y 2000 fue el acceso telefónico a Internet. Un usuario se conectaba con su módem al proveedor, establecía un enlace PPP y, tras autenticarse, recibía una dirección IP pública durante el tiempo que durara la sesión. Ese modelo sigue presente en muchos servicios de túnel y en conexiones de banda ancha mediante PPPoE o PPPoA.

4. Configuración automática y protocolos de control[editar]

El Link Control Protocol (LCP) es parte integral de PPP y está definido en el mismo RFC 1661. LCP se ocupa de iniciar y terminar las conexiones de forma ordenada, y de negociar opciones del enlace, como el tamaño máximo de los datagramas, los caracteres escapados o el uso de números mágicos. También selecciona si se aplicará autenticación.

LCP corre por encima de PPP y emplea el valor de protocolo 0xC021 en el campo correspondiente de la trama. Por eso, antes de que LCP pueda configurar nada, ya debe existir una conexión PPP básica entre los dos extremos.

4.2 Protocolos de control de red[editar]

Una vez que el enlace está establecido, entran en juego los NCP. Cada protocolo de capa de red tiene su propio NCP. Para IP, el protocolo es IPCP (Internet Protocol Control Protocol), que se encarga de asignar la dirección IP del cliente y de comunicarle las direcciones de los servidores DNS. Para IPv6 existe IPv6CP. En el pasado se usaron también IPXCP para IPX, ATCP para AppleTalk y NBFCP para NetBIOS, entre otros.

La lista de NCP definidos para PPP incluye, según los RFC correspondientes, los identificadores de protocolo 0x8021 para IPCP, 0x802B para IPXCP y 0x8057 para IPv6CP.[4]

5. Fases del enlace[editar]

Según el RFC 1661, una conexión PPP atraviesa varias fases bien diferenciadas:

  1. Enlace muerto (link dead): se produce cuando hay una falla, cuando un extremo decide desconectarse o antes de iniciarse la negociación.
  2. Establecimiento del enlace: los extremos negocian los parámetros básicos mediante LCP. Si la negociación tiene éxito, se pasa a la fase de autenticación o directamente a la fase de protocolos de red, según se haya configurado.
  3. Autenticación: fase opcional en la que cada lado puede demostrar su identidad. Si la autenticación falla, el enlace se termina.
  4. Protocolo de capa de red: se invocan los NCP necesarios para cada protocolo de red. Es en esta fase donde se asignan direcciones IP y comienza el transporte de datos de los protocolos configurados.
  5. Terminación del enlace: la conexión se cierra porque una de las partes lo solicita, por falla física o por demasiados errores de verificación.

Durante la transmisión, LCP sigue comprobando que la línea permanezca activa, incluso en periodos de inactividad. PPP por sí mismo no cifra los datos, salvo que se haya negociado un protocolo de cifrado como ECP (RFC 1968) o una capa adicional como MPPE.

6. Estructura de la trama[editar]

Las tramas PPP son variantes de las tramas HDLC. Su formato general es el siguiente:

Campo Tamaño Descripción
Bandera 1 byte 0x7E, marca el inicio de la trama
Dirección 1 byte 0xFF, dirección de difusión estándar
Control 1 byte 0x03, datos no numerados
Protocolo 2 bytes Identificador del protocolo transportado
Información variable Datagrama o carga útil
Relleno variable Relleno opcional
Secuencia de verificación 2 bytes Comprobación por CRC
Bandera 1 byte 0x7E, puede omitirse en tramas consecutivas

Si los extremos acuerdan durante la negociación LCP comprimir los campos de dirección y control, estos se omiten. También puede comprimirse el campo de protocolo, eliminando el byte 0x00 cuando corresponda.

El campo de protocolo indica qué tipo de carga útil transporta la trama. Algunos valores relevantes son 0xC021 para LCP, 0x0021 para IP, 0x0029 para AppleTalk, 0x002B para IPX, 0x003D para multilink y 0x003F para NetBIOS.[5] La cantidad máxima de datos en el campo de información se conoce como Unidad Máxima de Transferencia y, por defecto, es de 1500 octetos.

La secuencia de verificación es un código de redundancia cíclica (CRC) que permite detectar errores de transmisión. Según el RFC 1662, su tamaño puede ser de 16 bits (valor por defecto) o de 32 bits. El polinomio usado por defecto es x¹⁶ + x¹² + x⁵ + 1.[3:1]

7. Autenticación y opciones de configuración[editar]

7.1 Autenticación[editar]

PPP admite varios mecanismos de autenticación:

  • PAP (Password Authentication Protocol): es el más simple y también el más inseguro, porque envía el nombre de usuario y la contraseña en texto plano. Su uso es desaconsejado.
  • CHAP (Challenge-Handshake Authentication Protocol): definido en el RFC 1994, es el método preferido en las conexiones telefónicas. Envía la contraseña cifrada mediante un esquema de desafío-respuesta.[6]
  • EAP (Extensible Authentication Protocol): definido en el RFC 2284, permite incorporar mecanismos adicionales de autenticación.

7.2 Compresión y detección de errores[editar]

Para aumentar el rendimiento efectivo, PPP puede negociar compresión de datos. El algoritmo se acuerda entre los extremos; BSD compress y Deflate figuran entre las opciones contempladas en los RFC correspondientes.[7] Además, existen opciones de compresión para encabezados y para los paquetes de control.

La detección de enlaces en bucle se logra mediante los números mágicos. Cuando un nodo envía mensajes LCP, puede incluir su propio número mágico. Si la línea está en bucle, el nodo recibe un mensaje con su propio número, en lugar de recibir el número del otro extremo. Hasta que se negocia correctamente esta opción, el número mágico debe transmitirse como cero.

7.3 Multienlace[editar]

PPP incluye una opción de multienlace que permite repartir el tráfico entre varias interfaces distintas y sumar su capacidad, un caso típico de agregación de enlaces. Esta modalidad se trata con más detalle en el apartado siguiente.

8. PPP sobre varios enlaces[editar]

8.1 PPP multienlace[editar]

PPP multienlace (también citado como MLPPP, MP, MPPP o MLP) está definido en el RFC 1990 y proporciona un método para distribuir tramas entre varias conexiones PPP independientes. Un ejemplo clásico era conectar una computadora doméstica al proveedor usando dos módems de 56 Kb tradicionales, o unir dos sedes empresariales con dos líneas arrendadas.

En una sola línea PPP, las tramas no pueden llegar desordenadas. En cambio, cuando se dividen entre varias conexiones, sí pueden hacerlo. Por eso PPP multienlace numera los fragmentos, de modo que el destino pueda reordenarlos correctamente. Cisco IOS soporta PPP multienlace desde la versión 11.1.

8.2 PPP multiclase[editar]

Con PPP no es posible establecer varias conexiones PPP distintas y simultáneas sobre un mismo enlace. Tampoco lo permite PPP multienlace, porque este usa una numeración contigua para todos los fragmentos de un paquete. Como consecuencia, no se puede interrumpir el envío de una secuencia de fragmentos de un paquete para enviar otro paquete de mayor prioridad.

PPP multiclase resuelve esa limitación mediante un esquema de multienlace en el que cada "clase" de tráfico usa un espacio de numeración y un amortiguador de reensamblado separados. Está definido en el RFC 2686.

9. Derivados, túneles y comparación con SLIP[editar]

9.1 PPPoE y PPPoA[editar]

Dos derivados de PPP son especialmente conocidos:

  • PPPoE (PPP over Ethernet): definido en el RFC 2516, permite transmitir PPP sobre tramas Ethernet. Es habitual en servicios de banda ancha por DSL.
  • PPPoA (PPP over ATM): definido en el RFC 2364, transporta PPP sobre celdas ATM AAL5 y constituye una alternativa a PPPoE en redes DSL.

Ambos suelen ser empleados por los proveedores de servicios de Internet para entregar acceso DSL a clientes residenciales y empresariales.

9.2 PPTP y túneles[editar]

PPTP (Point-to-Point Tunneling Protocol) es una forma de PPP entre dos equipos a través de un túnel GRE, que incorpora cifrado MPPE y compresión MPPC. Aunque ha quedado obsoleto en muchos entornos por motivos de seguridad, formó parte del ecosistema PPP durante años.

Más allá de PPTP, PPP se usa con frecuencia como protocolo de capa 2 entre los extremos de un túnel. Tecnologías como SSH, SSL o L2TP crean interfaces de red virtuales —por ejemplo ppp0 o tun0— y, al existir solo dos extremos en el túnel, la conexión es punto a punto por naturaleza. PPP asigna direcciones IP a esas interfaces virtuales y permite encaminar tráfico entre las redes de ambos lados del túnel.

9.3 Comparación con SLIP[editar]

SLIP (Serial Line Internet Protocol) cumplía una función parecida a PPP, pero era mucho más limitado. Las ventajas de PPP frente a SLIP incluyen:

  • Funcionamiento tanto sobre líneas síncronas como asíncronas.
  • Asignación dinámica de direcciones IP en ambos extremos.
  • Transporte de varios protocolos de red, mientras SLIP solo admite IP.
  • Existencia de un mecanismo de control de red mediante NCP.
  • Detección de errores y reenvío de paquetes dañados, lo que lo hace más confiable que SLIP.

Por estas razones, PPP reemplazó gradualmente a SLIP como forma estándar de conectar computadoras a Internet mediante líneas serie.

10. Uso en redes de acceso en el mundo hispanohablante[editar]

En los países hispanohablantes, PPP tuvo una presencia masiva durante la época del acceso telefónico a Internet, cuando millones de usuarios se conectaban a sus proveedores mediante módems de 28.8 Kb, 33.6 Kb y 56 Kb. La autenticación por CHAP solía ser el método preferido en esos servicios.

Con la llegada de la banda ancha, las conexiones DSL basadas en PPPoE se volvieron comunes en muchos mercados de América Latina y España. El usuario ya no marcaba un número telefónico, pero seguía estableciendo una sesión PPP sobre la red del proveedor, con nombre de usuario, contraseña y asignación dinámica de IP. Esta continuidad facilitó la transición y mantuvo a PPP como una pieza invisible pero fundamental de la infraestructura de acceso.

En la actualidad, PPP persiste sobre todo en escenarios de túnel, en enlaces WAN empresariales y en infraestructuras que conservan acceso DSL o de red privada virtual. En el ámbito de los enrutadores, es común configurarlo en interfaces serie con la familidad de comandos propia de Cisco IOS, como muestra el siguiente ejemplo:

Router# configure terminal
Router(config)# interface serial 0/0/0
Router(config-if)# ip address 192.168.1.1 255.255.255.252
Router(config-if)# encapsulation ppp
Router(config-if)# no shutdown

La verificación del estado de la interfaz puede hacerse con show interface y, si se desea depurar la autenticación, con debug ppp authentication.

11. Notas y referencias[editar]


  1. IETF, RFC 1661, The Point-to-Point Protocol (PPP), julio de 1994. ↩︎ ↩︎

  2. IETF, RFC 1547, Requirements for an Internet Standard Point-to-Point Protocol, diciembre de 1993. ↩︎

  3. IETF, RFC 1662, PPP in HDLC-like Framing. ↩︎ ↩︎

  4. Los identificadores de protocolo se listan en los RFC correspondientes y en el registro de números PPP de IANA. ↩︎

  5. La lista completa de asignaciones de protocolo PPP está disponible en el registro Point-to-Point (PPP) Protocol Field Assignments de IANA. ↩︎

  6. IETF, RFC 1994, PPP Challenge Handshake Authentication Protocol (CHAP). ↩︎

  7. IETF, RFC 1962, PPP Compression Control Protocol (CCP). ↩︎