Don't use custom socket buffer sizes by default

Bug #1909853 reported by maksis
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
ApexDC++
New
Undecided
Unassigned
DC++
Fix Released
Undecided
Unassigned

Bug Description

Modern operating systems (Linux 2.4+, Windows Vista+) should support TCP tuning (https://en.wikipedia.org/wiki/TCP_tuning) to enable higher per-thread speeds with fast connections. However, the current default socket buffer size (65536 bytes) set by the client will prevent the feature from being utilized.

Example: with a 80 ms RTT the maximum transfer speed is about 6.5 Mbps with the current default buffer values (https://www.switch.ch/network/tools/tcp_throughput/)

I've done some testing and auto tuning seems to be working as expected. When downloading from another user (Windows -> Linux) with a 20 ms RTT and buffer sizes set to 0 in both clients, I was able to utilize my 100 Mbps connection with a single thread, while using the old buffer size limited the speed to ~30 Mbps, which matches the maximum speed given by the calculator.

The required code changes are quite trivial: https://github.com/airdcpp/airdcpp-windows/commit/f96ef123c8152860bb796208cadbe051cc5a8da8

eMTee (realprogger)
Changed in dcplusplus:
status: New → Fix Committed
Revision history for this message
eMTee (realprogger) wrote :

Fixed in DC++ 0.870.

Changed in dcplusplus:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.