<div dir="ltr">I seem to recall there was once a discussion about using UDP vs TCP for sim<->viewer communication, and one of the arguments against TCP (I believe it was a LL employee's opinion) was that the sim network stack would easily become overloaded managing all of the packets that  it would have to deliver reliably in the case of network problems, and this could easily use up all the available memory in the server machine and bog it down. The advantage to UDP in this case would be the ability to discard packets where the information was no longer timely. I suspect something similar may apply in the case of overzealous use of the reliable flag as well.<div>
<br></div><div><br><br><div class="gmail_quote">On Thu, Oct 2, 2008 at 11:59 AM, Justin Clark-Casey <span dir="ltr"><<a href="mailto:jjustincc@googlemail.com">jjustincc@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hmm, I then did the obvious thing and compared it (unscientifically) with a couple of sessions on the Linden Lab grid.<br>
There, reliable packets appear to compromise approximately 40% of the transfer.<br>
<div><div></div><div class="Wj3C7c"><br>
<br>
-------- Original Message --------<br>
Subject: Does OpenSim need to leave so many packets marked as reliable?<br>
Date: Thu, 02 Oct 2008 19:32:57 +0100<br>
From: Justin Clark-Casey <<a href="mailto:jjustincc@googlemail.com">jjustincc@googlemail.com</a>><br>
To: <a href="mailto:opensim-dev@lists.berlios.de">opensim-dev@lists.berlios.de</a><br>
<br>
Hi there,<br>
<br>
A vast number of the packets that we send out from OpenSim (usually >95% according to the statistics printed to the<br>
Linden viewer log on shutdown) are marked as reliable.  This requires that the viewer respond with an ack, and it just<br>
doesn't appear that this is done very well when a large number of reliables are sent.  A lot of acks never come and we<br>
often appear to end up resending thousands (or in the worst case tens of thousands) of packets.<br>
<br>
In a private experiment I've set Header.Reliable = false for the LayerDataPacket and ObjectUpdatePacket (which appear to<br>
be the greatest sent by count, and which are currently reliable by default in libOMV).  Naturally, this cuts down the<br>
vast number of resends (and possibly some of the packet_out_of_order messages that come out on the console log) without<br>
any apparant ill effects.  However, my testing has been pretty limited so I'm minded to wait until Monday before making<br>
any trunk changes, since then I can get a better load test with multiple avatars (this doesn't stop anybody else testing<br>
of course :-)<br>
<br>
Any opinions on this?  Is there a good reason for these packets to remain reliable (when resends are probably rare<br>
anyway)?  libOMV appears to mark every packet as reliable by default...  and then OpenSim removes this from a couple of<br>
them but not from others.<br>
<br>
--<br>
justincc<br>
Justin Clark-Casey<br>
<a href="http://justincc.wordpress.com" target="_blank">http://justincc.wordpress.com</a><br>
_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
</div></div></blockquote></div><br></div></div>