Fix a bug in the computation of the RTO. Basically... the RTO (the

time to wait to retransmit packets) always maxed out (no retransmissions
for 24 or 48 seconds.

Note that this is going to cause faster (and more) retransmissions. Fix
for dynamic throttling needs to go with this.
bulletsim
Mic Bowman 2011-04-04 14:18:26 -07:00
parent 0bd06d8ba8
commit 83dc2470f2
1 changed files with 2 additions and 2 deletions

View File

@ -149,7 +149,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
/// <summary>Caches packed throttle information</summary> /// <summary>Caches packed throttle information</summary>
private byte[] m_packedThrottles; private byte[] m_packedThrottles;
private int m_defaultRTO = 3000; private int m_defaultRTO = 1000; // 1sec is the recommendation in the RFC
private int m_maxRTO = 60000; private int m_maxRTO = 60000;
/// <summary> /// <summary>
@ -557,7 +557,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP
int rto = (int)(SRTT + Math.Max(m_udpServer.TickCountResolution, K * RTTVAR)); int rto = (int)(SRTT + Math.Max(m_udpServer.TickCountResolution, K * RTTVAR));
// Clamp the retransmission timeout to manageable values // Clamp the retransmission timeout to manageable values
rto = Utils.Clamp(RTO, m_defaultRTO, m_maxRTO); rto = Utils.Clamp(rto, m_defaultRTO, m_maxRTO);
RTO = rto; RTO = rto;