In two-way communication, whenever a frame is received, the receiver waits and does not send the control frame 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.
Working Principle
Piggybacking data is a bit different from Sliding Protocol used in the OSI model. In the data frame itself, we incorporate one additional field for acknowledgment. Whenever party A wants to send data to party B, it will carry additional ACKinformation in the PUSH as well. For example, if A has received 5 bytes from B, which sequence number starts from 12340, A will place "ACK 12345" as well in the current PUSH packet to inform B it has received the bytes up to sequence number 12344 and expects to see 12345 next time. Three rules govern the piggybacking data transfer.
If station A wants to send both data and an acknowledgment, it keeps both fields there.
If station A wants to send the acknowledgment, after a short period of time to see whether a data frame needs to be sent, then decide whether send an ACK frame alone or attach a data frame with it.
If station A wants to send just the data, then the previous acknowledgment field is sent along with the data. Station B simply ignores this duplicate ACK frame upon receiving.
Advantages and Disadvantages
Advantages : Improves the efficiency, better use of available channel bandwidth. Disadvantages : The receiver can jamthe service if it has nothing to send. This can be solved by enabling a counter when a data frame is received. If the count ends and there is no data frame to send, the receiver will send an ACK control frame. The sender also adds a counter, if the counter ends without receiving confirmation, the sender assumes packet loss, and sends the frame again.