Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Point-to-Point Protocol

From Wikipedia, the free encyclopedia
Point-to-Point Protocol
Data link layer communication protocol

Incomputer networking,Point-to-Point Protocol (PPP) is adata link layer (layer 2)communication protocol between two routers directly without any host or any other networking in between.[1] It can provide loop detection,authentication, transmissionencryption,[2] anddata compression.

PPP is used over many types of physical networks, includingserial cable,phone line,trunk line,cellular telephone, specialized radio links,ISDN, andfiber optic links such asSONET. Since IP packets cannot be transmitted over amodem line on their own without some data link protocol that can identify where the transmitted frame starts and where it ends,Internet service providers (ISPs) have used PPP for customerdial-up access to theInternet.

PPP is used on formerdial-up networking lines.[3] Two derivatives of PPP,Point-to-Point Protocol over Ethernet (PPPoE) andPoint-to-Point Protocol over ATM (PPPoA), are used most commonly by ISPs to establish a digital subscriber line (DSL) Internet service LP connection with customers.

Description

[edit]

PPP is very commonly used as adata-link-layer protocol for connection oversynchronous andasynchronous circuits, where it has largely superseded the olderSerial Line Internet Protocol (SLIP) and telephone company mandated standards (such asLink Access Protocol, Balanced (LAPB) in theX.25 protocol suite). The only requirement for PPP is that the circuit provided beduplex. PPP was made to work with numerousnetwork-layer protocols, includingInternet Protocol (IP),TRILL, Novell'sInternetwork Packet Exchange (IPX),NBF, DEC net andAppleTalk. 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.[4] It resends any damaged packets.

PPP was designed somewhat after the originalHDLC specifications. The people who had designed PPP included many additional features that had been seen only in proprietary data-link protocols up to that time. PPP is specified in RFC 1661.

RFC 2516 describesPoint-to-Point Protocol over Ethernet (PPPoE) as a method for transmitting PPP overEthernet that is sometimes used withDSL. RFC 2364 describesPoint-to-Point Protocol over ATM (PPPoA) as a method for transmitting PPP overATM Adaptation Layer 5 (AAL5), which is also a common alternative to PPPoE used with DSL.

PPP,PPPoE andPPPoA are widely used inWAN lines.

PPP is a layered protocol that has three components:[4]

  1. An encapsulation component that is used to transmit datagrams over the specifiedphysical layer.
  2. ALink Control Protocol (LCP) to establish, configure, and test the link as well as negotiate settings, options and the use of features.
  3. 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

[edit]

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 settingdatagram 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 describesChallenge-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 isExtensible Authentication Protocol (EAP) described in RFC 2284.

After the link has been established, additional network (layer 3) configuration may take place. Most commonly, theInternet Protocol Control Protocol (IPCP) is used, althoughInternetwork Packet Exchange Control Protocol (IPXCP) andAppleTalk Control Protocol (ATCP) were once popular.[5][6]Internet Protocol Version 6 Control Protocol (IPv6CP) will see extended use in the future, whenIPv6 replacesIPv4 as the dominant layer-3 protocol.

Multiple network layer protocols

[edit]
PPP architecture
IP
LCPCHAPPAPEAPIPCP
PPP encapsulation
HDLC-like FramingPPPoEPPPoA
RS-232POSEthernetATM
SONET/SDH

PPP permits multiple network layer protocols to operate on the same communication link. For every network layer protocol used, a separateNetwork 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:

Looped link detection

[edit]

PPP detects looped links using a feature involvingmagic 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

[edit]

The previous section introduced the use of LCP options to meet specific WAN connection requirements. PPP may include the following LCP options:

  • Authentication - Peer routers exchange authentication messages. Some authentication choices arePassword Authentication Protocol (PAP),Challenge Handshake Authentication Protocol (CHAP), andExtensible Authentication Protocol (EAP). Authentication is explained in the next section.
  • Compression - Increases the effective throughput on PPP connections by reducing the amount of data in the frame that must travel across the link, using a agreed-on algorithm such as BSDcompress or Deflate. The protocol decompresses the frame at its destination. In addition, there are compression settings for control packets and header fields. SeeRFC 1962 for more details.
  • Error detection - Identifies fault conditions. The Quality and Magic Number options help ensure a reliable, loop-free data link. The Magic Number field helps in detecting links that are in a looped-back condition. Until the Magic-Number Configuration Option has been successfully negotiated, the Magic-Number must be transmitted as zero. Magic numbers are generated randomly at each end of the connection.
  • Multilink - Provides load balancing several interfaces used by PPP through Multilink PPP (see below).

PPP frame

[edit]

Structure

[edit]

PPP frames are variants ofHDLC frames:

NameNumber of bytesDescription
Flag10x7E, the beginning of a PPP frame
Address10xFF, standard broadcast address
Control10x03, unnumbered data
Protocol2PPP ID of embedded data
Informationvariable (0 or more)datagram
Paddingvariable (0 or more)optional padding
Frame Check Sequence2frame checksum
Flag10x7E, omitted for successive PPP packets

If both peers agree to Address field and Control field compression during LCP, then those fields are omitted. Likewise if both peers agree to Protocol field compression, then the 0x00 byte can be omitted.

