# Point-to-Point Protocol

Protocolo punto a punto (PPP) (en inglés Point-to-Point Protocol) es un protocolo del nivel de enlace de datos, utilizado para establecer una conexión directa entre dos nodos de una red. Conecta dos enrutadores directamente sin ningún equipo u otro dispositivo de red entremedias de ambos. Está estandarizado en el documento RFC 1661. Puede proporcionar autenticación, cifrado de la transmisión y compresión.
PPP es usado en varios tipos de redes físicas, incluyendo: cable serial, línea telefónica, línea troncal, telefonía celular, especializado en enlace de radio y enlace de fibra óptica como SONET (Synchronous Optical Network). También es utilizado en las conexiones de acceso a Internet (publicitado como banda ancha o broadband). Los proveedores de servicios de Internet (ISP) han usado PPP para que accedan a Internet los usuarios de una línea de conmutación, ya que los paquetes de IP no pueden ser transmitidos vía módem, sin tener un protocolo de enlace de datos.
Dos derivados del PPP son:
* Point-to-Point Protocol over Ethernet (PPPoE),
* Point-to-Point Protocol over ATM (PPPoA).
Son usados comúnmente por los ISP para establecer una línea de abonado digital (digital subscriber line, DSL) de servicios de internet para clientes.
Por tanto, se trata de un protocolo asociado a la pila TCP/IP de uso en internet.

## Descripción

PPP permite establecer una comunicación a nivel de la capa de enlace TCP/IP entre dos computadoras (redes punto a punto). Generalmente, se utiliza para establecer la conexión a Internet de un computador particular con su ISP a través de un módem telefónico. Ocasionalmente también es utilizado sobre conexiones de banda ancha (como PPPoE o PPPoA). Además del simple transporte de datos, PPP facilita dos funciones importantes:
* Autenticación: generalmente mediante una clave de acceso.
* Asignación dinámica de IP: los proveedores de acceso cuentan con un número limitado de direcciones IP y cuentan con más clientes que direcciones. Naturalmente, no todos los clientes se conectan al mismo tiempo. Así, es posible asignar una dirección IP a cada cliente en el momento en que se conectan al proveedor. La dirección IP se conserva hasta que termina la conexión por PPP. Posteriormente, puede ser asignada a otro cliente.
PPP también tiene otros usos, por ejemplo, se utiliza para establecer la comunicación entre un módem ADSL y la pasarela ATM del operador de telecomunicaciones.
También se ha venido utilizando para conectar a trabajadores desplazados (p. ej. computadora portátil) con sus oficinas a través de un centro de acceso remoto de su empresa. Aunque esta aplicación se está abandonando en favor de las redes privadas virtuales.

## Configuración automática

El protocolo de control de enlace (en inglés Link Control Protocol o LCP) inicia y termina conexiones, permitiendo a los usuarios negociar las opciones de conexión. Es una parte integrada en el PPP, y está definido en el mismo estándar de especificación. LCP provee configuración automática de las interfaces de cada final y selecciona autentificación opcional. LCP corre encima del PPP y se utiliza el valor específico en su campo de protocolo de 0Xc021, y por lo mismo una conexión básica PPP debe estar establecida antes de que se configure LCP.

## Múltiples protocolos de la capa de red

PPP permite, a múltiples protocolos de la capa de red, operar en el mismo enlace de comunicación. Para cada protocolo de capa de red usada, un Protocolo de Control de Red (Network Control Protocol, NCP) separado, ofrece opciones para negociar y encapsular múltiples protocolos de la capa de red. Negocia información de la capa de red como direcciones de red u opciones de compresión, después que la conexión fue establecida.

## Enlace de detección de ciclo

PPP detecta un ciclo de enlaces usando una característica que envuelve números mágicos. Cuando los nodos envían mensajes PPP LCP, estos mensajes pueden incluir unos números mágicos. Si una línea esté en ciclo, el nodo recibe un mensaje LCP con su propio número mágico, en vez de obtener un mensaje con el número.

## Opciones de configuración de PPP

La sección anterior introdujo el uso de las opciones de LCP para encontrar los requerimientos específicos de una conexión WAN. PPP puede incluir las siguientes opciones de LCP:
* Autentificación: los routers de puerto intercambian mensajes de autentificación. Dos opciones de autentificación son:
** Protocolo de Autentificación por Clave (PAP) y
** Protocolo de Autentificación de Desafío Mutuo (CHAP).
* Compresión: aumenta el rendimiento efectivo en las conexiones PPP, reduciendo la cantidad de data en la trama que debe viajar a través de los enlaces.
* Detección de Error: identifica condiciones de falla. La calidad y la opción de Números Mágicos ayudan a asegurar un confiable enlace de datos sin ciclos repetitivos.
* Multienlace: proporciona equilibrio de carga de varias interfaces usando el Multilink de PPP.25689

## Funcionamiento

