Browse Source

resend not more than half of window

pull/1514/head
orignal 5 years ago
parent
commit
e5901dad91
  1. 6
      libi2pd/Streaming.cpp

6
libi2pd/Streaming.cpp

@ -824,6 +824,8 @@ namespace stream
} }
// collect packets to resend // collect packets to resend
int maxNumPackets = (m_WindowSize >> 1); // /2
if (maxNumPackets < WINDOW_SIZE) maxNumPackets = WINDOW_SIZE;
auto ts = i2p::util::GetMillisecondsSinceEpoch (); auto ts = i2p::util::GetMillisecondsSinceEpoch ();
std::vector<Packet *> packets; std::vector<Packet *> packets;
for (auto it : m_SentPackets) for (auto it : m_SentPackets)
@ -832,6 +834,8 @@ namespace stream
{ {
it->sendTime = ts; it->sendTime = ts;
packets.push_back (it); packets.push_back (it);
maxNumPackets--;
if (maxNumPackets <= 0) break;
} }
} }
@ -843,7 +847,7 @@ namespace stream
switch (m_NumResendAttempts) switch (m_NumResendAttempts)
{ {
case 1: // congesion avoidance case 1: // congesion avoidance
m_WindowSize /= 2; m_WindowSize >>= 1; // /2
if (m_WindowSize < MIN_WINDOW_SIZE) m_WindowSize = MIN_WINDOW_SIZE; if (m_WindowSize < MIN_WINDOW_SIZE) m_WindowSize = MIN_WINDOW_SIZE;
break; break;
case 2: case 2:

Loading…
Cancel
Save