3 Dec 2009 15:46
The TCP brownout - i.e. loosing messages problem
Damjan <gdamjan <at> mail.net.mk>
2009-12-03 14:46:18 GMT
2009-12-03 14:46:18 GMT
I beleive the problem is widely known by now.
That is, if a user sudenly get's disconnected of the internet - like if
the power goes out, or he suspends his laptop, his router dies, etc. - his
TCP session with the XMPP server stays lingering for a posible long time
(afaik max is up to 2hours?).
For that time the XMPP server thinks the user is online and will route
messages to him, until the TCP stack in the OS notices the problem.
These messages will be *lost*!
So my question is two-fold,
1. what are admins doing to prevent this, or at least limit the loss of
messages
1.1. more specifically, I'm using ejabberd on Linux, so that's what I'm
most intereseted in
2. Is there a plan to somehow enhance the XMPP protocol to better handle
this case? Getting a message twice would be much preferable to
loosing it.
ps.
I have a crazy idea that a user-space TCP stack could help so that
the XMPP server will actually know what packets have reached the user,
so that it could queue the XMPP messages until all packets are ACKed.
Has anyone ever tried to do something like this?
--
--
(Continue reading)
RSS Feed