Conocer y dominar el formato de un paquete de datos es un poco aburrido pero necesario al inicio es tedioso pero luego de que lo dominas eres capaz de diagnosticar y entender rápidamente cualquier problema que se presente en la red que administras. Sin más te dejo a PPP.
Formato de paquete encapsulado PPP
La Figura 1 muestra el formato de paquete PPP.
Figura 1 formato de paquete PPP
Los significados de los campos son los siguientes:
• Campo flag
El campo Bandera identifica el inicio y el final de una trama física y siempre es 0x7E.
• Campo address
El campo Dirección identifica a un par. Dos dispositivos de comunicación conectados mediante PPP no necesitan conocer la dirección de la capa de enlace de datos entre sí porque PPP se utiliza en enlaces P2P. Este campo debe llenarse con una dirección de transmisión de todos los 1 y no tiene importancia para PPP.
• Campo de control
El valor predeterminado del campo Control es 0x03, lo que indica un marco sin secuencia. De forma predeterminada, PPP no utiliza números de secuencia ni mecanismos de reconocimiento para garantizar la fiabilidad de la transmisión.
Los campos Dirección y Control identifican un paquete PPP, por lo que el valor del encabezado del paquete PPP es FF03.
• Campo de protocol
El campo Protocolo identifica el datagrama encapsulado en el campo Información de un paquete de datos PPP.
La estructura de este campo cumple con el mecanismo de extensión ISO 3309 para campos de direcciones. Todos los valores de campo de Protocolo deben ser impares; el bit menos significativo del byte menos significativo debe ser "1"; el bit menos significativo del byte más significativo debe ser "0".
Si un receptor recibe un paquete de datos que no cumple con estas reglas de un remitente, el receptor considera que el paquete es irreconocible y envía un paquete Protocolo-Rechazo relleno con el código de protocolo del paquete rechazado al remitente.
Tabla 1 Códigos de protocolos comunes
Protocol Code | Protocol Type |
0021 | Internet Protocol |
002b | Novell IPX |
002d | Van Jacobson Compressed TCP/IP |
002f | Van Jacobson Uncompressed TCP/IP |
8021 | Internet Protocol Control Protocol |
802b | Novell IPX Control Protocol |
8031 | Bridging NC |
C021 | Link Control Protocol |
C023 | Password Authentication Protocol |
C223 | Challenge Handshake Authentication Protocol |
Campo de información
El campo Información contiene el datagrama para el protocolo especificado en el campo Protocolo. La longitud máxima del campo de información, incluido el campo de relleno, es la unidad de recepción máxima (MRU). La MRU tiene un valor predeterminado de 1500 bytes y se puede negociar.
En el campo Información, el campo Relleno es opcional. Si existe el campo Relleno en el campo Información, dos partes que se comunican pueden comunicarse solo cuando pueden identificar la información de relleno y la información que se va a transmitir.
Campo FCS
El campo de secuencia de verificación de trama (FCS) verifica la exactitud de la transmisión de paquetes PPP.
Se utilizan algunos mecanismos para garantizar la transmisión de paquetes de datos, lo que aumenta el costo y la demora en el intercambio de datos en la capa de aplicación.
Formato de paquete encapsulado LCP
La Figura 1 muestra el formato de paquete LCP.
Los dispositivos de comunicación negocian para establecer un enlace PPP mediante el intercambio de paquetes LCP. Los paquetes LCP se cifran en el campo de información de un paquete de datos PPP como carga útil. El valor del campo Protocolo de un paquete de datos PPP es siempre 0xC021.
Durante el establecimiento de un enlace PPP, el campo de información es variable y contiene varios paquetes, que deben identificarse mediante los campos correspondientes.
Campo de código
El campo Código tiene una longitud de 1 byte e identifica el tipo de paquete LCP.
Si un receptor recibe un paquete LCP con un campo de código desconocido de un remitente, el receptor envía un paquete de rechazo de código al remitente.
Tabla 2 Valores de código comunes
Code Value | Packet Type |
0x01 | Configure-Request |
0x02 | Configure-Ack |
0x03 | Configure-Nak |
0x04 | Configure-Reject |
0x05 | Terminate-Request |
0x06 | Terminate-Ack |
0x07 | Code-Reject |
0x08 | Protocol-Reject |
0x09 | Echo-Request |
0x0A | Echo-Reply |
0x0B | Discard-Request |
0x0C | Reserved |
Campo identificador
El campo Identificador tiene una longitud de 1 byte. Se utiliza para hacer coincidir solicitudes y respuestas. Si se recibe un paquete con un campo Identificador no válido, el paquete se descarta.
El número de secuencia de un paquete Configure-Request generalmente comienza con 0x01 y aumenta en 1 cada vez que se envía un paquete Configure-Request. Una vez que un receptor recibe un paquete de solicitud de configuración, debe enviar un paquete de respuesta con el mismo número de secuencia que el paquete de solicitud de configuración recibido.
Campo de longitud
El campo Longitud especifica la longitud de un paquete de negociación, incluidos los campos Código, Identificador, Longitud y Datos.
El campo Longitud especifica el número total de bytes en el paquete de negociación.
El valor del campo Longitud no puede exceder el MRU del enlace. Los bytes fuera del rango del campo Longitud se tratan como relleno y se ignoran una vez recibidos.
Campo de datos
El campo de datos contiene el contenido de un paquete de negociación, incluidos los siguientes campos:
· El campo Tipo especifica el tipo de opción de negociación.
· El campo Longitud especifica la longitud total del campo Datos.
· El campo Datos contiene el contenido de la opción de negociación.
Tabla 3 Opciones de negociación en el campo Tipo
Negotiation Option Value | Negotiation Packet Type |
0x01 | Maximum-Receive-Unit |
0x02 | Async-Control-Character-Map |
0x03 | Authentication-Protocol |
0x04 | Quality-Protocol |
0x05 | Magic-Number |
0x06 | RESERVED |
0x07 | Protocol-Field-Compression |
0x08 | Address-and-Control-Field-Compression |