⚡CAKE with Adaptive Bandwidth - "cake-autorate" 项目推荐
项目介绍
cake-autorate 是一个自动调整 CAKE(Controlled Delay)带宽设置的脚本,适用于带宽可变的连接,如 LTE、Starlink 和电缆调制解调器。CAKE 是一种管理设备发送/接收数据缓冲的算法,旨在最小化延迟("bufferbloat")并提高网络响应性。然而,CAKE 本身无法动态调整带宽,cake-autorate 填补了这一空白,通过监测流量负载和单向延迟(OWD)或往返时间(RTT)来动态调整上传和下载带宽设置。
项目技术分析
技术原理
cake-autorate.sh
脚本通过监测负载(接收和发送利用率)和来自一个或多个反射器的 ping 响应时间,动态调整 CAKE 的下载和上传带宽设置。其核心逻辑包括:
- 在低负载时,衰减率回到配置的基线(受制于恢复期)。
- 在高负载时,增加带宽,但受限于配置的最大值。
- 如果检测到缓冲膨胀(增加的延迟),则减少带宽,受限于配置的最小值(并受制于恢复期)。
配置参数
cake-autorate 需要为每个方向(上传和下载)设置三个配置值:
- 最小带宽:设置为最低可能的无缓冲膨胀带宽,确保即使在最差条件下也不会出现缓冲膨胀。
- 基线带宽:这是在无负载或低负载下维持的稳定带宽,通常是上述折中带宽。
- 最大带宽:设置为连接可提供的最大带宽或更低,以在高流量时调整带宽,并在检测到 OWD 或 RTT 峰值时回退。
项目及技术应用场景
适用场景
- 可变带宽连接:如 LTE、Starlink 和电缆调制解调器,这些连接的带宽在不同时间可能会有显著变化。
- 需要动态带宽管理:对于需要根据实时网络状况动态调整带宽的应用,如在线游戏、视频会议等。
不适用场景
- 固定带宽连接:如 DSL 或光纤连接,这些连接的带宽相对稳定,不需要动态调整。
项目特点
动态带宽调整
cake-autorate 能够根据实时网络负载和延迟动态调整带宽,确保在不同网络条件下都能保持最佳性能。
低延迟优化
通过避免缓冲膨胀,cake-autorate 显著降低了网络延迟,提高了网络响应性,特别适合对延迟敏感的应用。
易于安装和配置
支持在 OpenWrt 路由器 和 Asus Merlin 路由器 上安装,并提供了详细的安装和配置指南。
详细的日志和性能分析
cake-autorate 维护了一个详细的日志文件,帮助用户分析性能,并提供了 CPU 使用率监控选项,确保在高带宽连接下也能保持稳定的性能。
开源社区支持
作为一个开源项目,cake-autorate 得到了活跃的社区支持,用户可以在 OpenWrt 论坛 上获取帮助和反馈。
结语
如果你正在使用带宽可变的网络连接,或者需要一个能够动态调整带宽的解决方案,cake-autorate 是一个值得尝试的开源项目。它不仅能够优化网络性能,还能通过详细的日志和性能分析帮助你更好地理解和管理网络。快来试试吧!