mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 10:17:40 +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"
|
#include "MetavoxelMessages.h"
|
||||||
|
|
||||||
// in sequencer parlance, a "packet" may consist of multiple datagrams. clarify when we refer to actual datagrams
|
// 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;
|
const int DEFAULT_MAX_PACKET_SIZE = 3000;
|
||||||
|
|
||||||
|
@ -45,7 +45,8 @@ DatagramSequencer::DatagramSequencer(const QByteArray& datagramHeader, QObject*
|
||||||
_packetsToWrite(0.0f),
|
_packetsToWrite(0.0f),
|
||||||
_slowStartThreshold(DEFAULT_SLOW_START_THRESHOLD),
|
_slowStartThreshold(DEFAULT_SLOW_START_THRESHOLD),
|
||||||
_packetRateIncreasePacketNumber(0),
|
_packetRateIncreasePacketNumber(0),
|
||||||
_packetRateDecreasePacketNumber(0) {
|
_packetRateDecreasePacketNumber(0),
|
||||||
|
_packetDropCount(0) {
|
||||||
|
|
||||||
_outgoingPacketStream.setByteOrder(QDataStream::LittleEndian);
|
_outgoingPacketStream.setByteOrder(QDataStream::LittleEndian);
|
||||||
_incomingDatagramStream.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 we've lost three in a row, halve the rate and remember as threshold
|
||||||
if (record.packetNumber >= _packetRateDecreasePacketNumber) {
|
if (_packetDropCount == 0 || record.packetNumber == _lastPacketDropped + 1) {
|
||||||
_packetsPerGroup = qMax(_packetsPerGroup * 0.5f, 1.0f);
|
_packetDropCount++;
|
||||||
_slowStartThreshold = _packetsPerGroup;
|
_lastPacketDropped = record.packetNumber;
|
||||||
_packetRateDecreasePacketNumber = _outgoingPacketNumber + 1;
|
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;
|
float _slowStartThreshold;
|
||||||
int _packetRateIncreasePacketNumber;
|
int _packetRateIncreasePacketNumber;
|
||||||
int _packetRateDecreasePacketNumber;
|
int _packetRateDecreasePacketNumber;
|
||||||
|
int _packetDropCount;
|
||||||
|
int _lastPacketDropped;
|
||||||
|
|
||||||
QHash<int, ReliableChannel*> _reliableOutputChannels;
|
QHash<int, ReliableChannel*> _reliableOutputChannels;
|
||||||
QHash<int, ReliableChannel*> _reliableInputChannels;
|
QHash<int, ReliableChannel*> _reliableInputChannels;
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
#include "DomainHandler.h"
|
#include "DomainHandler.h"
|
||||||
#include "Node.h"
|
#include "Node.h"
|
||||||
|
|
||||||
const int MAX_PACKET_SIZE = 1500;
|
const int MAX_PACKET_SIZE = 1450;
|
||||||
|
|
||||||
const quint64 NODE_SILENCE_THRESHOLD_MSECS = 2 * 1000;
|
const quint64 NODE_SILENCE_THRESHOLD_MSECS = 2 * 1000;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue