Point-to-Point Protocol (PPP) is a data link layer communication protocol between two routers directly without any host or any other networking in between. It is used to transmit multiprotocol data between two directly connected computers. PPP is a byte-oriented protocol that is widely used in broadband communications having heavy loads and high speeds. It is a full-duplex protocol that can be used on a variety of physical media, including twisted-pair copper wire, fiber optic lines, or satellite links.
PPP provides several services, including defining the frame format of the data to be transmitted, defining the procedure of establishing a link between two points and exchanging data, stating the method of encapsulation of network layer data in the frame, stating authentication rules of the communicating devices, providing an address for network communication, providing connections over multiple links, and supporting a variety of network layer protocols by providing a range of services.
PPP is 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). PPP is defined in RFC 1661 (The Point-to-Point Protocol, July 1994).
The PPP server sits idle until a PPP client attempts to establish a connection. If the PPP server is configured for authentication, the server responds to the client with an authentication request. PPP can use Challenge-Handshake Authentication Protocol or Password Authentication Protocol. Once authenticated, the final step is to establish the Network Control Protocol (NCP) used between systems. The most commonly used NCP is Internet Protocol Control Protocol.
Variations of PPP exist for running over Ethernet using the PPP over Ethernet (PPPoE) specification and for asynchronous transfer mode using the PPP over ATM specification.