In this tutorial, we will be covering another protocol of the data link layer that is Point-To-Point Protocol.
PPP(Point-To-Point) protocol is a protocol used in the data link layer. The PPP protocol is mainly used to establish a direct connection between two nodes.
The Point-To-Point protocol mainly provides connections over multiple links.
This protocol defines how two devices can authenticate with each other.
PPP protocol also defines the format of the frames that are to be exchanged between the devices.
This protocol also defines how the data of the network layer are encapsulated in the data link frame.
The PPP protocol defines how the two devices can negotiate the establishment of the link and then can exchange the data.
This protocol provides multiple services of the network layer and also supports various network-layer protocols.
This protocol also provides connection over multiple links.
Some services that are not offered by the PPP protocol are as follows:
This protocol does not provide a flow control mechanism. Because when using this protocol the sender can send any number of frames to the receiver one after the other without even thinking about overwhelming the receiver.
This protocol does not provide any mechanism for addressing in order to handle the frames in the multipoint configuration.
The PPP protocol provides a very simple mechanism for error control. There is a CRC field that detects the errors. In case if there is a corrupted frame then it is discarded silently.
In the PPP protocol, the framing is done using the byte-oriented technique.
PPP Frame Format
Given below figure shows the format of the PPP Frame:
Let us discuss each field of the PPP frame format one by one:
The PPP frame mainly starts and ends with a 1-byte flag field that has the bit pattern: 01111110. It is important to note that this pattern is the same as the flag pattern used in HDLC. But there is a difference too and that is PPP is a byte-oriented protocol whereas the HDLC is a bit-oriented protocol.
The value of this field in PPP protocol is constant and it is set to 11111111 which is a broadcast address. The two parties can negotiate and can omit this byte.
The value of this field is also a constant value of 11000000. We have already told you that PPP does not provide any flow control and also error control is limited to error detection. The two parties can negotiate and can omit this byte.
This field defines what is being carried in the data field. It can either be user information or other information. By default, this field is 2 bytes long.
5. Payload field
This field carries the data from the network layer. The maximum length of this field is 1500 bytes. This can also be negotiated between the endpoints of communication.
It is simply a 2-byte or 4-byte standard CRC(Cyclic redundancy check).
Byte Stuffing in PPP
As we have told you that the major difference between PPP and HDLC is that PPP is a byte-oriented protocol. It means that the flag in the PPP is a byte and it is needed to be escaped wherever it appears in the data section of the frame.
The escape byte is 011111101 which means whenever the flag-like pattern appears in the data then the extra byte is stuffed that mainly tells the receiver that the next byte is not a flag.
Transition Phases in the PPP Protocol
The PPP protocol has to go through various phases and these are shown in the diagram given below;
In this phase, the link is not being used.No active carrier is there at the physical layer and the line is simply quiet.
If one of the nodes starts the communication then the connection goes into the established phase. In this phase, options are negotiated between the two parties. In case if the negotiation is done successfully then the system goes into the Authenticate phase (in case if there is the requirement of authentication otherwise goes into the network phase.)
Several packets are exchanged here.
This is an optional phase. During the establishment phase, the two nodes may decide not to skip this phase. If the two nodes decide to proceed with the authentication then they send several authentication packets.
If the result of this is successful then the connection goes into the networking phase otherwise goes into the termination phase.
In this phase, the negotiation of the protocols of the network layer takes place. The PPP protocol specifies that the two nodes establish an agreement of the network layer before the data at the network layer can be exchanged. The reason behind this is PPP supports multiple protocols at the network layer.
In case if any node is running multiple protocols at the network layer simultaneously then the receiving node needs to know that which protocol will receive the data.
In this phase the transfer of the data takes place. Whenever a connection reaches this phase, then the exchange of data packets can be started. The Connection remains in this phase until one of the endpoints in the communication terminates the connection.
In this phase, the connection is terminated. There is an exchange of several packets between two ends for house cleaning and then closing the link.
Components of PPP/ PPP stack
Basically, PPP is a layered protocol. There are three components of the PPP protocol and these are as follows:
Link Control Protocol
Network Control Protocol
Link Control protocol
This protocol is mainly responsible for establishing, maintaining, configuring, and terminating the links. The link control protocol provides the negotiation mechanism in order to set the options between the two endpoints.
Both endpoints of the link must need to reach an agreement about the options before the link can be established.
This protocol plays a very important role in the PPP protocol because the PPP is designed for use over the dial-up links where the verification of user identity is necessary. Thus this protocol is mainly used to authenticate the endpoints for the use of other services.
There are two protocols for authentication:
Network Control Protocol
The Network Control Protocol is mainly used for negotiating the parameters and facilities for the network layer.
For every higher-layer protocol supported by PPP protocol; there is one Network control protocol.
Some of the Network Control protocol of the PPP are as follows;
Internet Protocol Control Protocol (IPCP)
Internetwork Packet Exchange Control Protocol (IPXCP)
DECnet Phase IV Control Protocol (DNCP)
NetBIOS Frames Control Protocol (NBFCP)
IPv6 Control Protocol (IPV6CP)