diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState.java b/router/java/src/net/i2p/router/transport/udp/PeerState.java index 98411efc79408f745f86683f606ecd8a88e725d2..bdeb8d0b93122129582637467a5ffc76c0665fbf 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState.java @@ -773,7 +773,7 @@ public class PeerState { _log.info(_remotePeer + " Congestion, RTO: " + oldRto + " -> " + _rto + " timer: " + oldTimer + " -> " + (_retransmitTimer - now) + " window: " + congestionAt + " -> " + _sendWindowBytes + " SST: " + oldsst + " -> " + _slowStartThreshold + - " BWE: " + DataHelper.formatSize2Decimal((long) (bwe * 1000)) + "bps"); + " BWE: " + DataHelper.formatSize2Decimal((long) (bwe * 1000), false) + "bps"); } /** @@ -1036,12 +1036,15 @@ public class PeerState { if (_sendWindowBytes <= _slowStartThreshold) { _sendWindowBytes += bytesACKed; + _sendWindowBytesRemaining += bytesACKed; } else { float prob = ((float)bytesACKed) / ((float)(_sendWindowBytes<<1)); float v = _context.random().nextFloat(); if (v < 0) v = 0-v; - if (v <= prob) - _sendWindowBytes += bytesACKed; //512; // bytesACKed; + if (v <= prob) { + _sendWindowBytes += bytesACKed; + _sendWindowBytesRemaining += bytesACKed; + } } } else { int allow = _concurrentMessagesAllowed - 1;