Git Product home page Git Product logo

Comments (9)

enfein avatar enfein commented on August 12, 2024 1

经过一番实验,最终选取了 CUBIC 协议作为 UDP 传输的拥塞控制算法。没有选择 BBR 的主要原因是,BBR 使用 RTT 作为主要的输入参数,而 mieru 中 UDP 的数据包是通过间歇性轮询来处理的,这个间歇性轮询的时间间隔对 RTT 有显著的影响,导致 BBR 始终无法处于稳态。相比之下,使用系统中断来处理的 TCP 包有比较稳定的 RTT,因此 BBR 算法可以优化得出 RTT 乘以带宽的最大值。

在现代拥塞控制算法中,CUBIC 是实现极为简单,且不依赖 RTT 的算法。在实验环境中,使用 CUBIC 的 UDP 传输极限速率可以做到 TCP 的一半(瓶颈是 CPU 不是带宽),在移动网络等丢包严重的恶劣工况下,UDP 可以通过较多的重发获得比 TCP 更快的速度。

from mieru.

moranno avatar moranno commented on August 12, 2024

另外作者是否有计划在clash meta中pr以支持mieru?

from mieru.

enfein avatar enfein commented on August 12, 2024

BBR 肯定会做的,现在 UDP 代理协议的速度太慢了。

我对 clash meta 不熟。VPN 软件如果可以直接连 socks5 代理,就不需要什么额外的支持了,例如 netch 就可以直接配合 mieru 使用。如果 VPN 软件没有办法接 socks5 后端,才需要通过插件等方式支持其他的翻墙协议吧。关于这方面,能否提供更多关于 clash meta 的信息?

from mieru.

enfein avatar enfein commented on August 12, 2024

@moranno 你的想法可以通过代码实现出来么?如果可以,我们讨论一下,实现相关的功能,让大家获益。如果不行,与我一个人探讨,帮助不大。

from mieru.

longxx avatar longxx commented on August 12, 2024

今天部署了一下,速度和稳定性应该没问题。就是不支持full cone NAT吗。打不了游戏呀

from mieru.

maskedeken avatar maskedeken commented on August 12, 2024

今天部署了一下,速度和稳定性应该没问题。就是不支持full cone NAT吗。打不了游戏呀

看udp数据包的结构没有包含地址信息,应该不支持full cone

from mieru.

enfein avatar enfein commented on August 12, 2024

@longxx mieru 不支持 full cone NAT

当初设计协议的时候,着重考虑了安全性和防探测。个人认为支持 full cone NAT 会损害代理服务器的隐匿性。

from mieru.

enfein avatar enfein commented on August 12, 2024

@moranno 根据现在 CPU profile 数据来看,基于 KCP 协议的 UDP ARQ 实现,即便使用 BBR 拥堵算法,在理论速度上也不太可能超过 TCP,但是当丢包比较多的时候,BBR 可能会有优势。我的想法是,先做一个 benchmark 合理评估当前 TCP 和 UDP 在各种丢包场景下的速度,然后再实现 BBR,看看 BBR 对速度的提升有多大。这个项目如果不出意外会在 1.10 版本完成。

from mieru.

mx4994 avatar mx4994 commented on August 12, 2024

不懂代码,看本项目是go语言,meta也是go,应该好移植吧?
https://t.me/MetaKernel 这是meta群的链接,挺活跃的,进群问问,看其他人有没有想法,之前刚添加了tuic。

from mieru.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.