14.4 TCP/IP 协议栈配置与优化
TCP 的实现被称为 TCP 堆栈(按层次结构叠加,因此称为“栈”)。
不同于其他主流操作系统或发行版,FreeBSD 实现了多 TCP 栈共存,目前主要开发集中于 RACK 栈(由 Netflix 开发)和基础栈(基于 4.4BSD 演化)。
使用 RACK 栈
# echo "net.inet.tcp.functions_default=rack" >> /etc/sysctl.conf # 将 TCP 默认拥塞控制算法设置为 RACK 并写入 sysctl 配置,实现开机启用
# sysrc kld_list+="tcp_rack" # 将 tcp_rack 模块添加到系统启动加载列表,实现开机启用
# kldload tcp_rack # 立即加载 tcp_rack 模块
# sysctl net.inet.tcp.functions_default=rack # 立即应用 TCP RACK 拥塞控制算法重启或加载内核模块后,可通过如下命令显示系统中可用的 TCP 拥塞控制算法列表:
# sysctl net.inet.tcp.functions_available
net.inet.tcp.functions_available:
Stack D Alias PCB count
freebsd freebsd 3
rack * rack 0TCP BBR
TCP BBR 是 Google 开发的一种拥塞控制算法。作用有两个:
充分利用带宽;
降低延迟。
通常来说,如果使用代理软件,建议启用 TCP BBR 功能,这在提升速度和稳定性方面效果显著。在中国大陆,该技术主要用于网络优化。在 FreeBSD 中,TCP BBR 由 Netflix 团队开发。
无需编译内核,可直接将 tcp_rack 和 tcp_bbr 模块添加到系统启动加载列表,实现开机启用
将 TCP 默认拥塞控制算法设置为 BBR 并写入 sysctl 配置,实现开机启用:
重启系统:
重启后,查看当前系统使用的 TCP 默认拥塞控制算法:
若输出结果为 net.inet.tcp.functions_default: bbr,则 TCP BBR 启用成功。
参考文献
故障排除与未竟事宜
局域网速度良好但互联网速度不佳
RACK 和 BBR 在局域网表现良好,均优于默认堆栈;但在互联网上表现不佳:RACK 的互联网速度约为默认堆栈的三分之一,BBR 则约为默认堆栈的六分之一。
或许通过调整参数可以解决该问题,具体方法待研究。
最后更新于
这有帮助吗?