Re: [dnssd] [DNSOP] Draft-ietf-dnsop-edns-tcp-keepalive and DNS Push Notifications

Paul Wouters <paul@nohats.ca> Tue, 22 March 2016 03:02 UTC

Return-Path: <paul@nohats.ca>
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 6BAF112D552; Mon, 21 Mar 2016 20:02:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.101
X-Spam-Level:
X-Spam-Status: No, score=-1.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_ADSP_ALL=0.8, RP_MATCHES_RCVD=-0.001] autolearn=no 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 8N0I7RcdW1Vt; Mon, 21 Mar 2016 20:02:46 -0700 (PDT)
Received: from mx.nohats.ca (mx.nohats.ca [IPv6:2a03:6000:1004:1::68]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D09D312D159; Mon, 21 Mar 2016 20:02:45 -0700 (PDT)
Received: from localhost (localhost [IPv6:::1]) by mx.nohats.ca (Postfix) with ESMTP id 3qTcv802w5z1cN; Tue, 22 Mar 2016 04:02:44 +0100 (CET)
X-OPENPGPKEY: Message passed unmodified
X-Virus-Scanned: amavisd-new at mx.nohats.ca
Received: from mx.nohats.ca ([IPv6:::1]) by localhost (mx.nohats.ca [IPv6:::1]) (amavisd-new, port 10024) with ESMTP id SOJJBlzeb7kr; Tue, 22 Mar 2016 04:02:42 +0100 (CET)
Received: from bofh.nohats.ca (206-248-139-105.dsl.teksavvy.com [206.248.139.105]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx.nohats.ca (Postfix) with ESMTPS; Tue, 22 Mar 2016 04:02:42 +0100 (CET)
Received: from [193.111.228.86] (unknown [193.111.228.86]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by bofh.nohats.ca (Postfix) with ESMTPSA id 0DF05600B97C; Mon, 21 Mar 2016 23:02:41 -0400 (EDT)
DKIM-Filter: OpenDKIM Filter v2.10.3 bofh.nohats.ca 0DF05600B97C
References: <5B929188-955A-46C5-B842-95406D4147EE@apple.com>
Mime-Version: 1.0 (1.0)
In-Reply-To: <5B929188-955A-46C5-B842-95406D4147EE@apple.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Message-Id: <818B6C5F-8D1C-4581-98F1-E081C2723911@nohats.ca>
X-Mailer: iPhone Mail (13D15)
From: Paul Wouters <paul@nohats.ca>
Date: Mon, 21 Mar 2016 23:02:29 -0400
To: Stuart Cheshire <cheshire@apple.com>
Archived-At: <http://mailarchive.ietf.org/arch/msg/dnssd/CktvKp4sKvLS3JSEmUWjofk3cwA>
Cc: dnssd@ietf.org, Joe Abley <jabley@dyn.com>, Paul Wouters <pwouters@redhat.com>, Ray Bellis <ray@isc.org>, Sara Dickinson <sara@sinodun.com>, dnsop WG <dnsop@ietf.org>
Subject: Re: [dnssd] [DNSOP] Draft-ietf-dnsop-edns-tcp-keepalive and DNS Push Notifications
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: "Discussion of extensions to Bonjour \(mDNS and DNS-SD\) 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: Tue, 22 Mar 2016 03:02:47 -0000

Our document is in AUTH48 already, so making those kind of changed there might be very difficult.

Also, if you are so idle that you might run into tcp issues timing out, you probably should be nice to the other end and close your tcp session.

Sent from my iPhone

> On Mar 21, 2016, at 22:54, Stuart Cheshire <cheshire@apple.com> wrote:
> 
> Dear Keepalive authors,
> 
> Draft-ietf-dnssd-push-06 (see below) references draft-ietf-dnsop-edns-tcp-keepalive.
> 
> However, at present, a more accurate title might be “draft-ietf-dnsop-edns-tcp-idle-timeout” instead of “draft-ietf-dnsop-edns-tcp-keepalive”, because while it tells the client how to learn what the idle timeout is, it doesn’t say anything about what the client does to actually keep a connection alive.
> 
> Draft-ietf-dnssd-push-06 currently has the text included below.
> 
> 1. It states what actions reset the idle timer.
> 
> 2. It states that the client should send keepalive traffic before the idle timeout expires, but the server should not kill a connection until 1.5x the idle timeout, to allow for clock rate differences and propagation delays.
> 
> 3. Particularly note the final paragraph, which calls for suggestions for a specified keepalive action.
> 
>   At both servers and clients, the generation or reception of any
>   request, response, update, or keepalive message resets the keepalive
>   timer for that connection.
> 
>   In the absence of any requests, responses, or update messages on a
>   connection, a client MUST generate keepalive traffic before the idle
>   timeout expires, or the server is entitled to close the connection.
> 
>   If a client disconnects from the network abruptly, without closing
>   its connection, the server learns of this after failing to receive
>   further traffic from that client.  If no requests, responses, update
>   messages or keepalive traffic occurs on a connection for 1.5 times
>   the idle timeout, then this indicates that the client is probably no
>   longer on the network, and the server SHOULD abort the connection
>   with a TCP RST.
> 
>   [We need to discuss the nature of "the required keepalives".  Are
>   they TCP-layer keepalives?  DNS-layer keepalives?  There is currently
>   no DNS-layer keepalive or 'no-op' operation defined.  What would that
>   operation be?  A DNS QUERY containing zero questions?  A DNS
>   SUBSCRIBE containing zero questions?  An "empty" DNS message over the
>   TCP connection (just a pair of zero bytes, signifying a zero-length
>   message)?  One benefit of TCP-layer keepalives is that they transmit
>   fewer bytes, and involve less software overhead for processing those
>   bytes.  Another benefit is that it is more feasible to implement
>   these in networking offload hardware, which can allow devices to meet
>   their TCP keepalive obligations while sleeping.  This is particularly
>   important for battery-powered devices like mobile phones and tablets.
>   On the other hand, using TCP-layer keepalives requires an API for a
>   client to tell the networking stack at what frequency to perform TCP-
>   layer keepalives, and an API for a server to request the networking
>   stack to inform it when TCP-layer keepalives are not received by the
>   required deadline.  TCP-layer keepalives also only verify liveness of
>   the remote networking stack, whereas DNS-layer keepalives provide
>   higher assurance of liveness of the remote server application
>   software -- though this a limited benefit, since there is no reason
>   to expect that DNS Push Notification server software will routinely
>   become wedged and unresponsive.]
> 
> I could define this specified keepalive action in the DNS Push document, but I think it would be better to have that specification in the keepalive document.
> 
> Thoughts?
> 
> Stuart Cheshire
> 
> Begin forwarded message:
> 
>> From: internet-drafts@ietf.org
>> Subject: [dnssd] I-D Action: draft-ietf-dnssd-push-06.txt
>> Date: 21 March 2016 at 16:58:41 Pacific Daylight Time
>> To: i-d-announce@ietf.org
>> 
>> A New Internet-Draft is available from the on-line Internet-Drafts directories.
>> This draft is a work item of the Extensions for Scalable DNS Service Discovery  of the IETF.
>> 
>>       Title           : DNS Push Notifications
>>       Authors         : Tom Pusateri
>>                         Stuart Cheshire
>>    Filename        : draft-ietf-dnssd-push-06.txt
>>    Pages           : 31
>>    Date            : 2016-03-21
>> 
>> Abstract:
>> The Domain Name System (DNS) was designed to return matching records
>> efficiently for queries for data that is relatively static.  When
>> those records change frequently, DNS is still efficient at returning
>> the updated results when polled.  But there exists no mechanism for a
>> client to be asynchronously notified when these changes occur.  This
>> document defines a mechanism for a client to be notified of such
>> changes to DNS records, called DNS Push Notifications.
>> 
>> 
>> The IETF datatracker status page for this draft is:
>> https://datatracker.ietf.org/doc/draft-ietf-dnssd-push/
>> 
>> There's also a htmlized version available at:
>> https://tools.ietf.org/html/draft-ietf-dnssd-push-06
>> 
>> A diff from the previous version is available at:
>> https://www.ietf.org/rfcdiff?url2=draft-ietf-dnssd-push-06
>> 
>> 
>> Please note that it may take a couple of minutes from the time of submission
>> until the htmlized version and diff are available at tools.ietf.org.
>> 
>> Internet-Drafts are also available by anonymous FTP at:
>> ftp://ftp.ietf.org/internet-drafts/
>> 
>> _______________________________________________
>> dnssd mailing list
>> dnssd@ietf.org
>> https://www.ietf.org/mailman/listinfo/dnssd
> 
> _______________________________________________
> DNSOP mailing list
> DNSOP@ietf.org
> https://www.ietf.org/mailman/listinfo/dnsop