glorytun icon indicating copy to clipboard operation
glorytun copied to clipboard

Out of order packets with aggregation.

Open Marctraider opened this issue 5 years ago • 10 comments

Hi!

For pure gaming I use Glorytun UDP atm.

But Out of order packets with aggregation causes some fluctuating packet loss due to OoO i presume.

Is there any way to deal with this? Latency of all 3 WAN's arent that far apart so that is probably an issue, would adding some send delay to 2nd and 3rd WAN solve this somewhat? So it acts more as failover rather than jittery udp data.

Marctraider avatar Sep 16 '19 18:09 Marctraider

Yes, it is already planned for 0.3.x :)

angt avatar Sep 16 '19 18:09 angt

Yes, it is already planned for 0.3.x :)

Oh nice thats great to hear!

How would you deal with this? Numbering tagging all outgoing and incoming packets on sequential order and drop the rest?

Can't wait for this :-)

Marctraider avatar Sep 16 '19 18:09 Marctraider

─────────────────██▌─███████▌────────
─────────────────███─██████████▌─────
───────────────▐─███████████████▌────
──────────────▐██████████████████▌───
──────────────▐███████████████████▌──
──────────────▐████████████████████──
──────────────█████████░░░█████████──
─────────────██████░░░▓░░░░▓░░░░███──
────────────▐█████░░░▓░░░░░░░░░░░██──
─────────────▐███░░░█████░░░░███░█▌──
─────────────█████░█░░░░░░█▓░░░░█▌───
─────────────█████░░░░░░░░░░░░░░░▌───
─────────────█░███░░░░█░░░░░▐▀▌░░▌───
────────▄▄▄──█░░█░░░░░█░░░░░▐▄▌░▓▌───
──────▐█░░░█─█░█░░░░░░░░░█░░░░░░░▌───
─────▐█░░░░█─▐▄▌▓░░░░░░░░░░░░▓░░░▌───
─────▐█░░░░█───▐▓░░░▐▄▄▄▄▄▄▄▄░░░█────
──────▐█░░░█▌───▐▓░░░▐─────▌░░░█▌────
──▄▄▄▄███░░██────▐▓░░░▀▀▀▀▀░░░█▌─────
─▐██░░████░░█▄▄───██▓░░░░░░░░█▌──────
▐██▓▓▓▓▓▓░░░░▓█▌─█████░░░░░▓██───────
▐█▓░░░░░░▓░░░░▓▓▌─███████████────────
▐█▓▓▓▓▓▓▓▓▓░░░█▓█▄▄█████▓▓██─────────
▐█▓░░░░░▓▓░░░░░░░▓▓▓████▓░███────────
▐█▓▓▓▓▓▓▓▓▓░█░░▓█▓▄██████░░███▄──────
─▐█░░░░░▓▓░██▀▀▀▀▐██████░▄░███▓▌─────
──▀▀▀▀▀▀▀▀▀▀──────█████░░▄░░███▓▌────
─────────────────▐█████░░▄░░██▓░▓▌───
─────────────────▐█████░░▄░░███░▓▌───
────────────────▐██████░░▄░░███░░▓▌──
─░░────────────▐███████░░▄░░███▓░▓▌──
░░░░───────────▐███████░░░▄░░░███░▓▌─
░──░──────────────▐████████████▌░░▓▌─
░──░──────────────█████████████▌▓░░▓▌
░──░─────────────▐██████████████░▓░▓▌
░──░─────────────███████████████▓░▓▌─
░──░──────────────▓████████████▌░▓▌──
░──░────────────────█▓█▌──█▓█▌───────
░──░────────────────█▓█▌──█▓█▌───────
░──░────────────────█▓█▌──█▓█▌───────
░──░────────────█──██▓█▌─█▓▓█████▓▌──
░──░───────█████████▓█▌─██▓▓███████▌─
░──░──────█████████▓▓▓█▌─████████───█
░░░░─────██───██████▓██▌──███████████
─░░─────██████████████▌───██──█████──
─────────████████──██

jedisct1 avatar Sep 16 '19 18:09 jedisct1

we are not going to fully reorder packets (this is the protocol jobs) but as you said we will add some latency on fast path to build a virtual path with stable statistics to help tcp and others.

angt avatar Sep 16 '19 18:09 angt

Wouldn't it be easier like MLVPN does it? Simply tag UDP packets on proper sequence, and on the end point read those in a buffer. If packets exceed set buffer just discard. Otherwise re-order them.

UDP (or UDP over UDP) wont ever re-order itself because it doesn't know any better :P

Only TCP over UDP shouldn't be an issue...

Marctraider avatar Sep 21 '19 17:09 Marctraider

A full reordering should not be necessary, but I will take time to explore all solutions don't worry :)

angt avatar Sep 21 '19 22:09 angt

Hello, I will postpone this feature for v0.5 because there are already a lot of changes in v0.4.

angt avatar Oct 22 '20 07:10 angt

And newer version never comes ... :-)

Kalimeiro avatar Feb 06 '21 00:02 Kalimeiro

just for @TalalMash : 2 years ago, newer version never comes :-)

Kalimeiro avatar Apr 24 '23 16:04 Kalimeiro

Hi!

For pure gaming I use Glorytun UDP atm.

But Out of order packets with aggregation causes some fluctuating packet loss due to OoO i presume.

Is there any way to deal with this? Latency of all 3 WAN's arent that far apart so that is probably an issue, would adding some send delay to 2nd and 3rd WAN solve this somewhat? So it acts more as failover rather than jittery udp data. Hi! I would like to humbly ask you the following, how to set route to the server IP on the client side.

Example: client have two interface, usb1 usb2

setup two paths glorytun path up <LOCAL_IP1> rate tx 1mbit rx 20mbit glorytun path up <LOCAL_IP2> rate tx 1mbit rx 20mbit

At this point, the client's routing table has not changed. However, I should set default route is tun0. route add default dev tun0

Now, I have to make sure that I can connect to the server IP via usb1 usb2.So, I should set, route add -net <SERVER_IP> netmask 255.255.255.255 dev usb1 route add -net <SERVER_IP> netmask 255.255.255.255 dev usb2 But, apparently only connecting to the server via usb2.

And, I use ping 10.0.1.1/tcpdump -i usb1/tcpdump -i usb2 It is true that only data can be found on the usb2 interface.

In addition, I also tried to create two routing tables, but still not.I don't know what's wrong.

Hope to get some help from you, thanks!

KudoWu avatar May 15 '23 13:05 KudoWu