Table of Contents#
- PPP History and Motivation
- PPP Architecture Overview
- Frame Structure and Framing
- Link Control Protocol (LCP)
- Authentication Protocols (PAP, CHAP, EAP)
- Network Control Protocol (NCP)
- PPP Session Lifecycle
- Common Implementations & Use Cases
- Best Practices for Deployment
- Modern PPP Variations (PPPoE, PPPoA)
- Conclusion
- References
1. PPP History and Motivation#
Developed in the early 1990s, PPP emerged as a standardized alternative to SLIP to address its critical limitations:
- Lack of authentication
- No dynamic IP assignment
- Limited to IP transport only
- Absence of error correction
- Proprietary implementations causing incompatibilities
PPP was standardized in RFC 1661 (1994) and evolved through RFC 1662 and RFC 1663, enabling reliable multi-protocol communication over synchronous/asynchronous circuits.
2. PPP Architecture Overview#
PPP operates in layers with modular components:
+-------------------------+
| Network Layer Protocol |
| (IP, IPX, AppleTalk) |
+-------------------------+
| PPP NCP Suites | <--- Negotiation protocols per network layer
| (IPCP, IPXCP, ATCP etc.) |
+-------------------------+
| Authentication Protocols|
| (PAP, CHAP, EAP) |
+-------------------------+
| Link Control Protocol |
| (LCP) | <--- Core control mechanism
+-------------------------+
| PPP Frame Encapsulation | <--- HDLC-like framing
+-------------------------+
| Physical Layer (Serial, |
| SONET/SDH, Ethernet) |
+-------------------------+
Key Features:
- Multi-protocol support through NCP
- Dynamic link parameter negotiation
- Loopback detection and link testing
- Optional authentication framework
3. Frame Structure and Framing#
PPP uses HDLC-based framing with modifications for flexibility:
| Field | Size | Purpose |
|-----------|--------|-----------------------------------------|
| Flag | 1 byte | Delimiter (0x7E) |
| Address | 1 byte | Broadcast address (0xFF) |
| Control | 1 byte | Unnumbered Information (0x03) |
| Protocol | 2 bytes| Encapsulated payload protocol (e.g., IP)|
| Data | Var. | Payload (max configurable) |
| FCS | 2/4 | Error detection (CRC) |
| Flag | 1 byte | End delimiter (0x7E) |Framing Methods:
- Asynchronous Lines: Escape sequence (0x7D) used before control characters
- Bit-Synchronous Links: Bit stuffing (five 1s insert 0)
- SONET/SDH: Frame alignment via payload pointers
Example Payloads:
0xC021→ LCP packet0x8021→ IP datagram0xC023→ PAP authentication
4. Link Control Protocol (LCP)#
Responsible for link establishment, maintenance, and termination. Operates through four-phase negotiation:
-
Link Configuration: Exchange Configure-Request packets containing options:
+-------------------+----------+----------------------------------+ | Option | Type | Purpose | +-------------------+----------+----------------------------------+ | Maximum-Receive | 1 | Max frame size (default 1500B) | | Unit (MRU) | | | | Authentication | 3 | Specify PAP/CHAP method | | Protocol | | | | Magic Number | 5 | Loop detection (random value) | | Protocol Field | 7 | Enable address/control field | | Compression | | compression | | Quality Protocol | 4 | Specify link quality monitor | +-------------------+----------+----------------------------------+ -
Link Quality Testing: Echo-Request/Echo-Reply messages to verify connectivity
-
Network Protocol Configuration: Triggered after link establishment
-
Link Termination: Terminate-Request/Terminate-Acknowledge packets
Common Practice: Always configure Magic Number option to prevent routing loops!
5. Authentication Protocols#
Password Authentication Protocol (PAP)#
- RFC 1334: Cleartext username/password exchange
- Flow:
Client -------------------> Server (Authenticate-Request) Client <------------------- Server (Authenticate-Ack/NAK)
Risk: Vulnerable to sniffing. Use only where encryption exists at lower layers.
Challenge Handshake Authentication Protocol (CHAP)#
- RFC 1994: Cryptographic challenge-response
- Flow:
Client -------------------> Server (Challenge) Client <------------------- Server (Response=MD5(id+secret+challenge)) (Success/Failure)
Security: Requires pre-shared secret. Periodic re-authentication.
Extensible Authentication Protocol (EAP)#
- RFC 2284: Framework supporting multiple methods (EAP-TLS, EAP-MD5)
- Advantage: Flexible backend integration with RADIUS/TACACS+
Best Practice:
| Scenario | Recommended Protocol | Why? |
|-------------------|----------------------|-----------------------------------|
| Plaintext Channel | Avoid PAP | Credential exposure |
| Unencrypted Lines | CHAP or EAP | Cryptographic protection |
| Large Enterprise | EAP with RADIUS | Centralized authentication |6. Network Control Protocol (NCP)#
Dynamically configures network-layer protocols after LCP establishes the link:
-
IP Control Protocol (IPCP): RFC 1332
Negotiates IP addresses (static/dynamic) and optionally DNS servers via Configuration Options:Option 1: IP Address Option 129: Primary DNS Server Option 131: Secondary DNS Server -
Example IPCP Negotiation:
Client -> Server: Configure-Request(IP=0.0.0.0, DNS1=0.0.0.0) Server -> Client: Configure-Nak(IP=192.168.1.2, DNS1=8.8.8.8) Client -> Server: Configure-Request(IP=192.168.1.2, DNS1=8.8.8.8) Server -> Client: Configure-Ack
7. PPP Session Lifecycle#
Complete state machine:
graph TD
A[Link Dead] -->|Initialize| B(Link Establishment)
B -->|Configure-Ack| C[Link Open]
B -->|Configure-Nak/Reject| B
C --> D[Authentication]
D -->|Success| E[Network Layer Protocol]
D -->|Failure| A
E -->|NCP Complete| F[Data Transfer]
F -->|Error/Loop detect| G[Link Termination]
F -->|Idle Timeout| G
G --> A8. Common Implementations & Use Cases#
DSL Connections via PPPoE#
Configuration Example (Cisco):
interface Ethernet0
pppoe enable
pppoe-client dial-pool-number 1
!
interface Dialer1
encapsulation ppp
ip address negotiated
ppp chap hostname USER@ISP
ppp chap password SECRET
ppp ipcp dns requestReal-World Flow:
- Client sends PPPoE Active Discovery Initiation (PADI)
- Access Concentrator replies with Offer (PADO)
- Session established via PADR/PADS
Router-to-Router Leased Line#
! Router A Configuration
interface Serial0/0
encapsulation ppp
ip address 10.0.0.1 255.255.255.252
ppp authentication chap
ppp chap hostname ROUTER_A
!
! Router B Configuration
interface Serial0/0
encapsulation ppp
ip address 10.0.0.2 255.255.255.252
ppp authentication chap
ppp chap hostname ROUTER_B
ppp chap password shared_secret9. Best Practices for Deployment#
- Mandatory CHAP/EAP: Avoid PAP unless explicitly required by legacy systems
- MRU/MSS Adjustment: Align MRU with physical media MTU (e.g., 1492 for PPPoE)
- Timeout Tuning:
- Set
ppp timeout authenticationto 10 seconds - Configure LCP echo intervals < 60 seconds for failure detection
- Set
- Disable Compression: Modern processors handle payloads faster than compression algorithms
- Persistent LCP Echo: Add
keepalive 10 3on Cisco IOS for fault detection
10. Modern PPP Variations#
PPP over Ethernet (PPPoE)#
- RFC 2516: Tunnel PPP frames over Ethernet networks
- Benefit: ISP subscriber management via PPP authentication/IP assignment
- Frame Overhead: 6 bytes (PPPoE header) + 6 bytes PPP = 12 bytes total
PPP over ATM (PPPoA)#
- RFC 2364: Used in DSL networks over ATM adaptation layer
- Efficiency: Lower overhead than PPPoE (no Ethernet header)
11. Conclusion#
PPP remains a resilient framework for point-to-point communications despite its age. Its modular design—separating core negotiation (LCP), authentication, and protocol transport (NCP)—provides flexibility that sustains relevance in modern networks. While primarily supplanted by Ethernet in LAN environments, PPP's adaptations (PPPoE, PPPoA) continue underpinning broadband infrastructures globally. Understanding PPP principles is essential for diagnosing legacy connections and appreciating contemporary protocol designs.
References#
- RFC 1661: "The Point-to-Point Protocol (PPP)"
- RFC 1662: "PPP in HDLC-like Framing"
- RFC 1994: "Challenge Handshake Authentication Protocol (CHAP)"
- RFC 2516: "A Method for Transmitting PPP Over Ethernet (PPPoE)"
- RFC 1332: "PPP Internet Protocol Control Protocol (IPCP)"
- Cisco IOS PPP Configuration Guides
- Microsoft Windows PPP Architecture Documentation
- ITU-T Recommendation X.25 (Packet Layer Protocol over PPP)
Revision History:
- Initial Release: Sept 2023
- Updated: Dec 2023 (Added EAP details)
Author: Network Engineering Team @ ProtocolInsights.org