This repository has been archived by the owner on Mar 17, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 106
ws的 early 和 smux 同时打开时,会连不上 #46
Labels
bug
Something isn't working
Comments
trojan开了use mux又减速了 以前不是这样 |
我这里内网测速没遇到任何问题。我也没修改 内层mux的代码。 实际使用时的降速问题应该由线路问题造成。 |
Closed
解决这个bug,要使用 “逆序”写入的方式,先处理最内层,然后再一次向外写入 也就是说,在监听时,我们是顺序 抽丝剥茧,层层解包,而在 拨号时,要 反过来,由内而外 进行包装。 而目前的代码依然是由外到内,这是不科学的,要改。 但有个问题,就是,对于 vless/trojan这种没有握手阶段的 协议 来说,是无所谓的,但是一旦存在握手阶段,那么就必须 由外向内建立连接。 因为如果是由内向外的话,实际上是在没有建立连接的情况下获取子数据,这个仅限很少的情况。 |
实际上,仔细思考了, 在有 内层 mux存在时,很难进行 ws 的 early data,它们在原理上可能就是冲突的。 因为,假设我们不知道内层mux 是如何实现的,那么内层mux,以及更深层的 内层代理协议,可能都是有握手阶段的,而这个阶段在 ws 是不可预知的。 虽然我们在配置后是完全已知的,但也要要求 内部的所有协议都同时支持 0-rtt才可以。而smux 应该是不支持0-rtt,或者说没有暴露出接口的。 也就是说,解决该bug的唯一办法,就是放弃 earlydata。 |
e1732a364fed
added a commit
that referenced
this issue
May 9, 2022
修复了这个问题。 |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
根据用户反馈,我测了一下,如题。
这个是vs目前的架构造成的。需要仔细思考一下如何解决。
The text was updated successfully, but these errors were encountered: