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

<Markus.Isomaki@nokia.com> Tue, 20 April 2010 12:43 UTC

Return-Path: <Markus.Isomaki@nokia.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 3F0B23A69E2 for <hybi@core3.amsl.com>; Tue, 20 Apr 2010 05:43:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.475
X-Spam-Level:
X-Spam-Status: No, score=-6.475 tagged_above=-999 required=5 tests=[AWL=0.124, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 Qdh+U69Xqjau for <hybi@core3.amsl.com>; Tue, 20 Apr 2010 05:43:30 -0700 (PDT)
Received: from mgw-mx09.nokia.com (smtp.nokia.com [192.100.105.134]) by core3.amsl.com (Postfix) with ESMTP id 8306D3A699C for <hybi@ietf.org>; Tue, 20 Apr 2010 05:43:22 -0700 (PDT)
Received: from esebh105.NOE.Nokia.com (esebh105.ntc.nokia.com [172.21.138.211]) by mgw-mx09.nokia.com (Switch-3.3.3/Switch-3.3.3) with ESMTP id o3KCf6dG032147; Tue, 20 Apr 2010 07:43:11 -0500
Received: from esebh102.NOE.Nokia.com ([172.21.138.183]) by esebh105.NOE.Nokia.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 20 Apr 2010 15:42:50 +0300
Received: from smtp.mgd.nokia.com ([65.54.30.6]) by esebh102.NOE.Nokia.com over TLS secured channel with Microsoft SMTPSVC(6.0.3790.3959); Tue, 20 Apr 2010 15:42:49 +0300
Received: from NOK-EUMSG-02.mgdnok.nokia.com ([65.54.30.87]) by nok-am1mhub-02.mgdnok.nokia.com ([65.54.30.6]) with mapi; Tue, 20 Apr 2010 14:42:48 +0200
From: Markus.Isomaki@nokia.com
To: dave@cridland.net, hybi@ietf.org, Martin.Thomson@andrew.com, ph@imatix.com, jamie@shareable.org
Date: Tue, 20 Apr 2010 14:42:47 +0200
Thread-Topic: [hybi] NAT reset recovery? Was: Extensibility mechanisms?
Thread-Index: AcrgcPzclXxQjq53QNeE022JmJyTZgAFBFcA
Message-ID: <B3F72E5548B10A4A8E6F4795430F841832040F80E5@NOK-EUMSG-02.mgdnok.nokia.com>
References: <20100419091736.GA28758@shareable.org> <B3F72E5548B10A4A8E6F4795430F841832040920C4@NOK-EUMSG-02.mgdnok.nokia.com> <20100419121000.GG28758@shareable.org> <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> <20100420013220.GC21899@shareable.org> <l2s5821ea241004192301u692d2344y8da146470a68ab75@mail.gmail.com> <8B0A9FCBB9832F43971E38010638454F03E7D06A36@SISPE7MB1.commscope.com> <B3F72E5548B10A4A8E6F4795430F841832040F7B57@NOK-EUMSG-02.mgdnok.nokia.com> <4991.1271757865.754227@Sputnik>
In-Reply-To: <4991.1271757865.754227@Sputnik>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginalArrivalTime: 20 Apr 2010 12:42:49.0432 (UTC) FILETIME=[FC29D580:01CAE086]
X-Nokia-AV: Clean
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 12:43:31 -0000

Hi,

Dave Cridland wrote:
>
>Note that in IMAP, there are technically no actual keepalives, 
>but servers can send an ignorable
>"* OK", and in extreme cases, can fake a delivery to cause a 
>client to do something. Clients have a NOOP command. I suspect 
>a lot of the issues with IMAP relate to there being no simple 
>way for the server to ping the client built-in to the protocol.
>

Yes, this "* OK" is what I have seen. I agree that the lack of an explicit in-built mechanism is an issue and we should learn from that for WebSocket.

>Having the server send a SP on an idle session is 
>useful for defeating NAT timeouts, 

Here I'd really prefer the client to do it, as it should know better. And the host can potentially optimize between different connections etc.

>whereas the ping
>(XEP-0199) is extremely useful to definitively check reachability.
>

Is that being used today by servers? 

>> If there really is a requirement for the server to see 
>keepalives at a 
>> certain minimum rate (for instance so that it can abandon stale 
>> connections), I would then have that negotiated so that the 
>server can 
>> tell that back to the client who would still do the sending. But I'm 
>> not sure if that's needed.
>
>I think we need all cases possible, then some sensible advice 
>to implementors. In the XSF, we've learned a lot about how to 
>defeat NAT timeouts and get early failure detection, and the 
>main thing we've learned is that things change - only a year 
>or two back using long-lived TCP over mobile networks was 
>really difficult, whereas now it's much better.
>

Yes, things have improved. For instance, despite the looming IPv4 runout, many mobile operators have actually gotten rid of NATs and are giving out public addresses. There's however still a firewall with typically 10-60 minute timeout for TCP.

>What's more interesting, to me, is what to do if the 
>connection does break.
>
>If each connection is granted an identifier, and - moreover - 
>the client can request a specific identifer to be reattached 
>during the HTTP Upgrade negotiation at a known sequence point, 
>then in principle a WebSocket needn't be conceptually broken 
>even if connectivity is entirely lost due to a NAT reboot.
>
>Something very similar happens with XEP-0198, where XMPP 
>clients can reacquire a running XMPP session after TCP is lost.
>

This is definitely something to consider.

Markus