• In all practical situations, the transmission of data needs to be bi-directional. This is called as full-duplex transmission.
• We can achieve this full duplex transmission i.e. by having two separate channels-one for forward data transfer and the other for separate transfer i.e. for acknowledgements.
• A better solution would be to use each channel (forward & reverse) to transmit frames both ways, with both channels having the same capacity. If A and B are two users. Then the data frames from A to Bare intermixed with the acknowledgements from A to B.
• One more improvement that can be made is piggybacking. The concept is explained as follows:
In two way communication, Whenever a data frame is received, the received waits and does not send the control frame (acknowledgement) back to the sender immediately.
The receiver waits until its network layer passes in the next data packet. The delayed acknowledgement is then attached to this outgoing data frame.
This technique of temporarily delaying the acknowledgement so that it can be hooked with next outgoing data frame is known as piggybacking.
• The major advantage of piggybacking is better use of available channel bandwidth.
• The disadvantages of piggybacking are:
1. Additional complexity.
2. If the data link layer waits too long before transmitting the acknowledgement, then retransmission of frame would take place.