The document discusses sliding window flow control, which is a technique used to control data transmission rates between communicating devices. It works by allowing the sender to transmit multiple frames before receiving an acknowledgment, using sequence numbers to keep track. The receiver sends acknowledgments containing the next expected sequence number. Both sender and receiver maintain windows indicating frames that can be sent or received, and these windows slide as data is transmitted and acknowledged to control buffer usage and prevent overflow. Nagle's algorithm is presented as a solution to prevent inefficient small data transmissions known as the "silly window syndrome."
The document discusses sliding window flow control, which is a technique used to control data transmission rates between communicating devices. It works by allowing the sender to transmit multiple frames before receiving an acknowledgment, using sequence numbers to keep track. The receiver sends acknowledgments containing the next expected sequence number. Both sender and receiver maintain windows indicating frames that can be sent or received, and these windows slide as data is transmitted and acknowledged to control buffer usage and prevent overflow. Nagle's algorithm is presented as a solution to prevent inefficient small data transmissions known as the "silly window syndrome."
The document discusses sliding window flow control, which is a technique used to control data transmission rates between communicating devices. It works by allowing the sender to transmit multiple frames before receiving an acknowledgment, using sequence numbers to keep track. The receiver sends acknowledgments containing the next expected sequence number. Both sender and receiver maintain windows indicating frames that can be sent or received, and these windows slide as data is transmitted and acknowledged to control buffer usage and prevent overflow. Nagle's algorithm is presented as a solution to prevent inefficient small data transmissions known as the "silly window syndrome."
rate that receiving station can absorb them So transmitting entity should not overwhelm a receiving entity with data The receiver maintains a buffer space it store received data temporarily Flow control manages the data to buffer space and avoids overflow
Sliding Window Flow Control Allows multiple frames to transmit at the same time Sequence numbers are used to identify frames Source can send multiple frames before getting acknowledgment Receiver acknowledges with the next expected sequence number Ack number also indicates how many frames can accomodate at the receiver
Sliding Window Flow Control
Receiver can acknowledge mutiple frames at a time Source maintains a list of sequence numbers that is allowed to send Destination maintains a list of sequence numbers that is prepared to receive Each of these list is called window of frames, this operation is referred as SLIDING WINDOW FLOW CONTROL
Sliding Window Flow Control Sequence number occupies a field in the frame For a k bit field, it occupies sequence number in the range 0 2k -1 Frames are numbered modulo 2k Maximum window size is 2k -1 Sliding Window Depiction
Sliding Window Flow Control window shrinks when a frame is received window grows when an ack is sent Sender also maintains the list of all frames that are already received, but not acknowledged Window size need not be the maximum possible size RR and RNR signals are sent to indicate the status of receiver
Sliding Window Flow Control If two stations exchange data, each needs to maintain two Windows, one for transmit and other for receive Each side needs to send the data and acknowledgment to the other Data and ACK can send in a frame called piggybacking A data frame contains Sequence number of that frame, Sequence number used for acknowlegment ACK frame is sends when no data to send If no ACK to send along with data, it repeats last ACK number
Silly Window Syndrome Problem with sliding window-inefficiency Arises when the sending application creates data slowly or receiving application consumes data slowly. Results in sending very small segments. If TCP sends segments containing 1byte of data, it means 41 byte(20 TCP header+20 IP) datagram transfers only 1 byte of user data. Inefficient use of the network capacity. Even worse if considering the physical and DLL overheads. this problem is called silly window syndrome
Syndorme created by sender Sending TCP creates a silly window syndrome if it is serving an application program that creates data slowly, eg, 1byte at a time. In the absence of specific instructions, it may create segments of 1byte of data. Results in a large no of 41 byte segments in internet. Solution-prevent sending TCP from sending byte by byte. It must be forced to wait until it collects a block of data. How long to wait? Nagle found an elegant solution-Nagles algorithm.
Nagles algorithm is simple and takes into consideration the speed of the data creating application and speed of the network If application program is faster than the network, segments are larger. Otherwise, segments will be smaller.