Merge pull request #452 from 9seconds/tcp-bbr

Use TCP BBR in a best-effort mode
This commit is contained in:
Sergei Arkhipov
2026-04-07 15:33:27 +02:00
committed by GitHub
3 changed files with 28 additions and 0 deletions
+2
View File
@@ -23,5 +23,7 @@ func setCommonSocketOptions(conn *net.TCPConn, keepAliveConfig net.KeepAliveConf
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) {}