Sliding Window Protocols
Sliding Window Protocols
Sliding Window Protocols
• In the previous protocols, data frames were transmitted in one direction only. In most
practical situations, there is a need for transmitting data in both directions. • One way of
achieving full-duplex data transmission is to have two separate communication channels and
use each one for simplex data traffic (in different directions). • If this is done, we have two
separate physical circuits, each with a ''forward'' channel (for data) and a ''reverse'' channel
(for acknowledgements).
• In both cases the bandwidth of the reverse channel is almost entirely wasted. • In effect, the
user is paying for two circuits but using only the capacity of one. • A better idea is to use the
same circuit for data in both directions.
• Although interleaving data and control frames on the same circuit is an improvement over
having two separate physical circuits, yet another improvement is possible. • When a data
frame arrives, instead of immediately sending a separate control frame, the receiver restrains
itself and waits until the network layer passes it the next packet (this is possible only when
both parties mutually transfer data).
• The acknowledgement is attached to the outgoing data frame (using the ack field in the
frame header). • In effect, the acknowledgement gets a free ride on the next outgoing data
frame. • The technique of temporarily delaying outgoing acknowledgements so that they can
be hooked onto the next outgoing data frame is known as piggybacking.
• The principal advantage of using piggybacking over having distinct acknowledgement
frames is a better use of the available channel bandwidth. • Other advantage is ack field in
the frame header costs only a few bits, whereas a separate frame would need a header, the
acknowledgement, and a checksum.