You are on page 1of 15

Flow Control

The sending station must send frames at a


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.

You might also like