Knowing the format of a data packet is a bit boring but necessary at the beginning is tedious but after you master it you are able to quickly diagnose and understand any problem that arises in the network that you manage. Without further ado I leave you to PPP.
PPP-Encapsulated Packet Format
Figure 1 shows the PPP packet format.
Figure 1 PPP packet format

The meanings of the fields are as follows:
Flag field
The Flag field identifies the start and end of a physical frame and is always 0x7E.
Address field
The Address field identifies a peer. Two communicating devices connected by using PPP do not need to know the data link layer address of each other because PPP is used on P2P links. This field must be filled with a broadcast address of all 1s and is of no significance to PPP.
Control field
The Control field value defaults to 0x03, indicating an unsequenced frame. By default, PPP does not use sequence numbers or acknowledgement mechanisms to ensure transmission reliability.
The Address and Control fields identify a PPP packet, so the PPP packet header value is FF03.
Protocol field
The Protocol field identifies the datagram encapsulated in the Information field of a PPP data packet.
The structure of this field complies with the ISO 3309 extension mechanism for address fields. All Protocol field values must be odd; the least significant bit of the least significant byte must be "1"; the least significant bit of the most significant byte must be "0".
If a receiver receives a data packet that does not comply with these rules from a sender, the receiver considers the packet unrecognizable and sends a Protocol-Reject packet padded with the protocol code of the rejected packet to the sender.
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 |
Information field
The Information field contains the datagram for the protocol specified in the Protocol field. The maximum length for the Information field, including the Padding field, is the maximum receive unit (MRU). The MRU defaults to 1500 bytes and can be negotiated.
In the Information field, the Padding field is optional. If there is the Padding field in the Information field, two communicating parties can communicate only when they can identify the padding information and information to be transmitted.
FCS field
The frame check sequence (FCS) field checks the correctness of PPP packet transmission.
Some mechanisms are used to ensure data packet transmission, increasing the cost and delay in data exchange at the application layer.
LCP-Encapsulated Packet Format
Figure 1 shows the LCP packet format.
Communicating devices negotiate to establish a PPP link by exchanging LCP packets. The LCP packets are encrypted in the Information field of a PPP data packet as the payload. The value of the Protocol field of a PPP data packet is always 0xC021.
During establishment of a PPP link, the Information field is variable and contains various packets, which need to be identified by corresponding fields.
Code field
The Code field is 1 byte in length and identifies the LCP packet type.
If a receiver receives an LCP packet with an unknown Code field from a sender, the receiver sends a Code-Reject packet to the sender.
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 |
Identifier field
The Identifier field is 1 byte long. It is used to match requests and replies. If a packet with an invalid Identifier field is received, the packet is discarded.
The sequence number of a Configure-Request packet usually begins with 0x01 and increases by 1 each time a Configure-Request packet is sent. After a receiver receives a Configure-Request packet, it must send a reply packet with the same sequence number as the received Configure-Request packet.
Length field
The Length field specifies the length of a negotiation packet, including the Code, Identifier, Length and Data fields.
The Length field specifies the total number of bytes in the negotiation packet.
The Length field value cannot exceed the MRU of the link. Bytes outside the range of the Length field are treated as padding and are ignored after they are received.
Data field
The Data field contains the contents of a negotiation packet, including the following fields:
The Type field specifies the negotiation option type.
The Length field specifies the total length of the Data field.
The Data field contains the contents of the negotiation option.
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 |



