private void UpdateRoundTripTime(int roundTripTime) { //Calc average round trip time _rtt += roundTripTime; _rttCount++; _avgRtt = _rtt / _rttCount; //flowmode 0 = fastest //flowmode max = lowest if (_avgRtt < _peerListener.GetStartRtt(_currentFlowMode - 1)) { if (_currentFlowMode <= 0) { //Already maxed return; } _goodRttCount++; if (_goodRttCount > NetConstants.FlowIncreaseThreshold) { _goodRttCount = 0; _currentFlowMode--; DebugWrite("[PA]Increased flow speed, RTT: {0}, PPS: {1}", _avgRtt, _peerListener.GetPacketsPerSecond(_currentFlowMode)); } } else if (_avgRtt > _peerListener.GetStartRtt(_currentFlowMode)) { _goodRttCount = 0; if (_currentFlowMode < _peerListener.GetMaxFlowMode()) { _currentFlowMode++; DebugWrite("[PA]Decreased flow speed, RTT: {0}, PPS: {1}", _avgRtt, _peerListener.GetPacketsPerSecond(_currentFlowMode)); } } }