Basic Features

PPP was designed somewhat after the original HDLC specifications. The designers of PPP included many additional features that had been seen only in various proprietary data-link protocols up to that time.

Automatic self configuration

Link Control Protocol (LCP) is an integral part of PPP, and 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 atop PPP (with PPP protocol number 0xC021) and therefore a basic PPP connection has to be established before LCP is able to configure it.

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.

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.

Most important features

Link Control Protocol initiates and terminates connections gracefully, allowing hosts to negotiate connection options. It also supports both byte- and bit-oriented encodings.

Network Control Protocol is used for negotiating network-layer information, e.g. network address or compression options, after the connection has been established.

The Information field contains the PPP payload; it has a variable length with a negotiated maximum called the Maximum Transmission Unit. By default the maximum is 1500 octets. It might be padded on transmission; if the information for a particular protocol can be padded, that protocol must allow information to be distinguished from padding.

Encapsulation

PPP frames are encapsulated in a lower-layer protocol that provides framing and may provide other functions such as a checksum to detect transmission errors. PPP on serial links is usually encapsulated in a framing similar to HDLC, described by IETF RFC 1662.

Name

Number of bytes

Description

Flag

1

indicates frame's begin or end

Address

1

broadcast address

Control

1

control byte

Protocol

1 or 2

setting of protocol in information field

Information

variable (0 or more)

datagram

Padding

variable (0 or more)

optional padding

FCS

2 (or 4)

error check sum

The Flag field is present when PPP with HDLC-like framing is used.

The Address and Control fields always have the value hex FF (for "all stations") and hex 03 (for "unnumbered information"), and can be omitted whenever PPP LCP Address-and-Control-Field-Compression (ACFC) is negotiated.

The Frame Check Sequence (FCS) field is used to determine whether an individual frame has an error. It contains a checksum computed over the frame to provide basic protection against errors in transmission. This is a CRC code similar to the one used for other layer two protocol error protection schemes such as the one used in Ethernet. According to RFC 1662, it can be either 16 bits (2bytes) or 32 bits (4 bytes) in size (default is 16 bits - Polynomial x16 + x12 + x5 + 1).

The FCS is calculated over the Address, Control, Protocol, Information and Padding fields.

PPP line activation and phases

The phases of the Point to Point Protocol according to RFC 1661 are listed below:

Link Dead. This phase occurs when the link fails, or one side has been told not to connect (e.g. a user has finished his or her dialup connection.)

Link Establishment Phase. This phase is where Link Control Protocol negotiation is attempted. If successful, control goes either to the authentication phase or the Network-Layer Protocol phase, depending on whether authentication is desired.

Authentication Phase. This phase is optional. It allows the sides to authenticate each other before a connection is established. If successful, control goes to the network-layer protocol phase.

Network-Layer Protocol Phase. This phase is where each desired protocols' Network Control Protocols are invoked. For example, IPCP is used to establish IP service over the line. Data transport for all protocols which are successfully started with their network control protocols also occurs in this phase. Closing down of network protocols also occur in this phase.

Link Termination Phase. This phase closes down this connection. This can happen if there is an authentication failure, if there are so many checksum errors that the two parties to the link decide to tear down the link automatically, if the link suddenly fails, or if the user decides to hang up his connection. This phase tries to close everything down as gracefully as possible depending on the circumstances.

Multiclass PPP

*

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

MP's monotonically increasing sequence numbering (contiguous numbers are needed for all fragments of a packet) does not allow suspension of the sending of a sequence of fragments of one packet in order to send another packet. The obvious approach to providing more than one level of suspension with PPP Multilink is to run Multilink multiple times over one link.
Multilink as it is defined provides no way for more than one instance to be active. Each class runs a separate copy of the mechanism defined i.e. uses a separate sequence number space and reassembly buffer. See RFC 2686...

Other features

*

>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Numerous documents on PPP
have been published through the RFC process since July 1990, including
various authentication, encryption, and compression methods, and the use of
PPP in conjunction with other network protocols.

PPTP is a form of PPP between two hosts via GRE. It is often used to set up a VPN, with optional encryption (MPPE) or compression (MPPC).

RFCs

PPP is defined in RFC 1661 (The Point-to-Point Protocol, July 1994). RFC 1547 (Requirements for an Internet Standard Point-to-Point Protocol, December 1993) provides historical information about the need for PPP and its development. A series of related RFCs have been written to define how a variety of network control protocols-including TCP/IP, DECnet, AppleTalk, IPX, and others-work with PPP.