mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2024-11-06 03:20:33 +00:00
kappa for RTO culculation
This commit is contained in:
parent
ff5fa1d137
commit
eba4626589
@ -25,7 +25,7 @@ namespace transport
|
|||||||
m_DestConnID (0), m_SourceConnID (0), m_State (eSSU2SessionStateUnknown),
|
m_DestConnID (0), m_SourceConnID (0), m_State (eSSU2SessionStateUnknown),
|
||||||
m_SendPacketNum (0), m_ReceivePacketNum (0), m_IsDataReceived (false),
|
m_SendPacketNum (0), m_ReceivePacketNum (0), m_IsDataReceived (false),
|
||||||
m_WindowSize (SSU2_MIN_WINDOW_SIZE), m_RTT (SSU2_RESEND_INTERVAL),
|
m_WindowSize (SSU2_MIN_WINDOW_SIZE), m_RTT (SSU2_RESEND_INTERVAL),
|
||||||
m_RTO (SSU2_RESEND_INTERVAL*1.5), m_RelayTag (0),
|
m_RTO (SSU2_RESEND_INTERVAL*SSU2_kAPPA), m_RelayTag (0),
|
||||||
m_ConnectTimer (server.GetService ()), m_TerminationReason (eSSU2TerminationReasonNormalClose),
|
m_ConnectTimer (server.GetService ()), m_TerminationReason (eSSU2TerminationReasonNormalClose),
|
||||||
m_MaxPayloadSize (SSU2_MIN_PACKET_SIZE - IPV6_HEADER_SIZE - UDP_HEADER_SIZE - 32) // min size
|
m_MaxPayloadSize (SSU2_MIN_PACKET_SIZE - IPV6_HEADER_SIZE - UDP_HEADER_SIZE - 32) // min size
|
||||||
{
|
{
|
||||||
@ -1462,7 +1462,7 @@ namespace transport
|
|||||||
{
|
{
|
||||||
auto rtt = ts - it1->second->sendTime;
|
auto rtt = ts - it1->second->sendTime;
|
||||||
m_RTT = (m_RTT*m_SendPacketNum + rtt)/(m_SendPacketNum + 1);
|
m_RTT = (m_RTT*m_SendPacketNum + rtt)/(m_SendPacketNum + 1);
|
||||||
m_RTO = m_RTT*1.5;
|
m_RTO = m_RTT*SSU2_kAPPA;
|
||||||
if (m_RTO < SSU2_MIN_RTO) m_RTO = SSU2_MIN_RTO;
|
if (m_RTO < SSU2_MIN_RTO) m_RTO = SSU2_MIN_RTO;
|
||||||
if (m_RTO > SSU2_MAX_RTO) m_RTO = SSU2_MAX_RTO;
|
if (m_RTO > SSU2_MAX_RTO) m_RTO = SSU2_MAX_RTO;
|
||||||
}
|
}
|
||||||
|
@ -42,6 +42,7 @@ namespace transport
|
|||||||
const size_t SSU2_MAX_WINDOW_SIZE = 256; // in packets
|
const size_t SSU2_MAX_WINDOW_SIZE = 256; // in packets
|
||||||
const size_t SSU2_MIN_RTO = 100; // in milliseconds
|
const size_t SSU2_MIN_RTO = 100; // in milliseconds
|
||||||
const size_t SSU2_MAX_RTO = 2500; // in milliseconds
|
const size_t SSU2_MAX_RTO = 2500; // in milliseconds
|
||||||
|
const float SSU2_kAPPA = 1.8;
|
||||||
const size_t SSU2_MAX_OUTGOING_QUEUE_SIZE = 500; // in messages
|
const size_t SSU2_MAX_OUTGOING_QUEUE_SIZE = 500; // in messages
|
||||||
const int SSU2_MAX_NUM_ACK_RANGES = 32; // to send
|
const int SSU2_MAX_NUM_ACK_RANGES = 32; // to send
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user