V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
laiyingdong
V2EX  ›  分享发现

kcptun 据说可以比肩 Finalspeed?作为连接服务器传输数据的加速软件?

  •  1
     
  •   laiyingdong · 2016-05-25 19:12:51 +08:00 · 22689 次点击
    这是一个创建于 2864 天前的主题,其中的信息可能已经有所发展或是发生改变。
    kcptun 是 kcp 协议的一个简单应用,可以用于任意 tcp 网络程序的传输承载,以提高网络流畅度,降低掉线情况。

    https://github.com/xtaci/kcptun
    12 条回复    2017-04-01 01:02:03 +08:00
    Themyth
        1
    Themyth  
       2016-05-31 10:46:42 +08:00
    额 怎么没人探讨这个问题。。。
    cye3s
        2
    cye3s  
       2016-05-31 11:21:04 +08:00
    我测试过,速度没 fs 快,可能是 sndwnd,rcvwnd 参数还要优化, vps 是 BWG , 100M 电信, fs 能上 32Mbps, kcp 只能在 12Mbps 左右
    aru
        3
    aru  
       2016-06-15 22:07:06 +08:00
    上海电信 200M 带宽测试,有效带宽 21%
    如果有较多人使用这种程序,出国链路速度会变得越来越可怕
    xtaci
        4
    xtaci  
       2016-06-18 11:56:53 +08:00
    有效载比的参数可以调整的,可以试试-mode default 或 fast 模式,或者关闭 fec
    aru
        5
    aru  
       2016-07-05 16:21:00 +08:00
    @xtaci 换成 default 后,有效负载比大大增加了,最多可以达到 60% 左右,一般有 40%,比原来好多了
    xtaci
        6
    xtaci  
       2016-07-05 20:34:21 +08:00
    @aru 载比和速度是一对矛盾,载比高,意味着需要等待更久,让延迟的数据包到达。
    载比低,意味着可能误判数据包丢失,导致数据包重复发送了。
    xtaci
        7
    xtaci  
       2016-07-05 20:43:05 +08:00
    @aru 这些都可以通过观察 SNMP 的输出来调整, kill -SIGUSR1 pid 可以打印详细情况。

    BytesSent: 167448581 BytesReceived: 9022988 MaxConn: 8 ActiveOpens: 0 PassiveOpens: 23 CurrEstab: 3 InErrs: 0 InCsumErrors: 7361 InSegs: 141681 OutSegs: 1051412 OutBytes: 1337182120 RetransSegs: 669591 FastRetransSegs: 442516 EarlyRetransSegs: 145268 LostSegs: 81807 RepeatSegs: 87 FECRecovered: 942 FECErrs: 0 FECSegs: 32499

    例如上面这段, RepeatSegs 表示收到的重复数据, InSegs/RepeatSegs ,表示 incoming 数据包的重复率

    RetransSegs / OutSegs 可以得出 outcoming 数据包的重复率。可以看出,当前链路丢包导致的重复率较高。
    xtaci
        8
    xtaci  
       2016-07-05 20:51:49 +08:00   ❤️ 1
    kcptun 设计上已经非常良心了。
    1. 有超时退让, RTO ,网路不好的时候,会退让,有基本的利他机制。
    2. 不伪造数据包类型,不用 raw socket/pcap 可以在非 root 运行,正常的协议栈流动。
    3. 窗口大小默认设置保守。
    wske
        9
    wske  
       2016-07-09 16:56:14 +08:00
    @xtaci 所以说,理论上 kcp 无论如何改进优化,在绝对速度上是不可能好于 FS 的,因为 FS 足够流氓,足够暴力。

    是不是可以这样理解?
    xtaci
        10
    xtaci  
       2016-07-26 16:24:06 +08:00
    @wske 不能这么理解,各有优劣, TCP 信道质量好,丢包低,但简单的 RST 包就能让路由器断掉这个连接(conntrack)。
    UDP 信道质量低,但无状态,抗干扰性能较好。
    kawaiiushio
        11
    kawaiiushio  
       2016-08-09 15:11:37 +08:00
    @xtaci 希望增加 armv8 (rspi 3) 的預編譯二進制文件
    winfirm
        12
    winfirm  
       2017-04-01 01:02:03 +08:00
    不怎么会用,感觉和没加速没区别,是我没配置正确?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2013 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:19 · PVG 00:19 · LAX 09:19 · JFK 12:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.