[JDEV] Keep-Alives
Matthias Wimmer
m at tthias.net
Wed Jul 3 18:12:01 CDT 2002
Hi Dave!
Dave wrote:
>Since keepalives seek to solve a problem created at the TCP level,
>solving the problem at the TCP level makes most sense, IMHO. The current
>practice of simply sending blanks solves the problem transparently
>to the Jabber protocol, except that the data loss problem remains.
>
Right ... problems we have with TCP are already solved. Why don't use
this? We don't need many lines of code in the server and every client
benefits by this without being changed in any way.
We can change the interval of the keep-alive packets to a more useful
value and we don't need this probes while there is data exchanged (for
the purpose to verfy that the connection is still alive and for the NAT
routers to don't close the connection).
>The data loss problem, IMHO, should be solved seperately, since it's a
>general problem of delivery confirmation over an unreliable transport
>(TCP, in this case). If Jabber entities simply keep packets in their
>queues until their delivery is confirmed by the next hop, data loss will
>no longer occur. (Obviously, it'd be wise to use the TCP technique
>of piggybacking confirmations on other packets and on each other, to
>avoid crowding the network with "<message id="243" type="delivered"/>"
>responses to messages.)
>
>
What do you mean with the TCP technique? Why not confirming it with XML?
I think it's one of our strengths that we have a very simple protocol.
We just have a TCP connection and we're just sending XML over it. Sure
... XML data is big and redundand, but that's good. If you have a bug in
and XML document you can easily fix it (even by hand) ... you can't do
this with binary data. Also it's very easy to debug, therefore you have
less bugs in your products. If you are concerned about the amount of
traffic you generate (e.g. because you connect by a mobile device and
traffic is expensive), then compress it.
Using OOB is exactly what we don't need: It would make the protocol much
harder to be implemented. There aren't many programmers that want to
deal with low level networking stuff. Also adding new XML vocabulary to
confirm delivery will be much easier to implement in existing clients
then to add OOB handling to them.
Tot kijk
Matthias
--
Fon: +49-700 77007770 http://matthias-wimmer.de/
Fax: +49-89 312 88654 jabber://mawis@charente.de
More information about the JDev
mailing list