Discuss how TCP implements flow control in which the receive window controls the size of the send window.

Or Explain Flow Control or Sliding Window

1 Answer

• TCP uses a sliding window, to handle flow control. The sliding window protocol used by TCP, however, is something between the Go-Back-Nv and Selective Repeat sliding window.

• The sliding window protocol in TCP looks like the Go-Back-N protocol because it does not use NAKs; it looks like Selective Repeat because the receiver holds the out-of-order segments until the missing ones arrive.

• There are two big differences between this sliding window and the one we used at the data link layer.

• First, the sliding window ofTCP is byte-oriented; the one we discussed in the data link layer is frame-oriented. Second, the TCP's sliding window is of variable size;

enter image description here

• Figure 2 shows the sliding window in TCP. The window spans a portion of the buffer containing bytes received from the process. The bytes inside the window are the bytes that can be in transit; they can be sent without worrying about acknowledgment.

• The imaginary window has two walls: one left and one right. The window is opened, closed, or shrunk. These three activities, are in the control of the receiver (and depend on congestion in the network), not the sender.

• The sender must obey the commands of the receiver in this matter. Opening a window means moving the right wall to the right. This allows more new bytes in the buffer that are eligible for sending. Closing the window means moving the left wall to the right. This means that some bytes have been acknowledged and the sender

enter image description here

• A sliding window is used to make transmission more efficient as to control the flow of data so that the destination does not become overwhelmed with data.

• TCP sliding windows are byte-oriented. need not worry about them anymore. Sluinking the window means moving the right wall to the left.

• This is strongly discouraged and not allowed in some implementations because it means revoking the eligibility of some bytes for sending.

• This is a problem if the sender has already sent these bytes.

• Note that the left wall cannot move to the left because this would revoke some of the previously sent acknowledgments.

• The size of the window at one end is determined by the lesser of two values: receiver window (rwnd) or congestion window (cwnd). The receiver window is the value advertised by the opposite end in a segment containing acknowledgment.

• It is the number of bytes the other end can accept before its buffer overflows and data are discarded.

• The congestion window is a value determined by the network to avoid congestion.

Please log in to add an answer.