Congestion window bound by MSS**2

From: Craig Buffinton ([email protected])
Date: Sat Mar 28 1998 - 16:17:45 EST


I realized after writing the following problem description
that this problem implies that the TCP congestion
window is bound by the maximum segment size squared.

-------------------------------------------------------------------------

There appears to be a problem with congestion avoidance
and very large windows. Consider the following quote
>from RFC 2001.

"Congestion avoidance dictates that cwnd be
incremented by segsize*segsize/cwnd each time an ACK is received,
where segsize is the segment size and cwnd is maintained in bytes."

When cwnd exceeds segsize*segsize then
segsize*segsize/cwnd = 0
and cwnd stops incrementing.

Consider segsize = 1448 and advertised window = 2MB

1448*1448 = 2096704
2MB = 2097152

As cwnd approaches advertised window it will
exceed 2096704.

Doing integer arithmetic for cwnd > 2096704

2096704 / cwnd = 0

At this point the congestion window stops growing.

A 2MB window may seem unreasonable at first glance but if satellite
bandwidth grows an order of magnitude or if one host
is on a lunar base (which is a type of satellite) then a 2MB
window is in a more reasonable range. Additionally the problem
occurs at smaller window sizes for smaller segment sizes.
Moreover RFC 1323 provides for the support of windows
approaching 1 GB which implies an MSS approaching 32KB.

Craig Buffinton



This archive was generated by hypermail 2b29 : Mon Feb 14 2000 - 16:14:37 EST