En redes de computadoras , el Protocolo Punto a Punto ( PPP ) es un protocolo de comunicación de capa de enlace de datos (capa 2) entre dos enrutadores directamente sin ningún host ni ninguna otra red en el medio. [1] Puede proporcionar detección de bucles, autenticación , cifrado de transmisión [2] y compresión de datos .
PPP se utiliza en muchos tipos de redes físicas, entre ellas , cable serial , línea telefónica , línea troncal , teléfono celular , enlaces de radio especializados, ISDN y enlaces de fibra óptica como SONET . Dado que los paquetes IP no se pueden transmitir por una línea de módem por sí solos sin algún protocolo de enlace de datos que pueda identificar dónde comienza y dónde termina la trama transmitida, los proveedores de servicios de Internet (ISP) han utilizado PPP para el acceso telefónico de los clientes a Internet .
PPP se utiliza en las antiguas líneas de redes de acceso telefónico . [3] Dos derivados de PPP, el Protocolo punto a punto sobre Ethernet (PPPoE) y el Protocolo punto a punto sobre ATM (PPPoA), son los que utilizan con mayor frecuencia los ISP para establecer una conexión de servicio de Internet (LP) de línea de abonado digital (DSL) con los clientes.
PPP se utiliza con mucha frecuencia como protocolo de capa de enlace de datos para la conexión a través de circuitos síncronos y asíncronos , donde ha reemplazado en gran medida al antiguo Protocolo de Internet de línea serie (SLIP) y a los estándares exigidos por las compañías telefónicas (como el Protocolo de acceso a enlaces, equilibrado (LAPB) en la suite de protocolos X.25 ). El único requisito para PPP es que el circuito proporcionado sea dúplex . PPP se creó para funcionar con numerosos protocolos de capa de red , incluidos el Protocolo de Internet (IP), TRILL , el Intercambio de paquetes entre redes de Novell (IPX), NBF , DECnet y AppleTalk . Al igual que SLIP, se trata de una conexión completa a Internet a través de líneas telefónicas mediante módem. Es más fiable que SLIP porque realiza una doble comprobación para garantizar que los paquetes de Internet lleguen intactos. [4] Reenvía cualquier paquete dañado.
El PPP se diseñó en cierta medida después de las especificaciones originales de HDLC . Quienes diseñaron el PPP incluyeron muchas características adicionales que hasta ese momento solo se habían visto en protocolos de enlace de datos propietarios. El PPP se especifica en RFC 1661.
RFC 2516 describe el Protocolo punto a punto sobre Ethernet (PPPoE) como un método para transmitir PPP sobre Ethernet que a veces se utiliza con DSL . RFC 2364 describe el Protocolo punto a punto sobre ATM (PPPoA) como un método para transmitir PPP sobre ATM Adaptation Layer 5 ( AAL5 ), que también es una alternativa común a PPPoE utilizada con DSL.
PPP, PPPoE y PPPoA se utilizan ampliamente en líneas WAN .
PPP es un protocolo en capas que tiene tres componentes: [4]
LCP inicia y finaliza las conexiones de forma elegante, lo que permite a los hosts negociar las opciones de conexión. Es una parte integral de PPP y se define en la misma especificación estándar. LCP proporciona una configuración automática de las interfaces en cada extremo (como la configuración del tamaño del datagrama , los caracteres de escape y los números mágicos) y la selección de la autenticación opcional. El protocolo LCP se ejecuta sobre PPP (con el número de protocolo PPP 0xC021) y, por lo tanto, se debe establecer una conexión PPP básica antes de que LCP pueda configurarlo.
RFC 1994 describe el Protocolo de autenticación por desafío mutuo (CHAP), que es el preferido para establecer conexiones de acceso telefónico con los ISP. Aunque está en desuso, el Protocolo de autenticación por contraseña (PAP) todavía se utiliza en ocasiones.
Otra opción para la autenticación a través de PPP es el Protocolo de Autenticación Extensible (EAP) descrito en RFC 2284.
Una vez establecido el enlace, puede realizarse una configuración adicional de la red ( capa 3 ). El protocolo de control de protocolo de Internet (IPCP) es el más utilizado, aunque el protocolo de control de intercambio de paquetes entre redes (IPXCP) y el protocolo de control AppleTalk (ATCP) fueron populares en el pasado. [5] [6] El protocolo de control de protocolo de Internet versión 6 (IPv6CP) se utilizará más en el futuro, cuando IPv6 reemplace a IPv4 como el protocolo de capa 3 dominante.
PPP permite que varios protocolos de capa de red funcionen en el mismo enlace de comunicación. Para cada protocolo de capa de red utilizado, se proporciona un Protocolo de control de red ( NCP ) independiente para encapsular y negociar opciones para los múltiples protocolos de capa de red. Negocia información de capa de red, por ejemplo, dirección de red u opciones de compresión, después de que se haya establecido la conexión.
Por ejemplo, IP utiliza IPCP y el Intercambio de paquetes entre redes (IPX) utiliza el Protocolo de control IPX de Novell ( IPX/SPX ). Los NCP incluyen campos que contienen códigos estandarizados para indicar el tipo de protocolo de capa de red que encapsula la conexión PPP.
Los siguientes NCP se pueden utilizar con PPP:
PPP detecta enlaces en bucle mediante una función que incluye números mágicos . Cuando el nodo envía mensajes LCP de PPP, estos mensajes pueden incluir un número mágico. Si una línea está en bucle, el nodo recibe un mensaje LCP con su propio número mágico, en lugar de recibir un mensaje con el número mágico del nodo.
En la sección anterior se presentó el uso de las opciones LCP para cumplir con requisitos específicos de conexión WAN. PPP puede incluir las siguientes opciones LCP:
Los marcos PPP son variantes de los marcos HDLC :
Si ambos pares están de acuerdo con la compresión de los campos Dirección y Control durante LCP, entonces esos campos se omiten. Del mismo modo, si ambos pares están de acuerdo con la compresión de los campos Protocolo, entonces se puede omitir el byte 0x00.
El campo Protocolo indica el tipo de paquete de carga útil: 0xC021 para LCP , 0x80xy para varios NCP, 0x0021 para IP, 0x0029 AppleTalk, 0x002B para IPX , 0x003D para Multilink, 0x003F para NetBIOS , 0x00FD para MPPC y MPPE , etc. [7] PPP es limitado y no puede contener datos generales de Capa 3 , a diferencia de EtherType .
El campo Información contiene la carga útil PPP; tiene una longitud variable con un máximo negociado llamado Unidad Máxima de Transmisión . De manera predeterminada, el máximo es de 1500 octetos . Puede rellenarse durante la transmisión; si la información para un protocolo en particular puede rellenarse, ese protocolo debe permitir que la información se distinga del relleno.
Las tramas PPP se encapsulan en un protocolo de capa inferior que proporciona la estructura de tramas y puede proporcionar otras funciones, como una suma de comprobación para detectar errores de transmisión. El PPP en enlaces seriales suele encapsularse en una estructura de tramas similar a HDLC , descrita en IETF RFC 1662.
El campo Bandera está presente cuando se utiliza PPP con tramado tipo HDLC.
Los campos Dirección y Control siempre tienen el valor hexadecimal FF (para "todas las estaciones") y hexadecimal 03 (para "información no numerada"), y se pueden omitir siempre que se negocie la compresión de campo de control y dirección PPP LCP (ACFC).
El campo de secuencia de verificación de trama (FCS) se utiliza para determinar si una trama individual tiene un error. Contiene una suma de verificación calculada sobre la trama para proporcionar protección básica contra errores en la transmisión. Se trata de un código CRC similar al que se utiliza para otros esquemas de protección contra errores de protocolo de capa dos, como el que se utiliza en Ethernet. Según RFC 1662, puede tener un tamaño de 16 bits (2 bytes) o 32 bits (4 bytes) (el valor predeterminado es 16 bits: polinomio x 16 + x 12 + x 5 + 1).
El FCS se calcula sobre los campos Dirección, Control, Protocolo, Información y Relleno después de que se haya encapsulado el mensaje.
El protocolo PPP multienlace (también conocido como MLPPP , MP , MPPP , MLP o Multilink) proporciona un método para distribuir el tráfico entre varias conexiones PPP distintas. Se define en RFC 1990. Se puede utilizar, por ejemplo, para conectar una computadora doméstica a un proveedor de servicios de Internet mediante dos módems tradicionales de 56k o para conectar una empresa a través de dos líneas alquiladas.
En una sola línea PPP, las tramas no pueden llegar desordenadas, pero esto es posible cuando las tramas se dividen entre varias conexiones PPP. Por lo tanto, Multilink PPP debe numerar los fragmentos para que se puedan volver a colocar en el orden correcto cuando lleguen.
PPP multienlace es un ejemplo de tecnología de agregación de enlaces . Cisco IOS versión 11.1 y posteriores admiten PPP multienlace.
Con PPP, no se pueden establecer varias conexiones PPP simultáneas y distintas a través de un único enlace.
Esto tampoco es posible con Multilink PPP. Multilink PPP 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 para enviar otro paquete. Esto impide ejecutar Multilink PPP varias veces en los mismos enlaces.
El PPP multiclase es un tipo de PPP multienlace en el que cada "clase" de tráfico utiliza un espacio de número de secuencia y un búfer de reensamblaje independientes. El PPP multiclase se define en RFC 2686
PPTP (Protocolo de tunelaje punto a punto) es una forma de PPP entre dos hosts a través de GRE utilizando cifrado ( MPPE ) y compresión ( MPPC ).
Se pueden utilizar muchos protocolos para canalizar datos a través de redes IP. Algunos de ellos, como SSL , SSH o L2TP, crean interfaces de red virtuales y dan la impresión de conexiones físicas directas entre los puntos finales del túnel. En un host Linux , por ejemplo, estas interfaces se denominarían tun0 o ppp0 .
Como solo hay dos puntos finales en un túnel, el túnel es una conexión punto a punto y PPP es una opción natural como protocolo de capa de enlace de datos entre las interfaces de red virtuales. PPP puede asignar direcciones IP a estas interfaces virtuales, y estas direcciones IP se pueden utilizar, por ejemplo, para enrutar entre las redes de ambos lados del túnel.
IPsec en modo túnel no crea interfaces físicas virtuales al final del túnel, ya que el túnel es manejado directamente por la pila TCP/IP. Se puede utilizar L2TP para proporcionar estas interfaces; esta técnica se denomina L2TP/IPsec. También en este caso, PPP proporciona direcciones IP a los extremos del túnel.
El protocolo PPP se define en el RFC 1661 (The Point-to-Point Protocol, julio de 1994). El RFC 1547 (Requirements for an Internet Standard Point-to-Point Protocol, diciembre de 1993) proporciona información histórica sobre la necesidad del protocolo PPP y su desarrollo. Se han escrito una serie de RFC relacionados para definir cómo funcionan con el protocolo PPP una variedad de protocolos de control de red, incluidos TCP/IP , DECnet , AppleTalk e IPX ; se pueden encontrar en el sitio web Datatracker IETF. [8]