dynamically change segment size based on download speed
Bug #211497 reported by
Pseudonym
This bug affects 1 person
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DC++ |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
The default segment size of 1 MiB doesn't work very well on high-bandwidth connections, and most users are wary of tweaking the segment size in experts only. Therefore, it would be nice if DC++ would automatically request larger segments if it can gain from it.
Preliminary algorithm:
DC++ should keep track of how large the previous segment was and how long it took to download. Segment size should start at what the default is now. If the transfer took less than one minute, double the segment size. If it took longer than 5, drop back to the default size.
Changed in dcplusplus: | |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
Changed in dcplusplus: | |
status: | Confirmed → In Progress |
Changed in dcplusplus: | |
status: | Fix Committed → Fix Released |
To post a comment you must log in.
"If the transfer took less than one minute, double the segment size. If it took longer than 5, drop back to the default size."
Where did you come up with these numbers? That seems like a bit of a hack. Instead, I recommend we use proven algorithms like slow start and/or AIMD (or variations thereof) that are used by the TCP protocol. Basically, what I'm suggesting is we make this dynamic segment size more dynamic and flexible than what has been suggested.