Question about multiple connections coming in 1.25

I have a NAS with 4 gigabit NICs. We have the 4 gigabit NICs connected to a 10GB switch. Currently we haven’t enabled LACP link aggregation because SMB3 wants to see multiple independent NICS or the multiple connections required to spread the traffic across the NICs aren’t established and all the SMB data goes over one NIC at 1GBit instead of spreading across the 4 NICS.

This is really a failure in thinking of the SMB3. No idea why SMB3 doesn’t support multiple connections over a single logical device. Not like LACP is new or obscure.

Anyway, my NAS has 4 different local IP Addresses (One for each NIC, 192.168.1.5, .6, .7, and .8). Will it be possible in v1.25 to have syncthing establish 4 connections with local devices, one via each IP address in order to utilize 4 NICs and possibly achieve 4Gbit/s transfer rate? Or Syncthing will only ever listen on one address?

I don’t think this will work, at least not reliably.

Syncthing will listen on all adapters by default, and you can add four manual addresses for the other device, but that’s where my mental modelling of what’s going on gets blurry. How does the system decide which interface to route traffic out? What will be the local address of the socket? Does it matter for the routing?

Maybe with enough connections established in both directions between different addresses you might get some spread but I don’t really see how to make it properly deterministic.

Multipath TCP might be an option, but we don’t support it yet: