syncthing/lib/connections
Jakob Borg c6334e61aa
all: Support multiple device connections (fixes #141) (#8918)
This adds the ability to have multiple concurrent connections to a single device. This is primarily useful when the network has multiple physical links for aggregated bandwidth. A single connection will never see a higher rate than a single link can give, but multiple connections are load-balanced over multiple links.

It is also incidentally useful for older multi-core CPUs, where bandwidth could be limited by the TLS performance of a single CPU core -- using multiple connections achieves concurrency in the required crypto calculations...

Co-authored-by: Simon Frei <freisim93@gmail.com>
Co-authored-by: tomasz1986 <twilczynski@naver.com>
Co-authored-by: bt90 <btom1990@googlemail.com>
2023-09-06 12:52:01 +02:00
..
mocks lib: Use counterfeiter to mock interfaces in tests (#7375) 2021-03-03 08:53:50 +01:00
registry all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
connections_test.go all: Correct various typos (#8870) 2023-05-09 08:54:02 +02:00
debug.go all, lib/logger: Refactor SetDebug calls (#6054) 2019-10-04 13:03:34 +02:00
deprecated.go lib/connections: Handle QUIC not being available (#7186) 2020-12-09 19:23:50 +01:00
dialqueue_test.go all: Fix various user-facing and non-user-facing typos (#8509) 2022-08-23 15:44:11 +02:00
dialqueue.go lib/config, lib/connections: Add optional connection limits (fixes #7176) (#7223) 2021-01-11 15:14:44 +01:00
lan_test.go lib/config, lib/connections: Configurable protocol priority (ref #8626) (#8868) 2023-04-16 14:54:28 +02:00
limiter_test.go all: Use new Go 1.19 atomic types (#8772) 2023-02-07 12:07:34 +01:00
limiter.go all: Use new Go 1.19 atomic types (#8772) 2023-02-07 12:07:34 +01:00
quic_dial.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
quic_listen.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
quic_misc.go all: Use Go 1.21, new QUIC API (#9040) 2023-08-21 15:25:52 +02:00
quic_unsupported.go lib/connections: Fix building with -tags noquic (#9009) 2023-07-28 10:08:50 +00:00
relay_dial.go all: unused parameter should be replaced by underscore (#8989) 2023-07-18 14:33:13 +00:00
relay_listen.go lib/config, lib/connections: Configurable protocol priority (ref #8626) (#8868) 2023-04-16 14:54:28 +02:00
service.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
structs.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
tcp_dial.go all: Support multiple device connections (fixes #141) (#8918) 2023-09-06 12:52:01 +02:00
tcp_listen.go lib/connections: Fix WANAddresses returning only unspecified IPs (ref #9010) (#9073) 2023-09-03 15:03:27 +00:00
util.go lib/connections: Allow IPv6 ULA in discovery announcements (fixes #7456) (#9048) 2023-08-23 12:28:48 +02:00