DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 
Configuring the Point-to-Point Protocol (PPP)

PPP negotiation

Before a PPP link is established and data can flow over it, the PPP daemon must read the parameters in the endpoint configuration and pass these parameters to the PPP driver. The driver must then negotiate the characteristics of the link with the remote host using the endpoint parameters as a starting point. The link is established during negotiation if the local and remote hosts can agree on its characteristics. The link fails if the two hosts cannot agree.

For negotiation between the local and remote hosts to occur, a physical connection must be established between the two hosts. This is the same physical connection that will carry the data of the PPP link when it is established. The difference is that at the time of negotiation, the only communication permitted is between the PPP software on each host. Once negotiation is successful, the PPP software only manages the link and routes data over the link; use of the link belongs to the user-level software such as networking applications. An established PPP link is one that has successfully completed PPP negotiation.

There are four stages of PPP negotiation:


1. Initiation Configuration Protocol (ICP)
This stage is internal to the local system running SCO PPP. No specified configuration parameters are negotiated here.

2. Link Control Protocol (LCP)
The PPP driver negotiates these parameters with the remote host:

For these parameters, negotiation means that the local host may change the value or state of a parameter from that specified in its configuration file and accept the value or state suggested by the remote host.


3. Optional authentication
The PPP driver authenticates the remote host using PAP or CHAP if the local or remote side requires it.

4. Internet Protocol Control Protocol (IPCP)
The PPP driver negotiates these parameters with the remote host:

Header compression negotiation means that the local host may change the state of this parameter from that specified in its configuration file and accept the state suggested by the remote host.

IP address negotiation is a little different from negotiation of the TCP/IP header compression or the LCP-stage negotiated parameters. This is because IP addresses are significant to both the interface and the link; the other parameters are only significant to the link.

IP address negotiation is initiated by the local host on every link by default. Local host initiation of IP address negotiation can be turned off by specifying the noipaddr parameter in the link configuration. Even if IP address negotiation is not initiated by the local host, it may still be initiated by the remote host.

By default, the remote host is requested to use local and remote IP addresses provided by the local host. If the remote host refuses this request or no local or remote addresses are configured locally, the remote host is allowed to provide local and remote addresses. If neither end of the link can provide the addresses, negotiation will fail and the link will be torn down.

If IP address negotiation is disabled, the local host cannot verify that the remote host is using the same IP addresses. If the remote host is using different addresses, the link will be established, but the correct routing of PPP packets to this link is doubtful.

An incoming link fails if the remote host supplies the IP addresses and either address supplied is a duplicate of an address already assigned to an interface on the local system. In this situation, the local system establishes a link with the remote system for purposes of PPP negotiation. When IP negotiation takes place at this time, the local system attempts to build an interface using the IP addresses supplied by the remote system. When the IP layer detects the duplication, it generates an error code that causes PPP to disconnect the link.


Next topic: PPP configuration files
Previous topic: SCO PPP features

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003