烧饼论坛 LZ.SB
登录

Skyline Speeder 正式开源 🚀

402
  • Xshell
    UID 2323Lv.13 进阶成员 编辑于

    Skyline Speeder 正式开源 🚀

    Skyline Speeder 是一套只在 TCP 发送端部署的加速方案,客户端继续用标准 TCP,不装软件、不打补丁、不用做任何配置。

    适用场景:带宽充足、存在非拥塞性随机丢包的单向长流,典型条件是丢包 10–20%、RTT 100–300ms。

    设计思路
    Skyline Speeder 默认认为丢包不携带拥塞信息,不会因为丢包降窗。它只认两种真实拥塞信号:排队时延增长和 ECN 标记。

    组成

    • skyline_cc:eBPF struct_ops 拥塞控制,负责自适应 cwnd、丢包率补偿和 pacing
    • skyline_policy:cgroup sockops,负责早期丢包感知和动态 RTO 上下限
    • skyline_tc:TC egress,负责重传包的 DSCP 标记和统计
    • skyline-speederd / ssctl:Rust 常驻控制面和命令行

    其中四个加速模块默认全开,也可以单独开关:

    • adaptive-cwnd:自动调节一次能发多少,加速主要靠它
    • loss-classifier:判断丢包是噪声还是真拥塞,是噪声就不减速
    • pacing:把数据均匀发出去,而不是一次全挤出去
    • early-loss:更早发现丢包

    另外有 16 个运行时参数可以在线调整,每条连接在 RTT 边界平滑切换,不需要重启。

    实测(100M 链路)

    • RTT 100ms / 丢包 20%:BBR 3.54M → Skyline 94.92M
    • RTT 300ms / 丢包 20%:BBR 3.48M → Skyline 79.92M

    对比原生 BBR
    闭环探测带宽,但高丢包下会间接受丢包影响,速度明显下降。

    对比 tcp-brutal
    开环,需要你自己指定发送速率,不感知拥塞,也没有自保护。

    Skyline Speeder
    闭环自动估计带宽,不受丢包影响,并且有排队时延和 ECN 护栏做拥塞保护。基于 eBPF CO-RE 实现,加载前经过内核验证器检查。

    如果出口带宽是已知且固定的,内核版本又比较旧,tcp-brutal 更简单。如果带宽未知或经常变化,需要可观测性和拥塞保护,并且能用 6.12 以上内核,选 Skyline Speeder。两者都不适合真正拥塞的瓶颈链路。

    使用须知

    • 内核需要 6.12 LTS 及以上,6.1 和 6.6 分支不支持
    • 如果丢包来自设备排队溢出,而不是随机丢包,使用后效果会变差
    • 安装脚本不会安装任何代理,也不监听任何端口

    一键安装

    curl -fsSL https://raw.githubusercontent.com/CYBERVERSE-Research/skyline-speeder/main/scripts/bootstrap.sh | sudo bash

    项目地址:https://github.com/CYBERVERSE-Research/skyline-speeder

    GPL-2.0 开源 · 由 Skyline Connect 独家冠名

    欢迎大家提供使用反馈,Star 或提 PR ⭐

    📩 联系方式

    👉 官方交流群
    https://t.me/skylineconnect_216211

    👉 官方公告板
    https://t.me/skylineconnect_announcement

    👉 IPT / 服务器租用 / 托管咨询
    https://t.me/Nothing_here_pm91j

  • 收藏支持反对打赏

2 条回复

  • gy
    UID 1180Lv.7 熟悉面孔
    #1

    cybd

  • 龟头
    UID 6592Lv.5 小有收获
    #2

    有用过的兄弟吗

发表回复