apernet / hysteria

Hysteria is a powerful, lightning fast and censorship resistant proxy.
https://v2.hysteria.network/
MIT License
15.13k stars 1.69k forks source link

0 RTT #179

Open a2232189 opened 2 years ago

a2232189 commented 2 years ago

Ever consider replacing quic.Listen() with quic.ListenEarly() to make use of 0 RTT of quic?

I believe it will reduce 1 round trip time (around 200ms) when resuming a connection.

What do you think?

PHCSJC commented 2 years ago

确实有这个问题,我测试也发现了,延迟变2倍

测试方法: ip rule add fwmark 1 table 100 ip route add local 0.0.0.0/0 dev lo table 100 iptables -t mangle -I PREROUTING -d 8.8.4.4 -j TPROXY --on-port 1092 --on-ip 0.0.0.0 --tproxy-mark 1 iptables -t mangle -I OUTPUT -d 8.8.4.4 -j MARK --set-mark 1 这样配置后,本机访问8.8.4.4就会走代理了

dig youtube.com @8.8.4.4 +tcp 发现每次解析的时间都是2倍延迟

dig youtube.com @8.8.4.4 udp解析的延迟是正常的,1倍延迟,所以就只有TCP是2倍延迟

而xray并没有这个问题(应该是多路复用的原因),希望大佬抽空可以解决下!

pureair commented 2 years ago

不建议开0-RTT吧,毕竟重放攻击也是翻墙协议面对的常见问题了。要开的0-RTT的话,建议做个选项,不要统一开。

PHCSJC commented 2 years ago

@pureair 也可以在外层再套个udp2raw防重放攻击,我试过hysteria+udp2raw比hysteria的tcp模式稳定,但速度要慢得多

moranno commented 2 years ago

@tobyxdd 希望能支持0RTT,我可以付费支持开发,我tg:@missmoranno

另外看到一个PR:https://github.com/HyNetwork/hysteria/pull/422 这个是否就可以减少一个RTT?

PHCSJC commented 2 years ago

@tobyxdd 希望能支持0RTT,我可以付费支持开发,我tg:@missmoranno

另外看到一个PR:#422 这个是否就可以减少一个RTT?

我发也过issue,希望作者可以支持