diff options
author | John Hurliman | 2009-10-23 01:33:05 -0700 |
---|---|---|
committer | John Hurliman | 2009-10-23 01:33:05 -0700 |
commit | ac0acb02962c37f870dc38a356e1530803f699e8 (patch) | |
tree | e80b730d6f01a74d6844ca9f5f89ce40accae960 /OpenSim/Region/ClientStack/LindenUDP | |
parent | Commented out noisy debugging about resent packets (normal) and agents settin... (diff) | |
download | opensim-SC-ac0acb02962c37f870dc38a356e1530803f699e8.zip opensim-SC-ac0acb02962c37f870dc38a356e1530803f699e8.tar.gz opensim-SC-ac0acb02962c37f870dc38a356e1530803f699e8.tar.bz2 opensim-SC-ac0acb02962c37f870dc38a356e1530803f699e8.tar.xz |
* Changed the max RTO value to 60 seconds to comply with RFC 2988
* Implemented section 5.5, exponential backoff of the RTO after a resend
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs index 460938e..d2cd6d9 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPClient.cs | |||
@@ -500,7 +500,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
500 | RTO = (int)(SRTT + Math.Max(m_udpServer.TickCountResolution, K * RTTVAR)); | 500 | RTO = (int)(SRTT + Math.Max(m_udpServer.TickCountResolution, K * RTTVAR)); |
501 | 501 | ||
502 | // Clamp the retransmission timeout to manageable values | 502 | // Clamp the retransmission timeout to manageable values |
503 | RTO = Utils.Clamp(RTO, 3000, 10000); | 503 | RTO = Utils.Clamp(RTO, 3000, 60000); |
504 | 504 | ||
505 | //m_log.Debug("[LLUDPCLIENT]: Setting agent " + this.Agent.FullName + "'s RTO to " + RTO + "ms with an RTTVAR of " + | 505 | //m_log.Debug("[LLUDPCLIENT]: Setting agent " + this.Agent.FullName + "'s RTO to " + RTO + "ms with an RTTVAR of " + |
506 | // RTTVAR + " based on new RTT of " + r + "ms"); | 506 | // RTTVAR + " based on new RTT of " + r + "ms"); |
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs index 2973d4b..7e929e5 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLUDPServer.cs | |||
@@ -407,6 +407,9 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
407 | { | 407 | { |
408 | //m_log.Debug("[LLUDPSERVER]: Resending " + expiredPackets.Count + " packets to " + udpClient.AgentID + ", RTO=" + udpClient.RTO); | 408 | //m_log.Debug("[LLUDPSERVER]: Resending " + expiredPackets.Count + " packets to " + udpClient.AgentID + ", RTO=" + udpClient.RTO); |
409 | 409 | ||
410 | // Backoff the RTO | ||
411 | udpClient.RTO = Math.Min(udpClient.RTO * 2, 60000); | ||
412 | |||
410 | // Resend packets | 413 | // Resend packets |
411 | for (int i = 0; i < expiredPackets.Count; i++) | 414 | for (int i = 0; i < expiredPackets.Count; i++) |
412 | { | 415 | { |