Comments (5)
One hack could just be KCP-X over TCP over ScrambleSuit. That way roaming isn't such a biggie. The usual pitfalls of TCP over TCP don't exactly apply since we use link modeling rather than loss-based cwnd control, and (bbr/vegas-based) TCP isn't so different from something like LTE in that respect. We could turn off all fast and early retransmits as an optimization (RTO retransmits are highly suppressed in KCP-X anyway) and use multiple TCP connections that open and close often. This should prevent us from triggering "long persistent connection" heuristics.
A better approach might be to do a proper multipath-TCP type protocol, where the onion routing is actually on unordered packets rather than streams, and KCP-X is end-to-end. That way, TCP and UDP bridges would just be "physical links" and complex ad-hoc logic wouldn't be needed. That might be very complex though, and is definitely a "geph3" type project.
from geph2.
One thing we could do is actually introduce "TCP primacy", and have clients connect over ScrambleSuit to negotiate KCP-X sessions on other ports both over TCP and UDP. This might have fingerprinting implications, but it'll also simplify the really brittle N4 handshake logic that's the source of countless bugs.
A more backwards-compatible approach might actually be N4/KCP-X primacy, but that does require more long-term maintenance of the crappy N4 handshake and crypto code. In any case the "subsidiary" streams would have really simple crypto since no handshakes are needed anymore.
from geph2.
I have not read the code yet, but if all geph need is an unreliable datagram, can we use raw socket with fake TCP headers?
In that way, we have all benefits of UDP (roaming, better latency with TCP-over-UDP), and at the same time, we can make the router thinks that we are sending TCP segments.
Not an expert, just wondering if this is doable.
from geph2.
Custom/fake TCP is bad since it's a fingerprint that can be used to identify and block Geph.
from geph2.
A TCP-first approach has been pushed in e4639b2. In a future version of gephgui, clients will always first connect via TCP to bridges and then negotiate the next protocol.
from geph2.
Related Issues (20)
- 能不能给个开关 关闭socks5代理啊??
- 局域网主机不能通过geph代理上网 HOT 1
- 迷雾通代理linux命令行-proxychains工具出错。 HOT 1
- Mac即使显示迷雾通已连接也依然无法访问外网
- 安卓通知页面白屏 HOT 1
- [linux command] failed getCleanConn() HOT 1
- Feature request: add support for IPv6 only network environment HOT 4
- 3.6.5 android PC均无法连接 HOT 2
- 3.6.7安卓及PC均无法连接
- 3.6.7安卓及PC均无法连接
- 3.6.7 PC Unable to connect to the network
- Will you release a client can used on arm64 Linux.
- Is it possible to make it auto start and auto connect at startup?
- Feature Request: Apple Silicon Support HOT 1
- 开启Geph之后macOS上App Store显示无法连接上
- 打开不了google
- Can you provide the aarch64 version of the binary package?
- 充了一个月的,但是没给我权益,还是提示我购买会员,但是我钱已经支付了 HOT 1
- 是否以及如何在ios设置sock代理以在局域网内共享电脑的geph代理呢?
- Windows version not connecting
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from geph2.