Pages

3/06/2002

Tuning TcpMaxDataRetransmissions rate:
TCP/IP uses the initial packet round-trip time at the moment when the
session is initiated to determine what is "normal" for that connection.
Because of this, it is better to have a consistently slow WAN connection and
worse to have a connection that starts out fast and then becomes slow. Such
an erosion of connection speed is common when the connection is opened in
the morning and maintained into the work day.

To accommodate for this erosion of bandwidth, we modify the
TcpMaxDataRetransmissions value in the Citrix server registry.
TCP starts a retransmission timer when each outbound segment is handed down
to IP. If no acknowledgment is received for the data in a given segment
before the timer expires, the segment is retransmitted, up to the
TcpMaxDataRetransmissions times. The default value for this parameter is 5.

The retransmission timer is initialized to 3 seconds when a TCP connection
is established; however, it is adjusted "on the fly" to match the
characteristics of the connection using Smoothed Round Trip Time (SRTT)
calculations. The timer for a given segment is doubled after each
retransmission of that segment.

Using this algorithm, TCP tunes itself to the "normal" delay of a
connection. Because the default number of retries is five, the round-trip
time can double four times (or in other words become 16X slower than its
initial value) before the session is dropped. By increasing this number to
10, you are allowing the round-trip time to double nine times instead of
four, thereby allowing the connection quality to erode up to 512X its
original value before being dropped. For example, a connection that begins
with a roundtrip time of 20 milliseconds would have to erode to a round-trip
time of 10,240 milliseconds before being dropped by the server.

No comments: