The Point-to-Point Protocol (PPP) is a flexible, robust protocol that has replaced the Serial Line Internet Protocol (SLIP). By default PPP uses High-level Data Link Control (HDLC) framing, a connectionless Data Link Layer service. If reliable connection-oriented service is required, the implementation must request the “Numbered Mode Configuration Option” during the PPP link establishment phase. The three basic components are listed below.
- A mechanism to encapsulate and transmit data over serial links. This portion of PPP is based on HDLC.
- A Link Control Protocol (LCP) to establish, configure, authenticate, and test the connection.
- A collection of Network Control Protocols (NCP) to establish and configure different Network Layers.
PPP can detect transmission errors and multiplex several Network Layer protocols over a single link. PPP has gained acceptance from the TCP/IP community and is supported by many manufacturers, especially router manufacturers. It can operate over a dial-up or dedicated line, ISDN B-channels, SONET, or directly over fiber optic systems.
The accompanying visual shows the basic steps in establishing and terminating a PPP communications session. Although there are many protocols at many layers acting at the same time, the operation of PPP is relatively straightforward.
- The physical connection must be in place before any PPP link operations. This physical connection can be either a dedicated or dial-up connection.
- The two PPP hosts now exchange PPP Link Control Protocol (LCP) messages to establish the PPP connection, which involves configuring various link options. In some cases, authentication will also be provided. Authentication differs from identification in that authentication provides an independent method of verifying that the user has bona fide access to this system.
- The hosts exchange PPP Network Control Protocol (NCP) messages for each protocol that they want to use over this connection. NCP messages are exchanged to establish a logical connection for a given Network Layer protocol. For IP networks, the NCP would be the IP Control Protocol (IPCP). One of the functions of IPCP is to assign the IP addresses to be used over the connection. IPCP provides a mechanism for dynamically assigning IP addresses. In this way, an ISP could manage a pool of IP addresses for its dial-up customers.
- Once the NCP messages are exchanged, the two hosts can exchange data. Additional NCP messages are exchanged to terminate the logical Network Layer connection. Multiple Network Layer connections can be open at the same time, which might commonly occur in today’s multiprotocol environment. NCPs are currently defined for AppleTalk, DECnet, IP, NetWare, VINES, and bridging.
- When all Network Layer data exchanges are completed, additional LCP messages are sent to terminate the PPP logical connection.
- If it is a dial-up connection, the physical link connection will be terminated.
PPP is specified in a number of RFCs. The base documents are STD 51/RFC 1661 and RFC 1662, and there are a large number of additional specifications for the various NCPs.
PPP is the de facto standard for Layer 2 protocol used in ISPs for dial-up modem connections. Although all Internet traffic is IP, IP has two serious limitations. First, IP has no way to identify the beginning of an IP packet or to signify the end of an IP packet. Second, IP does not define what to send when there is no information to transmit. PPP is a Layer 2 protocol that overcomes these two deficiencies. Additionally, PPP enables authentication protocols like Password Authentication Protocol (PAP) and Challenge Handshake Authentication Protocol (CHAP).
As ISPs moved from supporting primarily dial-up Internet connections to cable modem and DSL connections, there was a strong desire to maintain reliance on the tried and true. In other words, “PPP is not broken so let’s not fix it.”
In spite of the strong desire to continue to use PPP, this protocol is was not directly compatible with either a cable modem or a DSL environment. As the name implies, PPP is a protocol that works on a point-to-point connection. In today’s broadband networks, an IP packet traveling from a customer’s computer to the ISP may move across several connections arranged end-to-end, each employing different Layer 2 technologies. PPP is not designed to traverse multiple connections or multiple transport protocols.
To address this, PPP was modified. There are two basic approaches used today:
- Tunnel PPP across the network using Point-to-Point Tunneling Protocol (PPTP) or Layer 2 Tunneling Protocol (L2TP)
- Modify PPP to work across a multi-link environment using Point-to-Point Protocol over Ethernet (PPPoE).
Each has advantages and drawbacks.
Another form of multi-link occurs when someone wishes to combine several connections in parallel (rather than in series). This can be done to increase or augment bandwidth, or to increase link resiliency. Again, PPP had to be modified to do this, and the result is Multi-Link Point-to-Point Protocol (MLPPP).
|<mp3>http://podcast.hill-vt.com/podsnacks/2007q3/ppp.mp3%7Cdownload</mp3> | Point-to-Point Protocol (PPP)|