Advertisement

JNetRobust - Virtual, reliable udp protocol for Java 1.6+

Started by November 03, 2014 01:31 AM
1 comment, last by mucaho 10 years ago

robust.png

JNetRobust is a Java implementation of Glenn Fiedler's article about building reliability on top of UDP. I have extended it in order to handle retransmission & ordering by the protocol itself, instead of doing it in the application. Read the article about the motivation to use reliable UDP.

It's currently in alpha, tested in virtual environment, but needs testing in real network.
You can find all the necessary documentation & examples in the README and Wiki.
If you are interested, take it for a spin and if there are issues/suggestions I am happy to read about them (here or as a github issue).

Cheers

If multiple applications using JNetRobust run on the same internet link, and the link is not fast enough to support all of them at their desired data rate, what happens?

Also, what is the benefit of removing the reliability/retransmit determination from the application? I would think that the application has information about what would need to be reliable/retransmitted, not the library.
enum Bool { True, False, FileNotFound };
Advertisement
If multiple applications using JNetRobust run on the same internet link, and the link is not fast enough to support all of them at their desired data rate, what happens?

Congestion control is planned for the future. I am still investigating which algorithm to use and how to interface with application.

Also, what is the benefit of removing the reliability/retransmit determination from the application? I would think that the application has information about what would need to be reliable/retransmitted, not the library.

The benefit of removing reliability determination from the application is that you can tell JNetRobust to automatically retransmit all data or not. You are notified about acked/unacked data and thus still get to retransmit individual packets in the application if you want. You have access to both reliable and unreliable data at the receiving end (unreliable data is the data fresh from the network; reliable data is ordered and will have a delay).

This topic is closed to new replies.

Advertisement