Sender-side solution to Silly window syndrome

Algorithm

If there is new data to send:

  • If the receiver window size >= MSS and available data is >= MSS:
    • Send complete MSS segment now
  • Else, if there is unconfirmed data still in the pipe:
    • Enqueue data in the buffer until an acknowledgment is received
  • Otherwise: (no packets in flight, all ACKs are received)
    • Send data immediately, no matter how small the packet is