[standards-jig] Improving network integrity
thoutbeckers at splendo.com
Wed Dec 31 17:14:35 UTC 2003
On Wed, 31 Dec 2003 06:09:45 -0800, Justin Karneges
<justin-keyword-jabber.093179 at affinix.com> wrote:
> 1) Keep track of successful data exchanged between TCP connections.
> This goes
> for both c2s and s2s. If a packet does not safely make it across the
> network, then the sending implementation should be aware, so that it can
> bounce if needed. TCP is actually quite aware of what data has been
> successfully transmitted. Consider Linux 2.4, in which you can do this:
> /* get TCP send-Queue size */
> int size;
> ioctl(sockfd, SIOCOUTQ, &size);
> If this were easily possible everywhere, and implemented by all servers
> clients, we could nearly eliminate the 'black hole' effect in Jabber.
As I noted before, this is nice to have in some cases, but be careful not
rely on it too much, since this only works if the jabber client is
connected directly to the server. If a proxy is used often this will fail
to detect packets that disappear into the "black hole". Out of my own
experiance this is very common with GPRS connections when a cellphone goes
out of coverage. Alternatives may still be needed as well, for example
acking the arrival of each stanza.
This too could be done without changing XMPP, by wrapping XMPP in another
protocol that is used for this "signaling" behaviour. (This will ofcourse
require the server or some kind of proxy to implement that protocol). Or,
it could be done within XMPP itself, simply using XMPP to communicate
between the server and the client which packets have been received.
More information about the Standards