title: A Reliable UDP Implementation
body: <p>I need an implementation of UDP that meets the following criteria:</p>
  
  <ul>
  <li>Available on Linux and Mac (only latest versions matter)</li>
  <li>Usable from C++</li>
  <li>Orders packets</li>
  <li>Guaranties packet delivery</li>
  <li>Non conection oriented (like UDP)</li>
  </ul>
  
  <p>NOTE: I do NOT want to use TCP for this.
  NOTE: It can be implemented by any socket API, as long as it is available on the two platforms and is available to C++.</p>
  
  <p>EDIT:
  I have looked at the UDT, RUDP, and SCTP. These seem to be the major contenders. Any thoughts?</p>
  
  <p>EDIT:
  <a href="http://udt.sourceforge.net/" rel="noreferrer">UDT</a> seems to be what I am looking for. Is the fact that it is implemented in user-space over the kernels UDP going to be a huge performance problem? Or will the speeds still be faster than TCP/STCP?</p>
  
  <p>EDIT (2/15/12):
  I have came up with a solution that uses TCP and a central redirection server. The system lets one client send data to the server through an ever-open TCP connection, who them gives it along to the right other client along the server's TCP connection to the second.</p>