
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.
Descripción
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]
- Un componente de encapsulación que se utiliza para transmitir datagramas a través de la capa física especificada .
- Un protocolo de control de enlace (LCP) para establecer, configurar y probar el enlace, así como para negociar configuraciones, opciones y el uso de funciones.
- Uno o más protocolos de control de red (NCP) utilizados para negociar parámetros de configuración y funciones opcionales para la capa de red. Hay un NCP para cada protocolo de capa superior compatible con PPP.
Autoconfiguración automática
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.
Protocolos de múltiples capas de red
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:
- IPCP para IP, código de protocolo número 0x8021, RFC 1332
- Protocolo de control de capa de red OSI (OSINLCP) para los diversos protocolos de capa de red OSI , número de código de protocolo 0x8023, RFC 1377
- Protocolo de control AppleTalk (ATCP) para AppleTalk , código de protocolo número 0x8029, RFC 1378
- Protocolo de control de intercambio de paquetes entre redes (IPXCP) para el intercambio de paquetes de Internet , código de protocolo número 0x802B, RFC 1552
- Protocolo de control de fase IV de DECnet (DNCP) para el protocolo de enrutamiento de ADN de fase IV ( DECnet Phase IV), número de código de protocolo 0x8027, RFC 1762
- Protocolo de control de tramas NetBIOS (NBFCP) para el protocolo de tramas NetBIOS (o NetBEUI como se llamaba antes), número de código de protocolo 0x803F, RFC 2097
- Protocolo de control de IPv6 (IPV6CP) para IPv6 , código de protocolo número 0x8057, RFC 5072
Detección de enlaces en bucle
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.
Opciones de configuración
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:
- Autenticación : los enrutadores de pares intercambian mensajes de autenticación. Dos opciones de autenticación son el Protocolo de autenticación de contraseña (PAP) y el Protocolo de autenticación por desafío mutuo (CHAP). La autenticación se explica en la siguiente sección.
- Compresión : aumenta el rendimiento efectivo de las conexiones PPP al reducir la cantidad de datos en la trama que debe viajar a través del enlace, mediante un algoritmo acordado, como BSD Compress o Deflate. El protocolo descomprime la trama en su destino. Consulte RFC 1962 para obtener más detalles.
- Detección de errores : identifica las condiciones de falla. Las opciones de calidad y número mágico ayudan a garantizar un enlace de datos confiable y sin bucles. El campo Número mágico ayuda a detectar enlaces que se encuentran en una condición de bucle invertido. Hasta que se haya negociado correctamente la opción de configuración de número mágico, el número mágico debe transmitirse como cero. Los números mágicos se generan aleatoriamente en cada extremo de la conexión.
- Multilink : proporciona equilibrio de carga entre varias interfaces utilizadas por PPP a través de Multilink PPP (ver a continuación).
Marco PPP
Estructura
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.
Encapsulación
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 trama similar a 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.
Activación de línea y fases
- Enlace muerto
- Esta fase ocurre cuando el enlace falla o se le ha indicado a un lado que se desconecte (por ejemplo, un usuario ha finalizado su conexión de acceso telefónico).
- Fase de establecimiento del enlace
- En esta fase se intenta negociar el protocolo de control de enlace. Si la negociación tiene éxito, el control pasa a la fase de autenticación o a la fase del protocolo de capa de red, según se desee o no la autenticación.
- Fase de autenticación
- Esta fase es opcional. Permite que las partes se autentiquen entre sí antes de establecer una conexión. Si la operación es exitosa, el control pasa a la fase de protocolo de capa de red.
- Fase del protocolo de capa de red
- En esta fase se invocan los protocolos de control de red de cada protocolo deseado. Por ejemplo, se utiliza IPCP para establecer el servicio IP a través de la línea. En esta fase también se produce el transporte de datos para todos los protocolos que se han iniciado correctamente con sus protocolos de control de red. En esta fase también se produce el cierre de los protocolos de red.
- Fase de terminación del enlace
- Esta fase cierra la conexión. Esto puede suceder si hay un error de autenticación, si hay tantos errores de suma de comprobación que las dos partes deciden interrumpir el enlace automáticamente, si el enlace falla repentinamente o si el usuario decide cortar la conexión.
A lo largo de varios enlaces
PPP multienlace
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.
PPP multiclase
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
Túneles
Protocolos derivados
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 ).
Como protocolo de capa 2 entre ambos extremos de un túnel
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.
Normas IETF
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]
Véase también
- Diámetro
- Protocolo de autenticación extensible
- Conjunto de comandos Hayes
- Procedimiento de acceso al enlace para módems (LAPM)
- Encapsulación multiprotocolo (MPE) para flujo de transporte MPEG
- Demonio de protocolo punto a punto (PPPD)
- PPPoX
- RADIO
- Encapsulación ligera unidireccional (ULE) para flujo de transporte MPEG
Referencias
- ^ RFC 1661
- ^ RFC 1968
- ^ "41. Protocolo punto a punto - Redes de acceso telefónico", Linux: Tutorial y exposición del usuario de Rute , consultado el 20 de agosto de 2024
- ^ ab Stevens 1994, págs. 26-27, sección 2.6: "PPP: Protocolo punto a punto"
- ^ Simpson, William A. (diciembre de 1993). Protocolo de control de intercambio de paquetes entre redes PPP (IPXCP) (informe). Grupo de trabajo de ingeniería de Internet.
- ^ Parker, J. Bradford (noviembre de 1992). El protocolo de control AppleTalk (ATCP) PPP (informe). Grupo de trabajo de ingeniería de Internet.
- ^ "Asignaciones de campos del protocolo punto a punto (PPP)". IANA . Consultado el 3 de septiembre de 2015 .
- ^ "Rastreador de datos IETF" . Consultado el 26 de agosto de 2023 .
- William Richard Stevens (2016) [1994]. TCP/IP ilustrado [ TCP/IP详解]. vol. 卷一:协议 (Volumen 1: Los protocolos) (1ª ed.). Pearson Education Asia Ltd. , 人民邮电出版社 (Prensa de Correos y Telecomunicaciones de China). ISBN 978-7-115-40132-8.