TCP/IP - Window Size - The Cisco Learning Network

existencetubNetworking and Communications

Oct 26, 2013 (3 years and 10 months ago)

292 views

TCP/IP
-

Window Size

The purpose of the TCP window size is to allow the receiving TCP host to tell the
sending TCP host the amount of data it is currently willing to receive. The receiving TCP host
actually controls the amount of data by advertising a win
dow size to the sending host. The
window measures in bytes (B) the amount of unacknowledged data that can be transmitted at one
time by the sender. Before anymore data can be sent the receiving TCP host must send an
acknowledgement back to the original s
ender advertising a new window size. The original TCP
standard limits the receive window size to 64KB or 65,536 bytes. This is because the field in the
TCP header is only 16
-
bits wide. TCP's receive window size is particularly important in satellite
com
munications, because the maximum throughput of a single TCP connection is bounded by
the following equation:


Without large windows, the maximum effective throughput for a single TCP connection over
geosynchronous satellite is:


Throughput is often referred to as bandwidth and the round trip time (RTT) as the delay. We can
rewrite this equation and solve for the minimum window size required given the bandwidth of
the link and round trip delay as follows:



Based on this new equation, we can calculate the minimum required receive window size
for any link if we know the delay. For instances, if we assume a round trip end
-
to
-
end satellite
delay of 530ms and a link bandwidth of 1.544Mbps or T1, the mi
nimum window size is:


You can see this presents a serious problem. Since the TCP window size is limited to 2
16

bytes,
we are therefore bounded by this limit which results in the maximum data rate over
geosynchronous satellite at just
over 1Mbps. Obviously this is not good and we need a way to
overcome this limitation. Do not panic a solution does exist to allow higher transmission rates.
As specified in RFC 1323, TCP now offers much larger windows through the use of a new
mechanism
called window scaling. The window size is still limited to 2
16

or 65536 bytes,
however, a new scaling factor option has been added to allow TCP to fully utilize higher
bandwidths over satellite links. This new option is used to multiply the window size v
alue found
in the TCP header window field to obtain the true window size. The new maximum window size
can now be as high as 2
30

or slightly over 1Gbyte.