On Tue, Apr 20, 2010 at 7:15 AM, Argent Stonecutter <secret.arg...@gmail.com> wrote: > On 2010-04-19, at 19:42, Joshua Bell wrote: >> >> That's a completely different issue. The lower level transport >> protocol guarantees reliable delivery of certain types of messages - >> packets are ack'd and resent if missed. > > 1. Are these messages actually being handled by that mechanism?
As far as I can tell from inspection of the code, yes. I don't know how to correlate that with the actual behavior of the system any more than you do, however. :( > 2. I have seen similar failure modes in downloads over TCP where the > end-user software declined to cross reference the expected size of the file > and the size of the file actually transferred and reported a complete > transfer when it wasn't actually completed. Not only does the lower level > transport have to guarantee delivery, the higher level has to notice whether > that happened or not. Telling it how many objects to expect (size of the > file) or transferring a terminating token (eg, the way zip puts the > directory at the end of the archive... which is how I discovered this > problem) is a common safeguard. Completely agreed. TCP guarantees the integrity of the stream, but by itself provides no metadata about what's being transported on top of it or that all of the data was sent. Common transfer mechanisms like FTP and HTTP provide that, but even those don't guarantee that the recipient processed the data it received. (Which, FWIW, motivated the design of http://wiki.secondlife.com/wiki/Chttp) As I mentioned previously, any new additions to the SL protocol use a network stack with multiple layers of reliability, security and metadata to provide transport of data that's more easily reasoned about. _______________________________________________ Policies and (un)subscribe information available here: http://wiki.secondlife.com/wiki/OpenSource-Dev Please read the policies before posting to keep unmoderated posting privileges