<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, May 3, 2021 at 9:39 AM Winfried Ritsch <<a href="mailto:ritsch@iem.at">ritsch@iem.at</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Am Montag, 3. Mai 2021, 11:48:07 CEST schrieb Fons Adriaensen:<br>
> On Sun, May 02, 2021 at 09:37:40PM +0200, Winfried Ritsch wrote:<br>
> > Please disagree if you can reference:<br>
> > - OSC 1.0 ist not only UPD<br>
> <br>On the other side, with the type tags, you know when a message is complete if <br>
you wait for number of bytes or the the type ends(, if no bytes got lost...)<br>
The problem of UDP: UDP applications must be willing to accept some packet <br>
loss or this has to be handled by the protocol implemented with OSC. and/or it <br>
should be a "stateless"  protocol. <br>
So if package loss is a problem, think of a mute action TCP/IP is more easy to <br>
handle, since we know when a connection is lost.<br>
So maybe its better to do stream parsing and a stream protocol than UDP and <br>
some handshake or failsave protocol, but of course this depends on the use <br>
case, so on a sound system critical mixer I prefer TCP/IP.  <br>
<br></blockquote><div><br></div>I wonder how much common libs have overcome those problems in practice - for example in the gaming and high volume data applications I am aware of they use the Aeron github lib that claims to be an ‘Efficient reliable UDP unicast , UDP multicast, and IPC message transport’ . </div><div class="gmail_quote"><br></div><div class="gmail_quote">Aeron encodes its messages in binary. The lib uses memory mapped files stored in /dev/shm that are transferred over UDP. In my experience, I hit several servers implementing Aeron very hard all day long and nothing gets dropped under normal circumstances. <br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Yet for the OSC use cases that I have for live performances, I just need to send a couple oscsend commands over a 5 minute period. I can't imagine normal use cases being much different for the mixers that expose their features with OSC messages defined in JSON. <br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Robert<br></div></div>