PPP is very commonly used as a
data-link-layer protocol for connection over
synchronous and
asynchronous circuits, where it has largely superseded the older
Serial Line Internet Protocol (SLIP) and telephone company mandated standards (such as
Link Access Protocol, Balanced (LAPB) in the
X.25 protocol suite). The only requirement for PPP is that the circuit provided be
duplex. PPP was made to work with numerous
network-layer protocols, including
Internet Protocol (IP),
TRILL, Novell's
Internetwork Packet Exchange (IPX),
NBF, DEC net and
AppleTalk. Like SLIP, this is a full Internet connection over telephone lines via modem. It is more reliable than SLIP because it double checks to ensure Internet packets arrive intact. • An encapsulation component that is used to transmit datagrams over the specified
physical layer. • A
Link Control Protocol (LCP) to establish, configure, and test the link as well as negotiate settings, options and the use of features. • One or more Network Control Protocols (NCP) used to negotiate optional configuration parameters and facilities for the network layer. There is one NCP for each higher-layer protocol supported by PPP.
Automatic self configuration LCP initiates and terminates connections gracefully, allowing hosts to negotiate connection options. It is an integral part of PPP, and is defined in the same standard specification. LCP provides automatic configuration of the interfaces at each end (such as setting
datagram size, escaped characters, and magic numbers) and for selecting optional authentication. The LCP protocol runs on top of PPP (with PPP protocol number 0xC021) and therefore a basic PPP connection has to be established before LCP is able to configure it. RFC 1994 describes
Challenge-Handshake Authentication Protocol (CHAP), which is preferred for establishing dial-up connections with ISPs. Although deprecated,
Password Authentication Protocol (PAP) is still sometimes used. Another option for authentication over PPP is
Extensible Authentication Protocol (EAP) described in RFC 2284. After the link has been established, additional network (
layer 3) configuration may take place. Most commonly, the
Internet Protocol Control Protocol (IPCP) is used, although
Internetwork Packet Exchange Control Protocol (IPXCP) and
AppleTalk Control Protocol (ATCP) were once popular.
Internet Protocol Version 6 Control Protocol (IPv6CP) will see extended use in the future, when
IPv6 replaces
IPv4 as the dominant layer-3 protocol.
Multiple network layer protocols PPP permits multiple network layer protocols to operate on the same communication link. For every network layer protocol used, a separate
Network Control Protocol (
NCP) is provided in order to encapsulate and negotiate options for the multiple network layer protocols. It negotiates network-layer information, e.g.
network address or compression options, after the connection has been established. For example, IP uses IPCP, and Internetwork Packet Exchange (IPX) uses the Novell IPX Control Protocol (
IPX/SPX). NCPs include fields containing standardized codes to indicate the network layer protocol type that the PPP connection encapsulates. The following NCPs may be used with PPP: • IPCP for IP, protocol code number 0x8021, RFC 1332 • the OSI Network Layer Control Protocol (OSINLCP) for the various
OSI network layer protocols, protocol code number 0x8023, RFC 1377 • the
AppleTalk Control Protocol (ATCP) for
AppleTalk, protocol code number 0x8029, RFC 1378 • the
Internetwork Packet Exchange Control Protocol (IPXCP) for the
Internet Packet Exchange, protocol code number 0x802B, RFC 1552 • the DEC net Phase IV Control Protocol (DNCP) for DNA Phase IV Routing protocol (
DEC net Phase IV), protocol code number 0x8027, RFC 1762 • the NetBIOS Frames Control Protocol (NBFCP) for the
NetBIOS Frames protocol (or
NetBEUI as it was called before that), protocol code number 0x803F, RFC 2097 • the
IPv6 Control Protocol (IPV6CP) for
IPv6, protocol code number 0x8057, RFC 5072
Looped link detection PPP detects looped links using a feature involving
magic numbers. When the node sends PPP LCP messages, these messages may include a magic number. If a line is looped, the node receives an LCP message with its own magic number, instead of getting a message with the peer's magic number. ==Configuration options==