What is piggybacking ?
Piggybacking means to ride over something. In real example , if some one already travelling with his bike where you also need to reach, you just take the lift. If some one not travelling, then you uses your own bike for ride. The concept is very common in computer networks. In reliable communication each packet have an acknowledgement from the receiver. SCTP protocol is one of the example of the transport layer reliable protocol. Piggybacking is an optimization method for utilization of underlying network capacity. A user message is piggybacked over an acknowledge message. For example in SCTP a single message may have two chunks one is for DATA and other is ACK. After piggybacking , there is single message over wire in place of two.
How piggybacking is done?
Here we will explain the concept with an example. There are two network computers , computer A and computer B. Both are using a reliable transport (e.g SCTP) protocol to communicate each other in both directions. A sends a packet to B and then waits for the response , before sending next packet. The node B does the same . If there is no piggybacking, then each packet have its response as an acknowledgement packet.
In piggybacking , if A sends the packet to B, and B have user packet to send to A. B waits for a user packet before sending the ACK. Once user packet is received B sends both ( acknowledge and user packet) in a a single message. On A , the message is processed as two packets, one is ACK and other is user packet. This saves bandwidth for the network.
Advantages and disadvantages of piggybacking:
This network optimization technique have some advantages and disadvantages as similar to most of the other things. The main disadvantage is , blocking of ack for some time. This may cause connection to go down or may cause service problem if delay is more than expected. To avoid problems, piggybacking uses very small duration timer.
On advantage side, better use of bandwidth. The underlying cable and intermediate switches, router etc, will be less loaded. If some one is paying cost to utilize network based on messages , then cost will also reduced.