[Standards-JIG] The Ack Hack.
pavel.simerda.lists at centrum.cz
Thu May 11 15:09:53 UTC 2006
On 2006-05-11 08:56, Michal vorner Vaner wrote:
> On Wed, May 10, 2006 at 10:41:25PM +0100, Dave Cridland wrote:
> > On Wed May 10 19:14:47 2006, Richard Dobson wrote:
> > >If I have misunderstood can you explain exactly what he means by
> > >his reconnection stuff then?
> > If your connection gets lost, you go offline - just as now - and you
> > try to reconnect as soon as possible - just as now - and somehow, you
> > figure out which messages got there and which didn't - just as now.
> > "Hey, I'm back now, sorry, connection died. Did you get my last
> > message?" - except in deciated protocol, hop-by-hop, not as human
> > dialogue encapsulated in end to end message stanzas.
> > That's all - no servers maintaining a proxy presence, no roster delta
> > protocols, no eliding a full and complete startup sequence. (In fact,
> > I'm adding to it).
> > The biggest change is pulling the last step from end to end to
> > hop-by-hop, and from human interaction to protocol.
> > None of this mentions the acks themselves, please note - that's
> > because they're purely an optimization. The entire protocol works
> > absolutely fine without them, it's just it becomes quite costly in
> > terms of memory. Since the acks don't "do" anything, I've tried to
> > minimize their impact.
> But, this has a significant problem. There are many clients that has no
> way of remembering these numbers between sessions. It can as well be my
> computer goes down and it does not save the number to its disk. It may
> be that the power is off unexpectadly and I use my mobile phone client,
> which did not have the last conversation.
> I guess this "last seen stanza" thing is here just to get rid of
> duplicities, right? Because if it comes to that the client is completely
> differen, forgot it somehow or whatever, all the stanzas are sent and
> the unlucky user can sort the messages he saw out by himself, instead of
> not getting them.
> Anyway, the usual situation is something like my connection goes down
> entirely (if not, the TCP heals itself after a minute), so I know my
> messages will not arrive, because nothing from the internet works for me
> now. But, the server has no idea what happened and it has to timeout the
> connection - which is the place where they get lost.
> I'm against shorting the timeout to something like 30 seconds, I already
> had a situation where it recovered after 2 minutes. The connection would
> be lost, I would have to enter all roomes, etc. I just want the thing
> that if the connection does not recover, to store the messages for some
> future time.
I don't know what is wrong... if your client re-connects and re-joins all the
rooms for you. Psi does this for me.
I do reconnect myself if my connection has been broken for half a minute (at
least if I know about it).
And... sometimes the reconnect is faster than waiting for it to recover (it
works for my connection).
Or... could this be [at least] set (negotiated) by the client?
Keep it simple... http://www.pavlix.net/
More information about the Standards