[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