mirror of https://github.com/aria2/aria2
Revert 53dde0a9
Reverted to the original strategy, but some values are tweaked.
Without TCP_NODELAY, 53dde0a9
does not work well.
pull/43/head
parent
bf4ea63a66
commit
1c72b80aa5
|
@ -48,7 +48,7 @@
|
||||||
|
|
||||||
#define MAX_BLOCK_LENGTH (16*1024)
|
#define MAX_BLOCK_LENGTH (16*1024)
|
||||||
|
|
||||||
#define DEFAULT_MAX_OUTSTANDING_REQUEST 2
|
#define DEFAULT_MAX_OUTSTANDING_REQUEST 6
|
||||||
|
|
||||||
#define OUTSTANDING_REQUEST_STEP 6
|
#define OUTSTANDING_REQUEST_STEP 6
|
||||||
|
|
||||||
|
|
|
@ -98,8 +98,7 @@ DefaultBtInteractive::DefaultBtInteractive
|
||||||
maxOutstandingRequest_(DEFAULT_MAX_OUTSTANDING_REQUEST),
|
maxOutstandingRequest_(DEFAULT_MAX_OUTSTANDING_REQUEST),
|
||||||
requestGroupMan_(0),
|
requestGroupMan_(0),
|
||||||
tcpPort_(0),
|
tcpPort_(0),
|
||||||
haveLastSent_(global::wallclock()),
|
haveLastSent_(global::wallclock())
|
||||||
baseSpeed_(0)
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
DefaultBtInteractive::~DefaultBtInteractive() {}
|
DefaultBtInteractive::~DefaultBtInteractive() {}
|
||||||
|
@ -323,24 +322,13 @@ size_t DefaultBtInteractive::receiveMessages() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!pieceStorage_->isEndGame() && !pieceStorage_->downloadFinished()) {
|
if(!pieceStorage_->isEndGame() &&
|
||||||
if(baseSpeed_ == 0) {
|
countOldOutstandingRequest > dispatcher_->countOutstandingRequest() &&
|
||||||
if(countOldOutstandingRequest &&
|
(countOldOutstandingRequest - dispatcher_->countOutstandingRequest())*4 >=
|
||||||
dispatcher_->countOutstandingRequest() == 0) {
|
maxOutstandingRequest_) {
|
||||||
baseSpeed_ = peer_->calculateDownloadSpeed();
|
maxOutstandingRequest_ =
|
||||||
maxOutstandingRequest_ *= 2;
|
std::min((size_t)UB_MAX_OUTSTANDING_REQUEST,
|
||||||
}
|
maxOutstandingRequest_*2);
|
||||||
} else {
|
|
||||||
int speed = peer_->calculateDownloadSpeed();
|
|
||||||
// Double the number of outstanding request if 20% download rate
|
|
||||||
// increase is observed.
|
|
||||||
if(baseSpeed_*12 <= speed*10) {
|
|
||||||
maxOutstandingRequest_ =
|
|
||||||
std::min((size_t)UB_MAX_OUTSTANDING_REQUEST,
|
|
||||||
maxOutstandingRequest_*2);
|
|
||||||
baseSpeed_ = speed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return msgcount;
|
return msgcount;
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,8 +149,6 @@ private:
|
||||||
std::vector<size_t> haveIndexes_;
|
std::vector<size_t> haveIndexes_;
|
||||||
Timer haveLastSent_;
|
Timer haveLastSent_;
|
||||||
|
|
||||||
int baseSpeed_;
|
|
||||||
|
|
||||||
static const time_t FLOODING_CHECK_INTERVAL = 5;
|
static const time_t FLOODING_CHECK_INTERVAL = 5;
|
||||||
|
|
||||||
void addBitfieldMessageToQueue();
|
void addBitfieldMessageToQueue();
|
||||||
|
|
Loading…
Reference in New Issue