Skip to content
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

Out of order packets with aggregation. #43

Open
Marctraider opened this issue Sep 16, 2019 · 10 comments
Open

Out of order packets with aggregation. #43

Marctraider opened this issue Sep 16, 2019 · 10 comments
Milestone

Comments

@Marctraider
Copy link

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.

@angt
Copy link
Owner

angt commented Sep 16, 2019

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

@Marctraider
Copy link
Author

Marctraider commented Sep 16, 2019

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 :-)

@jedisct1
Copy link
Contributor

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

@angt
Copy link
Owner

angt commented Sep 16, 2019

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.

@Marctraider
Copy link
Author

Marctraider commented Sep 21, 2019

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...

@angt
Copy link
Owner

angt commented Sep 21, 2019

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

@angt angt modified the milestones: Glorytun 0.2.2, Glorytun 0.3.0 Oct 7, 2019
@angt angt modified the milestones: v0.3.0, v0.4.0 Feb 5, 2020
@angt
Copy link
Owner

angt commented Oct 22, 2020

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

@angt angt modified the milestones: v0.4.0, v0.5.0 Oct 22, 2020
@Kalimeiro
Copy link

And newer version never comes ... :-)

@Kalimeiro
Copy link

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

@KudoWu
Copy link

KudoWu commented May 15, 2023

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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants