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