Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Suppose there is UDP connection that does not expect much packet loss.

Are there already tools that allow wrapping a UDP connection to gain more reliability at expence of bandwidth and overhead, for example, using Reed-Solomon codes.

Expected usage:

host1$ someprogram --listen-udp
host1$ reedsolomon_udp --listen --connect

host2$ reedsolomon_udp --connect host1:1235 --listen
host2$ someprogram --connect-udp

The solution is not expected to remove losses outright, it expected to reduce them, especially if more than 50% packets are getting lost.

share|improve this question
There have been some papers written on this, but I've never seen an actual implementation: and which is unfortunately just an abstract – AaronLS Dec 14 '14 at 0:49

If the program expects reliable connections, then it needs to use TCP, not UDP. UDP is unprotected against loss at the protocol level - it's a best-effort delivery system only. TCP is a guaranteed-delivery system.

share|improve this answer
UDP program can expect some loss, for example, about 2%. And actual loss can be, for example, 70%. I need to "hammer thought" very unreliable network. The progam in question is not expected to remove the losses, it expected to lessen the number of them. – Vi. Feb 21 '13 at 14:36
Actually there is going to be TCP inside the UDP tunnel. But TCP works bad when many packets are getting lost. I'm considering implementing "reedsolomon_udp" myself, but first asking here because of maybe someone somewhere for something already implemented such thing. – Vi. Feb 21 '13 at 14:37
TCP inside a UDP tunnel? You're asking for problems. If you need to reduce packet loss, you need to clean up the dirty network. Wrapping a TCP connection inside a UDP "tunnel" (there really is no such thing), and then trying to re-wrap it to reduce packet loss, will very rapidly get you to an infinite-wait state due to the exponential back-off properties of the TCP session. – John Feb 21 '13 at 14:39
I want this as a solution to "clean up dirty network" that I can't control (as workaround). And what's wrong with "TCP inside UDP tunnel"? It's not TCP inside TCP. For example, Teredo uses this and doesn't seem to trouble... – Vi. Feb 21 '13 at 14:42
What you want doesn't exist. TCP inside UDP is bad. Teredo is for IPv6-inside-IPv4, which is at a different layer of the protocol stack, so it doesn't really apply. You're stuck. Clean up the network, or have it cleaned up, or deal with the packet loss. Those are your only practical choices. – John Feb 21 '13 at 14:45

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .