[Standards] throttling

Matthew Wild mwild1 at gmail.com
Sat Feb 12 01:27:09 UTC 2011


On 11 February 2011 22:40, Justin Karneges
<justin-keyword-jabber.093179 at affinix.com> wrote:
> On Friday 11 February 2011 14:04:59 Matthew Wild wrote:
>> My opinion on this is that we don't need application-layer throttling
>> mechanisms. If a server wants to punish a peer, it can simply stop
>> reading from the connection for a while. The peer doesn't have to know
>> about this (such a notification MAY be useful for UI purposes, but I
>> personally doubt it).
>
> The trouble is that throttling and keepalive pings don't play well together.
> It is easy to imagine a client today that uses XEP-0199 pings to the server
> every minute, but then gets throttled by the server for over a minute.  The
> result is that sending too fast means you get disconnected.  This is pretty
> terrible if there's no way to know what counts as "too fast".
>

I'm not sure there's any reason the client should have multiple pings
of any kind (XEP-0199 or <r> from XEP-0198) in flight at the same
time.

> All of that said, I wonder now if we can replace the throttle messages with
> whitespace keepalives.  So servers stop reading data from the socket, but
> still continue to send whitespace to the client on a regular interval.
> Clients should not time out a connection if it continues to receive data from
> the server.  Maybe that's all we need?
>

That's one sensible approach, though I don't know how necessary it is
in practice (and hence whether we should spec it). Either way, this is
completely unrelated to XEP-0198 as I see it. Throttling also happens
without XEP-0198.

Regards,
Matthew



More information about the Standards mailing list