Re: [dnssd] Genart last call review of draft-ietf-dnssd-push-20

Tom Pusateri <pusateri@bangj.com> Thu, 11 July 2019 23:39 UTC

Return-Path: <pusateri@bangj.com>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 186C7120041; Thu, 11 Jul 2019 16:39:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id qnyERsVCKqZ3; Thu, 11 Jul 2019 16:39:24 -0700 (PDT)
Received: from oj.bangj.com (69-77-154-174.static.skybest.com [69.77.154.174]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1CB7E12006A; Thu, 11 Jul 2019 16:39:24 -0700 (PDT)
Received: from [192.168.1.13] (71-15-27-6.dhcp.hlrg.nc.charter.com [71.15.27.6]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by oj.bangj.com (Postfix) with ESMTPSA id CF79A347E1; Thu, 11 Jul 2019 19:39:22 -0400 (EDT)
From: Tom Pusateri <pusateri@bangj.com>
Message-Id: <680C7A57-BBF9-4AD5-9E51-AA101CDDC751@bangj.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_BF384444-11CC-418A-893D-F89D239C1ED6"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3564\))
Date: Thu, 11 Jul 2019 19:39:21 -0400
In-Reply-To: <60198834-66F0-4CF0-BB09-B987684F3616@fugue.com>
Cc: Stuart Cheshire <cheshire=40apple.com@dmarc.ietf.org>, Eric Rescorla <ekr@rtfm.com>, DNSSD <dnssd@ietf.org>, draft-ietf-dnssd-push.all@ietf.org, David Schinazi <dschinazi.ietf@gmail.com>, Robert Sparks <rjsparks@nostrum.com>
To: Ted Lemon <mellon@fugue.com>
References: <156175221593.21875.9525138908968318905@ietfa.amsl.com> <9E6DE124-9262-4870-A920-4E707A38DC08@bangj.com> <CAPDSy+7om=cBW51cyuPea9nabgJuRV3M+++gA7sy8VzfNpkn6Q@mail.gmail.com> <9F8CFF4A-ABC1-4005-AE65-6CE64940B59F@apple.com> <CAPDSy+6V+ooWDe7XezmWA_XKNQXRAOex8DE5CiTnZdz8zc-9CA@mail.gmail.com> <F6DD5CEF-E644-46E3-84B5-18309F6B44C5@apple.com> <270A8516-8BE8-441A-A6CC-4FDE8EFE2B10@fugue.com> <BF75518F-25E9-4283-B647-6382F50A5CCA@bangj.com> <ED99C670-3149-417C-B465-99A48D70C584@bangj.com> <83331D7B-2853-4B5B-8350-ACD18922780E@fugue.com> <FC48248A-51E9-421A-8C91-B4DD41C9FC2F@bangj.com> <60198834-66F0-4CF0-BB09-B987684F3616@fugue.com>
X-Mailer: Apple Mail (2.3564)
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/iG9rF9TrNKfrnPxGps1cpebMd9A>
Subject: Re: [dnssd] Genart last call review of draft-ietf-dnssd-push-20
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnssd>, <mailto:dnssd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd/>
List-Post: <mailto:dnssd@ietf.org>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnssd>, <mailto:dnssd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 11 Jul 2019 23:39:26 -0000


> On Jul 11, 2019, at 7:31 PM, Ted Lemon <mellon@fugue.com> wrote:
> 
> On Jul 11, 2019, at 7:03 PM, Tom Pusateri <pusateri@bangj.com <mailto:pusateri@bangj.com>> wrote:
>> The SERVER may want to conserve resources from broken clients. The RETRY DELAY is for the SERVER’s protection and it’s thoughtfully informing the CLIENT how long it has to wait before the SERVER will accept a connection from it. It doesn’t matter if the CLIENT agrees or not or whether the CLIENT follows the spec or not.
> 
> Okay, so we have the following scenarios:
> 
> 1. Server sends RETRY-DELAY, client honors it.   Result: client goes away for a long time and does polling instead of push.  Behavior on client is not great, but probably won’t be noticed by a typical end-user other than as an inexplicable inconvenience.   Vendor will have no strong motivation to fix.
> 2. Server sends RETRY-DELAY, client ignores it.  Result: whatever broken behavior the client exhibits, up to and including back-to-back reconnects.  UX may degrade substantially: in particular, this will affect battery life for mobile devices.  Practically speaking, in this case the vendor will be motivated to fix.
> 3. Server sends RST.   Result: same as 2.
> 
> So the question is, do we want outcome (1) or outcome (2)?
> 


There is no back to back reconnect in the #2 case. The server shouldn’t accept the connection after sending a RETRY DELAY to this client. The client may ignore the RETRY DELAY but this doesn’t matter. It’s only a courtesy that the SERVER tells the client how long it has to wait.

So #1 and #2 are the same.

The server gets abused if it does #3. It should always send the RETRY DELAY to protect itself.

Tom