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++
Undecided
Unassigned
DC++
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  Edit
Everyone can see this information.

Other bug subscribers