Archived

This forum has been archived. Please start a new discussion on GitHub.

Reliable UDP

Last time I looked reliable UDP support in ICE wasn't a feature. I wonder if it is by now.

I think it would be a great feature to add to ICE (if it isn't in yet).

Thank you.

Comments

  • marc
    marc Florida
    You mean reliable UDP multicast? Because reliable UDP unicast already exists, it's called TCP :)

    In any case, as with all such features, we don't add this just for fun (even though it would be a cool project), but only if there are commercial customers who need such a feature. However, since Ice supports protocol plug-ins, you could write your own.
  • When you select your protocol (transport I think) you can choose from TCP, UDP or SSL. In the documentation (I think I read it there) you said that packets in UDP weren't guaranteed to arrive in order nor to arrive at all (because that's how UDP works). Then I thought it would be cool that ICE supported RELIABLE and ORDERED UDP streams :) just for fun! (and for game projects also) :P

    Thx!
  • marc
    marc Florida
    Well, as I said, reliable and ordered UDP would in essence be TCP. There is no point in reinventing TCP...
  • Yeah 1 is data oriented the other is connection oriented, but ok :)
  • marc
    marc Florida
    Depending on what your definition of connection oriented is, if you make UDP ordered, it becomes connection oriented, too.
  • But it would be cool if you could activate those features to your will (the reliable and ordering ones), just like in raknet.
  • I thought UDP was more suited for games because of performance, but from what you say is it the same to do it with TCP or UDP? (sorry, I'm new to this, network programming stuff).
  • marc
    marc Florida
    It's impossible to give a general answer to this. It all depends on your application. Sometimes UDP has advantages over TCP, but for most applications TCP is the better choice. However, if you use UDP, then you must live with unordered and unreliable data transfer. If you make it ordered and reliable, then you basically reinvent TCP.

    In any case, if you would like us to provide consulting service for your game project, please contact us at info@zeroc.com. We would be happy to discuss the different design trade-offs for your project, but this is something that is out of the scope of the free help we can offer here on this message board.
  • Ok, I'm going to email you. Thank you.