Congestion Control
- Paramers:
std::chrono::microseconds _rcInterval; // UDT Rate control interval
- Timers:
QElapsedTimer _lastRCTime; // last rate increase time
- Flags:
bool _slowStart{ true }; // if in slow start phase
bool _loss{ false }; // if loss happened since last rate increase
- Counters:
PacketID _lastAck; // last ACKed seq no
PacketID _lastDecSeq; // biggest sequence number when last time the packet sending rate is decreased
std::chrono::microseconds _lastDecPeriod{ 0 }; // value of PacketSendPeriod when last decrease happened
unsigned _nakCount{ 0 }; // current number of NAKs in the current period
unsigned _decRandom{ 1 }; // random threshold on decrease by number of loss events
unsigned _avgNAKNum{ 0 }; // average number of NAKs in a congestion period
unsigned _decCount{ 0 }; // number of decreases in a congestion epoch