-
Notifications
You must be signed in to change notification settings - Fork 833
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
Multiplexing function suggestion #315
Comments
UDPspeeder increases number of packets, it shouldn't increase num of (unique) 5 tuples even if the inappropriate game creates new socket on every packet (at least from my understanding)
if multiplexer does work for you, you can pipe UDPspeeder traffic through some other tunnels which supports multiplexer by themselves. For example: |
or maybe: wireguard----->UDPspeeder------------------(internet)------------->UDPspeeder------>wireguard then there will be only a single 5-tuple exposed to both UDPspeeder and the ISP |
Thank you for your reply. I have recently tried udp2raw. But it introduces extra 10ms latency during every half loop even I have closed the encryption. It is unbearable for some of FPS players. I haven't tried wireguard. I will try it later and feedback. Thank you for your advice. :) |
no udp2raw shouldn't add that much latency. a properly written c++ program shouldn't add that much latency If I remember correcly when I do loop test locally it adds only a few ms (a few should be < 2) |
You are right. I didn't consider about ISP tcp latency. I suddenly have an idea. If I use raw-mode UDP in udp2raw, will it multiplex all traffic into a same 5-tuple as what it does in tcp mode? |
yes, all modes of udp2raw have built-in multiplexer but I suggest you to use this method (as least try it as the baseline for troubleshooting):
since when a network program malbehaves like this, there might be other weird problems you are not aware of |
I haven't considered about the malbehaviors of popular public softwares until I saw hundreds of established udp sessions created by a single process. I was shocked as well. Maybe they only launched some basic test on the network part of their games without any further optimization. |
First, Wangyu, appreciate your work. Thanks. On the multiplexing/demultiplexing topic, I hope the following function could be added. Still it is a single flow from application perspective.
It avoids blocking traffic by inspecting single destination port
Remember the frequency hopping theory...I would like to see that. |
I recently use it to enhance game transportation on my own IPLC server. When I use it to proxy UDP packets, I found that in some cases (especially when some online games send UDP packets with inappropriate socket strategy that it creates new socket to send every UDP packet), origin number of 5-tuple and packets number may be able to cross the ISP network.
But when it comes to UDPspeeder with -f2:2 and --timeout 0. Too many 5-tuples with too many UDP packets will lead to QOS in ISP's network (this has been already appeared simultaneously on my two friends' computer when they are playing Stranger of Paradise Final Fantasy together).
So, I think maybe a UDP multiplexer option may solve this problem. I do understand this will cost more traffic to record real socket info in UDP message part and reduce the efficient body length under same MTU, but it may be really useful in some cases.
The text was updated successfully, but these errors were encountered: