-
Notifications
You must be signed in to change notification settings - Fork 4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XHTTP client: Refactor "packet-up" mode, chasing "stream-up" #4150
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
tried this now , with setting scMaxEachPostBytes to 100000,the upload did not stuck like before with my crappy isp,great work,thanks |
1000000 呢 |
when i set it to 1000000,it does a big burst at first but speed goes down after that a lot,my upload is extremly limited with my current isp,lowering postBytes seems to improves it for me |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Yes |
貌似这个 PR 之后客户端就不需要 |
Copied from quic-go#4749, for XTLS/Xray-core#4150
干脆一步到位,于是我 fork 了 quic-go v0.46.0,加了 Xray 用到的两个 tracepoint:XTLS/quic-go@571fae2 |
To XQZR:但凡你点开看下这个 commit XTLS/quic-go@571fae2 ,它就是从 quic-go PR 复制来的,上游合并后直接升级就行 |
To 风扇滑翔翼:就是 POST 的 body 全被系统网络栈收了后再弄下一个,这样能保证顺序且自然有 back pressure,类似于 stream |
Isn't better to fork https://github.com/refraction-networking/uquic instead? |
Great Work!!! <3. Hoping for more success. |
|
是不是只有日志才能观察出握手的是H2还是H3?是3模式里面的哪一个? |
Info 有输出实际使用的 mode,但我看了下上面那行 dialing splithttp to 始终是 tcp,准备改一下 |
7463561 日志加了 HTTP 版本和 host,上下行分离的下行也有日志了 |
* Add wroteRequest (waiting for new quic-go) * Use XTLS/quic-go instead * Client doesn't need `scMaxConcurrentPosts` anymore * GotConn is available in H3 * `scMaxConcurrentPosts` -> `scMaxBufferedPosts` (server only, 30 by default) Fixes XTLS#4100
Thank you very much for the hard work. I haven't followed the news and information for a long time. I use more free servers |
#4163 加了
hMaxRequestTimes
,其实主要是利好 packet-up,也就是 H3 的默认 mode,这个 PR 同理XHTTP packet-up 模式的上行发送大量数据会出问题,此前 #3972 (comment) 只修好了一部分,这个 PR 基于 #4100 (comment) “back pressure 没到位 ...... 本来就应该等上个 POST 把数据写进系统网络栈后再弄下一个 POST”,应该是彻底修好了
比如操作系统 TCP 栈还积压着大量数据没发完,此时你又想给它塞数据,操作系统为了让你缓缓就会迟点再返回,这就是 back pressure,很好理解。而 packet-up 模式以前为了不等 response 就发下一个 POST,多个本应串行的 POST 其实是并行发出的,且并发数达到默认值 100 前无视 back pressure,这两点加起来导致了疑难杂症,比如某个 POST 迟迟没能发完,就堵塞了。
H3 的 httptrace 尚未合并 quic-go/quic-go#4749 ,且 Xray 的依赖暂时锁在 v0.46.0,所以我 fork 了:XTLS/quic-go@571fae2 ,顺便把 traceGotConn 也加上了,此外
scMaxConcurrentPosts
改成了scMaxBufferedPosts
,仅服务端,默认值 30最后当然是:
0xDc3Fe44F0f25D13CACb1C4896CD0D321df3146Ee