目录
- 什么是 Shadowsocks TCP Fast Open?
- 什么是 BBR?
- Shadowsocks 与 TCP Fast Open 的优化
- 开启 TCP Fast Open
- 配置 Shadowsocks 的 TCP Fast Open 参数
- BBR 算法的原理和优化
- BBR 算法简介
- BBR 的优化配置
- 综合使用 Shadowsocks TCP Fast Open 和 BBR
- 系统内核参数优化
- Shadowsocks 与 BBR 的配合使用
- FAQ
- Shadowsocks TCP Fast Open 和 BBR 有什么区别?
- 如何确认 TCP Fast Open 和 BBR 是否生效?
- 在什么场景下需要使用 Shadowsocks TCP Fast Open 和 BBR?
- 使用 Shadowsocks TCP Fast Open 和 BBR 会对系统性能造成影响吗?
- 如何在不同操作系统上配置 Shadowsocks TCP Fast Open 和 BBR?
1. 什么是 Shadowsocks TCP Fast Open?
Shadowsocks 是一种基于 SOCKS5 代理的加密传输协议,广泛应用于科学上网。TCP Fast Open 是一种 TCP 连接优化技术,可以减少 TCP 连接的握手时间,提高网络传输效率。将 Shadowsocks 与 TCP Fast Open 结合使用,可以进一步提高科学上网的速度和稳定性。
2. 什么是 BBR?
BBR(Bottleneck Bandwidth and Round-trip propagation time)是 Google 开发的一种 TCP 拥塞控制算法,旨在提高网络传输性能。BBR 算法通过动态调整发送速率,尽量避免网络拥塞,从而提高吞吐量和降低延迟。
3. Shadowsocks 与 TCP Fast Open 的优化
3.1 开启 TCP Fast Open
TCP Fast Open 需要在操作系统内核层面进行配置,具体步骤如下:
-
检查内核是否支持 TCP Fast Open:
cat /proc/sys/net/ipv4/tcp_fastopen
如果返回值为
3
,则表示支持 TCP Fast Open。 -
开启 TCP Fast Open:
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
此命令会立即生效,但重启后需要重新执行。
3.2 配置 Shadowsocks 的 TCP Fast Open 参数
在 Shadowsocks 的配置文件中,需要添加 fast_open
参数,并将其设置为 true
。例如:
{ “server”: “your_server_ip”, “server_port”: 8388, “password”: “your_password”, “method”: “aes-256-cfb”, “fast_open”: true}
4. BBR 算法的原理和优化
4.1 BBR 算法简介
BBR 算法通过动态监测网络状况,包括带宽和延迟,来调整发送速率。它不同于传统的基于丢包率的拥塞控制算法,能够更好地利用网络带宽,同时减少延迟。
4.2 BBR 的优化配置
BBR 需要在内核层面进行配置,具体步骤如下:
-
检查内核是否支持 BBR:
cat /sys/module/tcp_bbr/parameters/enable
如果返回值为
1
,则表示支持 BBR。 -
开启 BBR:
echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf sysctl -p
此命令会立即生效,但重启后需要重新执行。
5. 综合使用 Shadowsocks TCP Fast Open 和 BBR
5.1 系统内核参数优化
除了开启 TCP Fast Open 和 BBR,还可以进一步优化系统内核参数,以提高网络性能:
echo “net.ipv4.ip_local_port_range=1024 65535” >> /etc/sysctl.conf
echo “net.ipv4.tcp_rmem = 4096 87380 16777216” >> /etc/sysctl.conf echo “net.ipv4.tcp_wmem = 4096 65536 16777216” >> /etc/sysctl.conf
echo “net.ipv4.tcp_fastopen=3” >> /etc/sysctl.conf sysctl -p
5.2 Shadowsocks 与 BBR 的配合使用
在开启 Shadowsocks TCP Fast Open 和 BBR 后,两者会协同工作,进一步提高网络性能。Shadowsocks 负责加密传输,BBR 负责优化 TCP 拥塞控制,两者相互配合,共同提升科学上网的体验。
6. FAQ
6.1 Shadowsocks TCP Fast Open 和 BBR 有什么区别?
Shadowsocks TCP Fast Open 和 BBR 是两种不同的网络优化技术:
- Shadowsocks TCP Fast Open 是在 Shadowsocks 协议层面进行优化,主要减少 TCP 连接的握手时间。
- BBR 是在 TCP 拥塞控制算法层面进行优化,通过动态调整发送速率来提高吞吐量和降低延迟。
两者可以同时使用,发挥各自的优势,进一步提升网络性能。
6.2 如何确认 TCP Fast Open 和 BBR 是否生效?
-
确认 TCP Fast Open 是否生效:
- 检查内核参数
cat /proc/sys/net/ipv4/tcp_fastopen
,返回值为3
表示生效。 - 使用
tcpdump
抓包,观察 TCP 连接是否有SYN-ACK
握手。
- 检查内核参数
-
确认 BBR 是否生效:
- 检查内核参数
cat /sys/module/tcp_bbr/parameters/enable
,返回值为1
表示生效。 - 使用
ss -i
命令查看 TCP 连接状态,观察是否有bbr
标记。
- 检查内核参数
6.3 在什么场景下需要使用 Shadowsocks TCP Fast Open 和 BBR?
- 在科学上网场景下,使用 Shadowsocks TCP Fast Open 和 BBR 可以提高连接速度和稳定性。
- 对于高延迟、高丢包的网络环境,BBR 算法可以更好地利用带宽,降低延迟。
- 对于频繁建立和断开 TCP 连接的应用场景,TCP Fast Open 可以减少握手时间,提高效率。
6.4 使用 Shadowsocks TCP Fast Open 和 BBR 会对系统性能造成影响吗?
使用 Shadowsocks TCP Fast Open 和 BBR 对系统性能的影响很小:
- TCP Fast Open 仅在建立 TCP 连接时产生额外开销,对于长连接的场景影响可以忽略不计。
- BBR 算法的计算开销较小,不会对 CPU 和内存造成明显负担。
- 通过优化内核参数,如增大 TCP 连接数和缓冲区大小,可以进一步提高系统承载能力。
总的来说,在大多数场景下,使用 Shadowsocks TCP Fast Open 和 BBR 不会对系统性能产生明显影响。
6.5 如何在不同操作系统上配置 Shadowsocks TCP Fast Open 和 BBR?
-
Linux:
- 开启 TCP Fast Open:
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
- 开启 BBR:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
和echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
- 在 Shadowsocks 配置中添加
"fast_open": true
- 开启 TCP Fast Open:
-
macOS:
- 开启 TCP Fast Open:
sudo sysctl -w net.inet.tcp.fastack=1
- 开启 BBR:
sudo sysctl -w net.inet.tcp.cc.algorithm=bbr
- 在 Shadowsocks 客户端设置中开启 TCP Fast Open
- 开启 TCP Fast Open:
-
Windows:
- 开启 TCP Fast Open: 需要修改注册表,具体步骤较为复杂
- 开启 BBR: 需要第三方工具,如
qBittorrent
的qBittorrent-Enhanced-Edition
- 在 Shadowsocks 客户端设置中开启 TCP Fast Open