mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 04:44:11 +02:00
Merge pull request #3927 from ey6es/master
Use the 1450 limit everywhere, in case other places are running into the...
This commit is contained in:
commit
23a8557b08
3 changed files with 18 additions and 8 deletions
|
@ -19,7 +19,7 @@
|
|||
#include "MetavoxelMessages.h"
|
||||
|
||||
// in sequencer parlance, a "packet" may consist of multiple datagrams. clarify when we refer to actual datagrams
|
||||
const int MAX_DATAGRAM_SIZE = 1450;
|
||||
const int MAX_DATAGRAM_SIZE = MAX_PACKET_SIZE;
|
||||
|
||||
const int DEFAULT_MAX_PACKET_SIZE = 3000;
|
||||
|
||||
|
@ -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;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#include "DomainHandler.h"
|
||||
#include "Node.h"
|
||||
|
||||
const int MAX_PACKET_SIZE = 1500;
|
||||
const int MAX_PACKET_SIZE = 1450;
|
||||
|
||||
const quint64 NODE_SILENCE_THRESHOLD_MSECS = 2 * 1000;
|
||||
|
||||
|
|
Loading…
Reference in a new issue