Browse Source

add lower limit for stream RTO

pull/2045/head
Vort 8 months ago
parent
commit
cf77be0eeb
  1. 4
      libi2pd/Streaming.cpp
  2. 1
      libi2pd/Streaming.h

4
libi2pd/Streaming.cpp

@ -438,7 +438,7 @@ namespace stream
else else
rttUpdated = false; rttUpdated = false;
if (rttUpdated) if (rttUpdated)
m_RTO = m_RTT * 1.5; // TODO: implement it better m_RTO = std::max (MIN_RTO, (int)(m_RTT * 1.5)); // TODO: implement it better
LogPrint (eLogDebug, "Streaming: Packet ", seqn, " acknowledged rtt=", rtt, " sentTime=", sentPacket->sendTime); LogPrint (eLogDebug, "Streaming: Packet ", seqn, " acknowledged rtt=", rtt, " sentTime=", sentPacket->sendTime);
m_SentPackets.erase (it++); m_SentPackets.erase (it++);
m_LocalDestination.DeletePacket (sentPacket); m_LocalDestination.DeletePacket (sentPacket);
@ -882,7 +882,7 @@ namespace stream
m_CurrentOutboundTunnel = routingPath->outboundTunnel; m_CurrentOutboundTunnel = routingPath->outboundTunnel;
m_CurrentRemoteLease = routingPath->remoteLease; m_CurrentRemoteLease = routingPath->remoteLease;
m_RTT = routingPath->rtt; m_RTT = routingPath->rtt;
m_RTO = m_RTT*1.5; // TODO: implement it better m_RTO = std::max (MIN_RTO, (int)(m_RTT * 1.5)); // TODO: implement it better
} }
} }

1
libi2pd/Streaming.h

@ -58,6 +58,7 @@ namespace stream
const int MAX_WINDOW_SIZE = 128; const int MAX_WINDOW_SIZE = 128;
const int WINDOW_SIZE_DROP_FRACTION = 10; // 1/10 const int WINDOW_SIZE_DROP_FRACTION = 10; // 1/10
const double RTT_EWMA_ALPHA = 0.125; const double RTT_EWMA_ALPHA = 0.125;
const int MIN_RTO = 20; // in milliseconds
const int INITIAL_RTT = 8000; // in milliseconds const int INITIAL_RTT = 8000; // in milliseconds
const int INITIAL_RTO = 9000; // in milliseconds const int INITIAL_RTO = 9000; // in milliseconds
const int MIN_SEND_ACK_TIMEOUT = 2; // in milliseconds const int MIN_SEND_ACK_TIMEOUT = 2; // in milliseconds

Loading…
Cancel
Save