logo NodeSeekbeta

【脚本首发】TQ: TcpQuality,看看你的VPS是否适合你的运营商;含DMIT-LAX PRO/EB DMIT-TRO-PRO品川 SaltyFish(咸鱼)美西p/e 绿云JP/SG 31省三网对比

  • CORONA,广东移动

    IPv4回程质量

  • 非常好的项目,顶一下让更多人看到

  • @Archimides #161

    感谢使用,corona还是很强啊,电信走9929好稳

  • 发的是40B的握手包, 是无法贴近宣传的"实际上网体验".

    loss检测看着比较合理, 但是延迟是理想化的 (当然可能这就是你想要的结果. 但这不是贴近"实际")

    1. 很多vps线路有小包优化, 实际接近MTU的包可能不一样
    2. 你的延迟 = 30个中成功的单发SYN取平均 (btw你备注写的60...), 实际上网TCP丢包了会重传, 结果就是那一下的延迟会变高(这也是大部分tcp探针会有尖刺,但是loss依然为0)
  • @nsgba #164

    回应下老哥的几个问题

    1. 40B是nexttrace的tcp包默认值,虽然我没采用nexttrace(有频率限制),但借鉴成熟项目的默认参数应该没问题。所谓大小包优化,尤其是大家之前喷过的netlab,实际上并没有明确的证据。当然后续改成1200B去探测也没问题。
    2. tcp理论上不存在丢包(有重传机制)但一旦没收到ACK,就会重新发送包建立TCP连接,这样你体验上就是tcp建立过程变慢了,网页/视频首次加载速度慢。(这个探测方式跟komari的tcp探针类似,但实现方式不同)。

    而且我认为第2点是非常有必要的,例如昨晚v.ps sjc电信回程劣化,通过这样的方式就能探测出来。如果考虑tcp重传,只计算tcp建立连接失败的次数,那么v.ps目前还是良好的线路,这显然与用户的实际感受不同。实际上DMIT的LAX我提交了相关的检测结果,不会有误判的“毛刺”的。或者说,有“毛刺”本身就是线路不够稳定。

    30/60是调整过一次,因为部分aws cpu性能较弱,后续会更新readme和使用说明。

  • @k2think #165

    那就是我猜的的:这是你想要的方式

    你的线路质量体现在丢包上,然后你通过关闭tcp内核重转来获得这个丢包率. --> 所以我说loss检测合理
    如果考虑重转的话, 那线路质量主要是看rtt的jitter以及最大等(即毛刺). 本质上是两种不同的方式, 你选的是前者. 但对于实际体验来说(因为这是你提到的), 毛刺的最大值能直观反映到用户体验(比如一个1.2s的毛刺即反应用户可能某次打开页面需要1.2s). loss是无法体现的 (举个极端点的例子,假设每个tcp都会丢第一个包,且只丢第一个,那你的结果会显示loss100. 但实际用户体验是双倍延迟,没有断连)

    还是那句话, 测试方式很多种, 没有好坏之分, 也没银弹

  • @nsgba #166

    老哥的理解完全正确 确实特意设计成这样的
    这个脚本的初衷就是为了检测“精品回程”线路的毛刺
    实际上用speedtest的cli也会报告jitter,或者说毛刺。但重传往往随着速度的提升而增加,而这类测速工具往往会尽可能占满带宽。但用户实际上网中,占满带宽的情况非常少见。

    我主观上感受,用户上网中受到“首次加载延迟”的体感,要比单线程能跑多少/多线程能跑多少更重要。而且后者可以通过调优的tcp参数(例如魔改版的bbr),或者直接暴力发包的udp协议改善。但tcp首次建立连接的速度是用户每打开一个网页都会遇到的。

    更客观的讲,如果用户购买的是亚太的优化线路机器,那么即使有一两次重传,也只是从50ms跳到100ms,但如果是物美价廉的美西,那么就是从160ms跳到320ms(这里简单化问题,不包含VPS代理访问的延迟),这时用户的体感就非常明显了。这也是脚本重点关注的地方。

    当然老哥提到的“用户体验是双倍延迟,没有断连”,这个点肯定是脚本探测方式的固有问题,但目前确实没有太好的方法去兼顾。我考虑后续将“丢包率”修改成“重传率”或许更不容易让用户误解。
    xhj028

  • 新版本支持回程路由探测,但目前处于前期开发阶段,有任何bug可以回帖或者私信

  • 插眼

  • 这么高质,顶一个 xhj003

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有72730位seeker

🎉欢迎新用户🎉