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