PPP consta de las siguientes fases:
* Establecimiento de conexión: durante esta fase, una computadora contacta con la otra y negocian los parámetros relativos al enlace usando el protocolo LCP. Este protocolo es una parte fundamental de PPP y por ello está definido en el mismo RFC. Usando LCP se negocia el método de autenticación que se va a utilizar, el tamaño de los datagramas, números mágicos para usar durante la autenticación, etc.
* Autenticación: no es obligatorio. Existen dos protocolos de autenticación. El más básico e inseguro es Password Authentication Protocol (PAP), aunque no se recomienda dado que envía el nombre de usuario y la contraseña en formato de texto plano. Un método más avanzado y preferido por muchos ISP es CHAP, en el cual la contraseña se manda cifrada.
* Configuración de red: en esta fase se negocian parámetros dependientes del protocolo de red que se esté usando. PPP puede llevar muchos protocolos de red al mismo tiempo y es necesario configurar individualmente cada uno de estos protocolos. Para configurar un protocolo de red se usa el protocolo NCP correspondiente. Por ejemplo, si la red es IP, se usa el protocolo IPCP para asignar la dirección IP del cliente y sus servidores DNS.
* Transmisión: durante esta fase se manda y recibe la información de red. LCP se encarga de comprobar que la línea está activa durante periodos de inactividad. Obsérvese que PPP no proporciona cifrado de datos.
* Terminación: la conexión puede ser finalizada en cualquier momento y por cualquier motivo.
PPP tiene todas las propiedades de un protocolo de nivel de enlace:
* Garantía de recepción.
* Recepción ordenada.
* Uso del puerto 53 para conexión bidireccional de sockets.
* Usado en los balanceadores de carga (Load Balancer, LB) como protocolo de distribución.

## Fases del PPP y activación de la línea

Las fases del protocolo punto a punto, según el RFC 1661, son los siguientes:
* Enlace muerto: esta fase se produce cuando falla la conexión, o en un lado se ha dicho que se desconecte (por ejemplo, un usuario ha terminado su conexión de acceso telefónico).
* Fase de establecimiento de enlace: esta fase es donde se intenta negociar con el Protocolo de Control de Enlace. Si tiene éxito, ya sea de control va a la fase de autenticación o la fase de protocolo de red-capa, dependiendo de si se desea la autenticación.
* Fase de autentificación: esta fase es opcional. Se permite que los lados se autentiquen entre sí antes de que se establezca una conexión. Si se tiene éxito, el control pasa a la fase de protocolo de capa de red.
* Fase de protocolo de la capa de enlace: esta fase es donde se invoca a cada protocolo deseado de los protocolos de control de red. Por ejemplo, el protocolo de control del protocolo de internet (IPCP) se utiliza en el establecimiento de servicios IP a través de la línea. Transporte de datos para todos los protocolos que se inician con éxito con sus protocolos de control de red también se produce en esta fase. Cierre de protocolos de red también se producen en esta fase.
* Fase de terminación de enlace: en esta fase se cierra la conexión. Esto puede ocurrir si hay un error de autenticación, si hay tantos errores de suma de comprobación de que las dos partes deciden derribar el enlace de forma automática, si el enlace falla de repente, o si el usuario decide colgar su conexión.

## PPP frente a SLIP

El protocolo SLIP (Serial Line Internet Protocol) cumple la misma función que PPP, pero se trata de un protocolo mucho más anticuado. Las ventajas de PPP frente a SLIP son:
* Permite la conexión tanto mediante líneas síncronas como asíncronas.
* Permite la asignación dinámica de direcciones IP en ambos extremos de la línea.
* Permite el transporte de varios protocolos de red sobre él (SLIP solamente permite IP).
* Implementa un mecanismo de control de red NCP.
PPP se puede usar también para crear redes privadas virtuales (RPV), tanto cifradas como no cifradas, pero si se desea cifrado se debe implementar por debajo de PPP.

## PPP a través de varios enlaces
### PPP multienlace

PPP multienlace o Multilink PPP (también conocida como MLPPP, MP, MPPP, o MLP) proporciona un método para la difusión de tráfico a través de múltiples conexiones de distintas PPP. Se puede utilizar, por ejemplo, para conectar un ordenador personal a un proveedor de servicios de Internet a través de dos módems de 56 Kb tradicionales, o para conectar una empresa a través de dos líneas arrendadas. En una sola línea de marcos de PPP no pueden llegar fuera de orden, pero esto es posible cuando las tramas se dividen entre múltiples conexiones PPP. Por lo tanto, PPP multienlace debe enumerar los fragmentos para que puedan ser puestos en el orden correcto de nuevo cuando llegan. PPP multienlace es un ejemplo de una tecnología de agregación de enlaces. Cisco IOS versión 11.1 y posterior es compatible con PPP multienlace.

### PPP multiclase

Con PPP, no se puede establecer varias conexiones PPP distintas simultáneas sobre un único enlace. Eso no es posible con PPP multienlace, ya que utiliza números contiguos para todos los fragmentos de un paquete, y como consecuencia no es posible suspender el envío de una secuencia de fragmentos de un paquete con el fin de enviar otro paquete. Esto evita que se ejecute Multilink PPP varias veces en los mismos enlaces.
PPP multiclase es una especie de Multilink PPP donde cada "clase" de tráfico utiliza un espacio separado, el número de secuencia y el reensamblaje de amortiguación.

## Comandos IOS para configuración de PPP

PPP se configura de la siguiente forma en un enrutador Cisco:
Comandos de verificación: