What is Silly Window Syndrome in TCP?


TCP is a transmission control protocol and a connection-oriented protocol. It provides a flow control and error control facility for information in between the sender and the receiver.

A protocol which will be used in the data link layer which will support the reliable and sequential delivery of data frames. This protocol is the sliding window protocol.

This sliding window facility is also used with the TCP which helps to transfer multiple frames by a sender at a time before receiving an acknowledgment from the receiver.

The TCP will maintain a proper data flow.

If the sender data transmitting speed will be high compared with the receivers receiving speed the overflow will be there. This will cause data loss. This can be controlled by TCP. That is providing the window concept.

Due to the bad implementation of TCP, the silly window syndrome may arise.

This will reduce the performance. Due to this problem the data transmission becomes inefficient.

Because of this problem the sender window may shrink to a small size.

So the transmitting data size also becomes smaller than the TCP header.

Problems causing Silly window syndrome

The syndrome may arise because of the following problems −

  • Sender windows transmit one byte of data repeatedly.

  • Receiver windows accept one byte of data repeatedly.

Let us understand them in detail.

Sender windows transmit one byte of data repeatedly

Step 1 − If an application which will generate only one byte of data. The TCP will transmit this small segment of data.

Step 2 − All time the application generates a single byte of data and the window transmits it.

Step 3 − This is because the transmission process becomes slow and inefficient. Here the sender window transmits one byte of data repeatedly.

Receiver window accepting one byte of data repeatedly

Step 1 − Suppose the receiver is not able to process all the incoming data.

Step 2 − In such a case, the receiver advertises a small window size.

Step 3 − The process repeats and the window size becomes too small.

Step 4 − Thus, the receiver repeatedly advertises window size of one byte.

Step 5 − Finally, the receiving process becomes slow and inefficient.

Solutions

The solutions for the above mentioned problems are explained below:

Sender windows transmit one byte of data repeatedly

  • Sender must send only the first byte on receiving one byte data from the application.

  • Sender must buffer all the rest bytes until the outstanding byte gets acknowledged.

After receiving the acknowledgement, the sender needs to send the buffered data in one TCP segment. Then the sender should buffer the data again until the previously sent data is acknowledged.

Receiver window accepting one byte of data repeatedly −

  • Receiver will not send a window update for one byte.

  • Receiver must wait until it has more space available.

After that the receiver should advertise the size of the window to the sender.

TCP sets an initial congestion window as Maximum Segment Size. The advertised window is the window of the receiver at a time, and the effective window is the minimum among advertised and congestion windows at that time.

From all these explanations we will get an idea regarding silly window syndrome which will make the data transfer inefficient.

Updated on: 15-Sep-2021

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements