Re: [hybi] NAT reset recovery? Was: Extensibility mechanisms?

Pieter Hintjens <ph@imatix.com> Tue, 20 April 2010 06:04 UTC

Return-Path: <pieterh@gmail.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id E2FDE3A6A70 for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 23:04:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.397
X-Spam-Level:
X-Spam-Status: No, score=-1.397 tagged_above=-999 required=5 tests=[AWL=0.580, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZhXk3mPOccg1 for <hybi@core3.amsl.com>; Mon, 19 Apr 2010 23:04:26 -0700 (PDT)
Received: from mail-pw0-f44.google.com (mail-pw0-f44.google.com [209.85.160.44]) by core3.amsl.com (Postfix) with ESMTP id B20B53A6A84 for <hybi@ietf.org>; Mon, 19 Apr 2010 23:04:24 -0700 (PDT)
Received: by pwj2 with SMTP id 2so3972457pwj.31 for <hybi@ietf.org>; Mon, 19 Apr 2010 23:04:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:from:date:x-google-sender-auth:received:message-id :subject:to:cc:content-type:content-transfer-encoding; bh=S0QRi0L9gqsS4A694CdEg5oW+SJ85qfflSN3EVdAFrI=; b=chGRwc9kFNyhSZ3+9NLTMAPVc82bg2C7AJ+z0Pic1JHEqNtYZeSS0hGqIfksStc/FT CAL/ogSblqg2xJS589857JgzV50wvk/MkeYDJEDcpshEDfuJSBNTdVmng3wgWXs7IDSQ r36o3H98nD2HCEN0l11hxbtm2Bwt4vBZfVMU0=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type :content-transfer-encoding; b=ZRU/8ze1+snumV7lMcbsfE+MRit70EBbAjqhtqXWPIC9iIDe+1SKj49dTrsQfqSM17 RMLMjx0nEz+oDECvvyabdxIjU1HRR/7rOvKIZW+hhyGgIVxhOAj4NWZmo9RcGr3jLETq ro73QaUq7tV6Y5E9VjVfKkMU+6SbUJDaRiFMU=
MIME-Version: 1.0
Sender: pieterh@gmail.com
Received: by 10.140.225.18 with HTTP; Mon, 19 Apr 2010 23:03:53 -0700 (PDT)
In-Reply-To: <20100420014041.GD21899@shareable.org>
References: <B3F72E5548B10A4A8E6F4795430F841832040920C4@NOK-EUMSG-02.mgdnok.nokia.com> <87764B8E-5872-40EE-AA2F-D4E659B94F63@d2dx.com> <20100419140423.GC3631@shareable.org> <6959E9B3-B1AC-4AFB-A53D-AB3BA340208C@d2dx.com> <B3F72E5548B10A4A8E6F4795430F841832040F78C0@NOK-EUMSG-02.mgdnok.nokia.com> <w2q5821ea241004191309t7362de42p922788d380119dc4@mail.gmail.com> <B3F72E5548B10A4A8E6F4795430F841832040F78DB@NOK-EUMSG-02.mgdnok.nokia.com> <l2v5821ea241004191326i50970f32zbda7f876eda777f1@mail.gmail.com> <B3F72E5548B10A4A8E6F4795430F841832040F78ED@NOK-EUMSG-02.mgdnok.nokia.com> <20100420014041.GD21899@shareable.org>
From: Pieter Hintjens <ph@imatix.com>
Date: Tue, 20 Apr 2010 08:03:53 +0200
X-Google-Sender-Auth: 9f9e30b1b2f3a6f4
Received: by 10.141.101.15 with SMTP id d15mr712575rvm.10.1271743453086; Mon, 19 Apr 2010 23:04:13 -0700 (PDT)
Message-ID: <p2o5821ea241004192303v20afca34vf90bcd4325eb2265@mail.gmail.com>
To: Jamie Lokier <jamie@shareable.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: hybi@ietf.org, Markus.Isomaki@nokia.com
Subject: Re: [hybi] NAT reset recovery? Was: Extensibility mechanisms?
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Apr 2010 06:04:27 -0000

On Tue, Apr 20, 2010 at 3:40 AM, Jamie Lokier <jamie@shareable.org> wrote:

> Perhaps the missing thing is that request-response is more complicated
> in this kind of protocol, because you also have to define a way to
> _associated_ each response with the request.  That means sequence
> numbers, or identifiers, or being careful with counting response
> messages distinct from non-response messages.

This is pretty much the problem we solved in AMQP by using async KAs.

> There are also subtleties: If the other end sends a graceful close
> message, and then receives a KA request, does it send a KA response,
> or does the graceful close mean that KA response is among the message
> types that won't be sent?

Indeed... having to respond to a KA request makes a graceful close
much more complex.

> Because it's more complicated, it's not necessarily a great pattern
> compared with async keepalive, which is quite simple, and doesn't even
> need to send a KA message from the server in your example.  (The data
> frame is enough by itself).

Yes.  A no-op frame is sufficient.

> However for packet efficiency, synchronising timing by using
> request-response, or another synchronisation method, may still be
> advantageous.  Even though it's more complicated than async keepalive.

Complexity is always worth removing unless the overhead is significant
and since KAs can be entirely switched off when there is traffic at
all, and then reduced to once per 5 or 10 or 30 seconds, packet
efficiency seems irrelevant here.

-Pieter