Streaming: Slow start fix from zlatinb

This commit is contained in:
zzz
2020-04-17 12:02:26 +00:00
parent da9bfd48c0
commit 35bb5896a1
4 changed files with 11 additions and 7 deletions

View File

@@ -156,7 +156,7 @@ class Connection {
_createdOn = _context.clock().now();
_congestionWindowEnd = _options.getWindowSize()-1;
_highestAckedThrough = -1;
_ssthresh = _options.getMaxWindowSize();
_ssthresh = ConnectionPacketHandler.MAX_SLOW_START_WINDOW;
_lastCongestionTime = -1;
_lastCongestionHighestUnacked = -1;
_lastReceivedOn = -1;
@@ -1562,7 +1562,7 @@ class Connection {
if (_packet.getNumSends() == 1) {
int flightSize = getUnackedPacketsSent();
_ssthresh = Math.max( flightSize / 2, 2 );
_ssthresh = Math.min(ConnectionPacketHandler.MAX_SLOW_START_WINDOW, Math.max( flightSize / 2, 2 ));
}
if (_log.shouldLog(Log.INFO))

View File

@@ -445,10 +445,7 @@ class ConnectionPacketHandler {
// as it often leads to a big packet loss (30-50) all at once that
// takes quite a while (a minute or more) to recover from,
// especially if crypto tags are lost
if (newWindowSize >= MAX_SLOW_START_WINDOW)
newWindowSize++;
else
newWindowSize = Math.min(ssthresh, newWindowSize + acked);
newWindowSize = Math.min(ssthresh, newWindowSize + acked);
} else if (acked < factor)
newWindowSize++;
else