Use TCP BBR in a best-effort mode

This small commits conditionally sets TCP BBR as a preferrable algorithm
for TCP congestion control
This commit is contained in:
9seconds
2026-04-07 14:54:56 +02:00
parent 83b43aecc1
commit 88f33debab
3 changed files with 28 additions and 0 deletions
+2
View File
@@ -28,5 +28,7 @@ func setCommonSocketOptions(conn *net.TCPConn) error {
return fmt.Errorf("cannot setup SO_REUSEADDR/PORT: %w", err)
}
setCongestionControl(rawConn)
return nil
}
+19
View File
@@ -0,0 +1,19 @@
//go:build linux
package network
import (
"syscall"
"golang.org/x/sys/unix"
)
func setCongestionControl(conn syscall.RawConn) {
conn.Control(func(fd uintptr) { //nolint: errcheck
// BBR provides better throughput over lossy and high-latency links compared
// to the default cubic, which is especially beneficial for mobile and
// home internet clients. This is best-effort: silently ignored if the
// kernel does not have tcp_bbr available.
unix.SetsockoptString(int(fd), unix.IPPROTO_TCP, unix.TCP_CONGESTION, "bbr") //nolint: errcheck
})
}
+7
View File
@@ -0,0 +1,7 @@
//go:build !linux
package network
import "syscall"
func setCongestionControl(conn syscall.RawConn) {}