[Standards] Whitespace "ping"

Mickaël Rémond mremond at process-one.net
Tue Jun 11 11:48:23 UTC 2019

Hello Marcel,

> On 11 Jun 2019, at 13:28, Marcel Waldvogel <marcel.waldvogel at uni-konstanz.de> wrote:
> Why not just enable TCP keepalives? It is essentially a whitespace ping, except it does not propagate to the application.

As I understand it, TCP keepalives triggers after hours. The goal of whitespace keepalive is to detect connection loss in a matter of minutes or seconds. This is what you want in a mobile chat context, when you have bad network conditions and when the connection is expected to fail often.

See RFC 1122 for example: https://tools.ietf.org/html/rfc1122#page-101 <https://tools.ietf.org/html/rfc1122#page-101>
The default must be at least two hours:

            Keep-alive packets MUST only be sent when no data or
            acknowledgement packets have been received for the
            connection within an interval.  This interval MUST be
            configurable and MUST default to no less than two hours.

TCP keep-alive configuration is very low level. On Linux this is configured as a global OS parameters (so not configurable per connection).

I do not think that TCP keep-alives are helpful to make mobile connections more reliable.

> If you need something at the application level, then do something at the XMPP level, such as stream management.

The goal is to save bandwidth and CPU parsing time on both the client and the server. When you have to handle a lot of clients, the whitespace keepalive makes a huge difference.

Mickaël Rémond

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.jabber.org/pipermail/standards/attachments/20190611/5887eef3/attachment-0001.html>

More information about the Standards mailing list