One way to structure a communications protocol is
to have the receiver acknowledge every packet
received from a sender. Although this is the most
reliable method, it can add unnecessary overhead,
especially on fairly reliable connection media.
Windowing is a compromise that reduces overhead
by acknowledging packets only after a specified
number have been received.
The window size from one end station informs the
other side of the connection how much it can accept
at one time. With a window size of 1, each segment
must be acknowledged before another segment is
sent. This is the least efficient use of bandwidth. A
window size of 7 means that an acknowledgment
needs to be sent after the receipt of seven segments;
this allows better utilization of bandwidth. A windowing
example is shown in the figure.