第 14.4 节 TCP 堆栈
TCP 的实现被称为 TCP 堆栈(一层一层的堆叠,故称“栈”)。
FreeBSD 实现了多 TCP 栈共存,目前主要开发集中于 RACK 栈(由奈飞开发)和基础栈(4.4BSD 演化而来)。
使用 RACK 栈
# echo "net.inet.tcp.functions_default=rack" >> /etc/sysctl.conf # 持久化,重启生效
# sysrc kld_list+="tcp_rack" # 持久化,重启生效
# kldload tcp_rack # 加载内核模块,立即生效
# sysctl net.inet.tcp.functions_default=rack # 立即生效
重启或加载内核模块后,可通过如下命令查看所有可用的 TCP 栈:
# sysctl net.inet.tcp.functions_available
net.inet.tcp.functions_available:
Stack D Alias PCB count
freebsd freebsd 3
rack * rack 0
TCP BBR
TCP BBR 是 Google 开发的一种拥塞控制算法。作用有两个:
充分利用带宽;
降低延迟。
一般来说,如果你使用了代理软件,建议开启 TCP BBR 功能,在速度和稳定性上会有十分显著的作用。在中国大陆该技术通常用于魔法。该项目在 FreeBSD 中,由 Netflix 团队开发。
无需编译内核,可直接配置加载:
# sysrc kld_list+="tcp_rack tcp_bbr"
启动时加载 BBR 模块。
# echo 'net.inet.tcp.functions_default=bbr' >> /etc/sysctl.conf
重启:
# reboot
重启后,查看 BBR:
# sysctl net.inet.tcp.functions_default
若输出结果为 net.inet.tcp.functions_default: bbr
,则 TCP BBR 启用成功。
故障排除与未竟事宜
故障排除与未竟事宜等事宜请参考:
最后更新于