The Point-to-Point Protocol is another Data Link layer protocol, and one that you may already be familiar with. While it can be used to encapsulate data over dedicated leased lines, PPP is also commonly used for dial-up connections to corporate networks and the Internet. As such, PPP works over both synchronous and asynchronous serial interfaces. PPP is an IETF-standard protocol capable of encapsulating a variety of upper-layer protocols including IP, IPX, and AppleTalk to name but a few. It has largely replaced an earlier standard known as the Serial Link Internet Protocol (SLIP). One of the main disadvantages of SLIP is that it only supports point-to-point connections that use IP at the Network layer.
PPP offers a wide variety of configurable options that make it a robust choice for encapsulating data over leased lines. First and foremost, PPP supports authentication, which can be used to confirm the identity of equipment or users at either end of a point-to-point connection. Both the Password Authentication Protocol (PAP) and the Challenge Handshake Authentication Protocol (CHAP) can be used for authentication on a Cisco router. PPP also supports a variety of data compression techniques including Stacker, Predictor, and Microsoft Point-to-Point Compression (MPPC). Finally, PPP provides the ability to combine multiple synchronous and asynchronous serial links such that they work as a single logical connection, a technique referred to as PPP Multilink.
PPP is comprised of multiple protocols at the Data Link Layer, each with different areas of responsibility. It can also run over a variety of different physical layer standards, although EIA/TIA-232 (formerly RS-232) is the most commonly used. The ways in which the various PPP protocols and standards map to the OSI model is shown in the figure below.
Figure: Point-to-Point Protocol (PPP) protocols and standards as they relate to the OSI model.
The three protocols used by PPP at the Data Link layer are HDLC, the Link Control Protocol (LCP), and various implementations of the Network Control Protocol (NCP). Each is described below.
- HDLC. HDLC is the data framing method used over PPP links. In the case of PPP, the OSI standard version is used rather than the Cisco proprietary version. This standardization helps to ensure that PPP implementations by different vendors can communicate properly.
- LCP. The Link Control Protocol is used for establishing, testing, configuring, and terminating PPP connections. PPP options such as authentication, compression, and multilink are all configured by LCP. The three main types of LCP frames used on a PPP connection are link-establishment, link-maintenance, and link-termination
- NCP. Network Control Protocol frames are used to negotiate and configure the Network layer protocols that can be used over a PPP session. For example, there are specialized NCPs for IP (IPCP), IPX (IPXCP), AppleTalk (ATCP), and others. NCPs allow PPP to work in conjunction with many Network layer protocols over the same link.
There are four main steps in involved in establishing, maintaining, and terminating a PPP session, as outlined below.
- The first step in establishing a PPP session between devices involves both sending LCP link-establishment frames for configuration and testing purposes. These frames also define which options a given PPP host is using, such as compression, authentication, and multilink. If authentication is defined and required (PPP authentication is optional), it will take place during this phase.
- The second step is optional, and uses LCP frames to test the quality of a link. The information gathered can be used to determine whether the link is capable of handling various upper-layer protocols.
- In step 3, NCP frames are sent over a link to establish which individual Network layer protocols need to be configured. For example, a link may need to be configured to use IP, IPX, AppleTalk, and so forth.
- When a PPP session needs to be terminated, LCP link-termination frames are used to close the connection. The third LCP frame type (link-maintenance) is used to manage and debug PPP connections.