mirror of
https://github.com/overte-org/overte.git
synced 2025-04-23 07:33:51 +02:00
Rather than reducing rate on first drop, wait until three consecutive packets
have been dropped.
This commit is contained in:
parent
343f610442
commit
5fb9905186
2 changed files with 16 additions and 6 deletions
libraries/metavoxels/src
|
@ -45,7 +45,8 @@ DatagramSequencer::DatagramSequencer(const QByteArray& datagramHeader, QObject*
|
|||
_packetsToWrite(0.0f),
|
||||
_slowStartThreshold(DEFAULT_SLOW_START_THRESHOLD),
|
||||
_packetRateIncreasePacketNumber(0),
|
||||
_packetRateDecreasePacketNumber(0) {
|
||||
_packetRateDecreasePacketNumber(0),
|
||||
_packetDropCount(0) {
|
||||
|
||||
_outgoingPacketStream.setByteOrder(QDataStream::LittleEndian);
|
||||
_incomingDatagramStream.setByteOrder(QDataStream::LittleEndian);
|
||||
|
@ -348,11 +349,18 @@ void DatagramSequencer::sendRecordLost(const SendRecord& record) {
|
|||
}
|
||||
}
|
||||
|
||||
// halve the rate and remember as threshold
|
||||
if (record.packetNumber >= _packetRateDecreasePacketNumber) {
|
||||
_packetsPerGroup = qMax(_packetsPerGroup * 0.5f, 1.0f);
|
||||
_slowStartThreshold = _packetsPerGroup;
|
||||
_packetRateDecreasePacketNumber = _outgoingPacketNumber + 1;
|
||||
// if we've lost three in a row, halve the rate and remember as threshold
|
||||
if (_packetDropCount == 0 || record.packetNumber == _lastPacketDropped + 1) {
|
||||
_packetDropCount++;
|
||||
_lastPacketDropped = record.packetNumber;
|
||||
const int CONSECUTIVE_DROPS_BEFORE_REDUCTION = 3;
|
||||
if (_packetDropCount >= CONSECUTIVE_DROPS_BEFORE_REDUCTION && record.packetNumber >= _packetRateDecreasePacketNumber) {
|
||||
_packetsPerGroup = qMax(_packetsPerGroup * 0.5f, 1.0f);
|
||||
_slowStartThreshold = _packetsPerGroup;
|
||||
_packetRateDecreasePacketNumber = _outgoingPacketNumber + 1;
|
||||
}
|
||||
} else {
|
||||
_packetDropCount = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -238,6 +238,8 @@ private:
|
|||
float _slowStartThreshold;
|
||||
int _packetRateIncreasePacketNumber;
|
||||
int _packetRateDecreasePacketNumber;
|
||||
int _packetDropCount;
|
||||
int _lastPacketDropped;
|
||||
|
||||
QHash<int, ReliableChannel*> _reliableOutputChannels;
|
||||
QHash<int, ReliableChannel*> _reliableInputChannels;
|
||||
|
|
Loading…
Reference in a new issue