Point-to-Point Protocol

From Wikipedia, the free encyclopedia

(Redirected from Point-to-point protocol)
Jump to: navigation, search
The five-layer TCP/IP model
5. Application layer

DHCP · DNS · FTP · Gopher · HTTP · IMAP4 · IRC · NNTP · XMPP · POP3 · SIP · SMTP · SNMP · SSH · TELNET · RPC · RTCP · RTSP · TLS · SDP · SOAP · GTP · STUN · NTP · (more)

4. Transport layer
TCP · UDP · DCCP · SCTP · RTP · RSVP · IGMP · (more)
3. Network/Internet layer
IP (IPv4 · IPv6) · OSPF · IS-IS · BGP · IPsec · ARP · RARP · RIP · ICMP · ICMPv6 · (more)
2. Data link layer
802.11 (WLAN) · 802.16 · Wi-Fi · WiMAX · ATM · DTM · Token ring · Ethernet · FDDI · Frame Relay · GPRS · EVDO · HSPA · HDLC · PPP · PPTP · L2TP · ISDN · ARCnet · (more)
1. Physical layer
Ethernet physical layer · Modems · PLC · SONET/SDH · G.709 · Optical fiber · Coaxial cable · Twisted pair · (more)
This box: view  talk  edit

In networking, the Point-to-Point Protocol, or PPP, is a data link protocol commonly used to establish a direct connection between two nodes over serial cable, phone line, trunk line, cellular telephone, specialized radio links, or fiber optic links. Most Internet service providers use PPP for customers' dial-up access to the Internet. Two common encapsulated forms of PPP, Point-to-Point Protocol over Ethernet (PPPoE) or Point-to-Point Protocol over ATM (PPPoA), are used in a similar role with Digital Subscriber Line (DSL) Internet service.

PPP is commonly used to act as a data link layer protocol for connection over synchronous and asynchronous circuits, where it has largely superseded the older, non-standard Serial Line Internet Protocol (SLIP), and telephone company mandated standards (such as Link Access Protocol, Balanced (LAPB) in the X.25 protocol suite). PPP was designed to work with numerous network layer protocols, including Internet Protocol (IP), Novell's Internetwork Packet Exchange (IPX), NBF and AppleTalk.

Contents

[edit] 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.

PPP is described by Internet Engineering Task Force (IETF) RFC 1661.

[edit] 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.

RFC 1994 describes Challenge-handshake authentication protocol (CHAP), preferred for establishing dial-up connections with ISPs. Although deprecated, Password authentication protocol (PAP) is often used.

After the link has been established, additional network (layer 3) configuration may take place. Most commonly, the Internet Protocol Control Protocol (IPCP) is available, although Internetwork Packet Exchange Control Protocol (IPXCP) and AppleTalk Control Protocol (ATCP) were once very popular.

Both PPP and Dynamic Host Configuration Protocol (DHCP) offer support for automatic configuration of interfaces. While DHCP is used primarily for multi-point access, it may also be used on point-to-point links but only after PPP has completed establishment of the essential link and network configuration.

[edit] Multiple network layer protocols

PPP permits multiple network layer protocols to operate on the same communications 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.

For example, Internet Protocol (IP) uses the IP Control Protocol (IPCP), and Internetwork Packet Exchange (IPX) uses the Novell IPX Control Protocol (IPXCP). NCPs include fields containing standardized codes to indicate the network layer protocol type that PPP encapsulates.

[edit] 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.

[edit] 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[citation needed].
  • Network Control Protocol is used for negotiating network-layer information, e.g. network address or compression options, after the connection has been established.

[edit] PPP frame

Name Number of bytes Description
Protocol 1 or 2 setting of protocol in data field
Information variable (0 or more) datagram
Padding variable (0 or more) optional padding

The Protocol field indicates the kind of payload packet (e.g. LCP, NCP, IP, IPX, AppleTalk, etc.).

The Information field contains the PPP payload; it has a variable length with a negotiated maximum. 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.

[edit] 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.

Although these are not standard applications, PPP is also used over broadband connections. RFC 2516 describes Point-to-Point Protocol over Ethernet (PPPoE), a method for transmitting PPP over Ethernet that is sometimes used with DSL. RFC 2364 describes Point-to-Point Protocol over ATM (PPPoA), a method for transmitting PPP over ATM Adaptation Layer 5 (AAL5), which is also sometimes used with DSL.

[edit] PPP line activation and states

The states of the Point to Point Protocol are such:

  • Dead (or idle), no active connection or carrier.
  • Establish, where Link Control Protocol negotiation begins.
  • Authenticate, where two terminal points authenticate each other. Either PAP, or CHAP protocol comes in use at this point.
  • Network, where the appropriate Network Control Protocol is invoked. IPCP is used to establish IP service over the network
  • Open, where data transport takes place.
  • Terminate, where the connection requires termination.

[edit] 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...

[edit] 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.

RFC 2615 is also used in Packet over SONET/SDH (PoS) transmissions.

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).

[edit] RFCs

  • RFC 1661, Standard 51, The Point-to-Point Protocol (PPP)
  • RFC 1662, Standard 51, PPP in HDLC-like Framing
  • RFC 1994, PPP Challenge Handshake Authentication Protocol (CHAP)
  • RFC 2153, Informational, PPP Vendor Extensions
  • RFC 2472, Internet Protocol version 6 over PPP
  • RFC 2687, Proposed Standard, PPP in a Real-time Oriented HDLC-like Framing

[edit] See also

Personal tools