The Protocol field indicates the type of payload packet: 0xC021 forLCP, 0x80xy for variousNCPs, 0x0021 for IP, 0x0029 AppleTalk, 0x002B forIPX, 0x003D for Multilink, 0x003F forNetBIOS, 0x00FD forMPPC andMPPE, etc.[7] PPP is limited, and cannot contain generalLayer 3 data, unlikeEther Type.

The Information field contains the PPP payload; it has a variable length with a negotiated maximum called theMaximum Transmission Unit. By default, the maximum is 1500octets. 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

[edit]

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

NameNumber of bytesDescription
Flag1indicates frame's begin or end
Address1broadcast address
Control1control byte
Protocol1 or 2 or 3l in information field
Informationvariable (0 or more)datagram
Paddingvariable (0 or more)optional padding
FCS2 (or 4)error check

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.

Theframe check sequence (FCS) field is used for determining 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 aCRC 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 (2 bytes) or 32 bits (4 bytes) in size (default is 16 bits - Polynomialx16 +x12 +x5 + 1).

The FCS is calculated over the Address, Control, Protocol, Information and Padding fields after the message has been encapsulated.

Line activation and phases

[edit]
Link Dead
This phase occurs when the link fails, or one side has been told to disconnect (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 in establishing 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 decide to tear down the link automatically, if the link suddenly fails, or if the user decides to hang up a connection.

Over several links

[edit]

Multilink PPP

[edit]

Multilink PPP (also referred to asMLPPP,MP,MPPP,MLP, or Multilink) provides a method for spreading traffic across multiple distinct PPP connections. It is defined in RFC 1990. It can be used, for example, to connect a home computer to an Internet Service Provider using two traditional 56k modems, or to connect a company through two leased lines.

On a single PPP line frames cannot arrive out of order, but this is possible when the frames are divided among multiple PPP connections. Therefore, Multilink PPP must number the fragments so they can be put in the right order again when they arrive.

Multilink PPP is an example of alink aggregation technology.Cisco IOS Release 11.1 and later supports Multilink PPP.

Multiclass PPP

[edit]

With PPP, one cannot establish several simultaneous distinct PPP connections over a single link.

That's not possible with Multilink PPP either. Multilink PPP uses contiguous numbers for all the fragments of a packet, and as a consequence it is not possible to suspend the sending of a sequence of fragments of one packet in order to send another packet. This prevents from running Multilink PPP multiple times on the same links.

Multiclass PPP is a kind of Multilink PPP where each "class" of traffic uses a separate sequence number space and reassembly buffer. Multiclass PPP is defined in RFC 2686

Tunnels

[edit]
Simplified OSIprotocol stack for an exampleSSH+PPP tunnel
ApplicationFTPSMTPHTTPDNS
TransportTCPUDP
NetworkIP
Data LinkPPP
ApplicationSSH
TransportTCP
NetworkIP
Data LinkEthernetATM
PhysicalCables, Hubs, and so on

Derived protocols

[edit]

PPTP (Point-to-Point Tunneling Protocol) is a form of PPP between two hosts viaGRE using encryption (MPPE) and compression (MPPC).

As a layer 2 protocol between both ends of a tunnel

[edit]

Many protocols can be used totunnel data over IP networks. Some of them, likeSSL,SSH, orL2TP createvirtual network interfaces and give the impression of direct physical connections between the tunnel endpoints. On aLinux host for example, these interfaces would be calledtun0 orppp0.

As there are only two endpoints on a tunnel, the tunnel is a point-to-point connection and PPP is a natural choice as a data link layer protocol between the virtual network interfaces. PPP can assign IP addresses to these virtual interfaces, and these IP addresses can be used, for example, to route between the networks on both sides of the tunnel.

Historically,IPsec in tunneling mode does not create virtual physical interfaces at the end of the tunnel as the tunnel is handled directly by the TCP/IP stack.L2TP can be used to provide these interfaces, this technique is called L2TP/IPsec. In this case too, PPP provides IP addresses to the extremities of the tunnel. Modern IPsec implementations can offervirtual tunnel interfaces orvti interfaces. VTI interfaces have been available on proprietary platforms since the mid 2000s[8] and in Linux since 2012.[9]

IETF standards

[edit]

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, includingTCP/IP,DECnet,AppleTalk,IPX, work with PPP; they can be found on the Datatracker IETF website.[10]

See also

[edit]

References

[edit]
  1. ^RFC 1661
  2. ^RFC 1968
  3. ^"41. Point-to-Point Protocol -- Dialup Networking",Linux: Rute User's Tutorial and Exposition, retrieved2024-08-20
  4. ^abStevens 1994, pp. 26–27, sec 2.6: "PPP: Point-to-Point Protocol"
  5. ^Simpson, William A. (December 1993).The PPP Internetworking Packet Exchange Control Protocol (IPXCP) (Report). Internet Engineering Task Force.
  6. ^Parker, J. Bradford (November 1992).The PPP AppleTalk Control Protocol (ATCP) (Report). Internet Engineering Task Force.
  7. ^"Point-to-Point (PPP) Protocol Field Assignments". IANA. Retrieved3 September 2015.
  8. ^Configuring a Virtual Tunnel Interface with IP Security Oct 26, 2006
  9. ^Linux Kernel patch - net/ipv4: VTI support new module for ip_vti
  10. ^"IETF Datatracker". RetrievedAugust 26, 2023.

Works cited

[edit]
National
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Point-to-Point_Protocol&oldid=1337070850"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp