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

Stuart Cheshire <cheshire@apple.com> Tue, 22 March 2016 02:54 UTC

Return-Path: <cheshire@apple.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 A238A12D0E8 for <dnssd@ietfa.amsl.com>; Mon, 21 Mar 2016 19:54:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -104.322
X-Spam-Level:
X-Spam-Status: No, score=-104.322 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
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 vObzmZrTThy6 for <dnssd@ietfa.amsl.com>; Mon, 21 Mar 2016 19:54:19 -0700 (PDT)
Received: from mail-in6.apple.com (mail-out6.apple.com [17.151.62.28]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 233C312D179 for <dnssd@ietf.org>; Mon, 21 Mar 2016 19:54:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1458615258; x=2322528858; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=t1fsARNq1G8+nGmZRLpjm++UaTeh0QsV9iS/kOFv/Yk=; b=hMcUJo7fktxgwhNn0LUv1yXEQICSAovhCrD01gT1OvWnhgGojp/X0ZLB2KV2kNTS aUGW2xajSPliBipsG0B6P00/uKgKCD+cvNXfA47btw9PjrAwx0YoEgHOM7yncW5j HvRpJqCm6uBe45m4KzQUI9/80FYkHOcVD2DZsdu4Kh+jarUr2kRWbRRRQhZAWkHD u9r6U7n19WeiH25atVoUUdmVN4mBYEDdmu6nzvYaBJjwLSUxuynavQozQcyrP2fJ Ovw2jU+IT5/Q34WurQp1yDA0D7J3PC5RHKkNz4xOM72ixUTnhbb8k47+GpBUY5Dt R+n4wlfmYy0EBY8QTfqqsg==;
Received: from relay8.apple.com (relay8.apple.com [17.128.113.102]) by mail-in6.apple.com (Apple Secure Mail Relay) with SMTP id DC.DC.27179.AD3B0F65; Mon, 21 Mar 2016 19:54:18 -0700 (PDT)
X-AuditID: 11973e15-f79686d000006a2b-3b-56f0b3dab3d2
Received: from kencur (kencur.apple.com [17.151.62.38]) (using TLS with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by relay8.apple.com (Apple SCV relay) with SMTP id 10.9F.25141.AD3B0F65; Mon, 21 Mar 2016 19:54:18 -0700 (PDT)
Received: from [17.153.88.227] (unknown [17.153.88.227]) by kencur.apple.com (Oracle Communications Messaging Server 7.0.5.37.0 64bit (built Nov 11 2015)) with ESMTPSA id <0O4F00EU56QIDY00@kencur.apple.com>; Mon, 21 Mar 2016 19:54:18 -0700 (PDT)
Sender: cheshire@apple.com
From: Stuart Cheshire <cheshire@apple.com>
Content-type: text/plain; charset="utf-8"
Content-transfer-encoding: quoted-printable
Date: Mon, 21 Mar 2016 19:54:17 -0700
Message-id: <5B929188-955A-46C5-B842-95406D4147EE@apple.com>
To: Paul Wouters <pwouters@redhat.com>, Joe Abley <jabley@dyn.com>, Sara Dickinson <sara@sinodun.com>, Ray Bellis <ray@isc.org>
MIME-version: 1.0 (Mac OS X Mail 9.2 \(3112\))
X-Mailer: Apple Mail (2.3112)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBLMWRmVeSWpSXmKPExsUi2FCYpntr84cwg32T9CzuvrnMYvF+6SxG ByaPJUt+MgUwRnHZpKTmZJalFunbJXBlTPzTxVTwUKuic8JG5gbGVqUuRg4OCQETidaVPl2M nECmmMSFe+vZuhi5OIQE9jFKvLh7ig0iYSKx9cosqEQvk8Tata9ZIZzfjBJtRz4zg1QJC0hJ vFoJYbMJaEm8+HyFDWQDs4C6xJQpuSBhZgFtiSfvLrCChIUF3CWa30aAhFkEVCXuLjvEDmLz CthIvGvZwQjRqSux60oYyCYRgUZGiVWb+6Bq9CT+XbjJDnGbrMS+DQvAbpMQmMAmcXrCaqYJ jEKzEDbPQrJ5FpL2BYzMqxiFchMzc3Qz88z0EgsKclL1kvNzNzGCgna6negOxjOrrA4xCnAw KvHwRqx5HybEmlhWXJl7iFGag0VJnPfjxA9hQgLpiSWp2ampBalF8UWlOanFhxiZODilGhhd 9vfblN1ZGLzx/P7jASy2v+dWy7xVeV3to7Z6g9LtaR6B+sq/zonfvHXX4eihxZ/fHZ7+W9a6 8dkCQQOr/fwBqmV8zUs+3Dv/8ojriXAn33XNry+XWUim7Y4LK5qUxcRj0a8+zc0n0MLg3UT7 WWuCYldYbLSVXFkj5KTQn6Z//Wdr++/7298qsRRnJBpqMRcVJwIA9VtyazsCAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCLMWRmVeSWpSXmKPExsUiON1OTffW5g9hBl9+aVncfXOZxeL90lmM DkweS5b8ZApgjOKySUnNySxLLdK3S+DKmPini6ngoVZF54SNzA2MrUpdjJwcEgImEluvzGKD sMUkLtxbD2RzcQgJ9DJJrF37mhXC+c0o0XbkMzNIlbCAlMSrlRA2m4CWxIvPV4A6ODiYBdQl pkzJBQkzC2hLPHl3gRUkLCzgLtH8NgIkzCKgKnF32SF2EJtXwEbiXcsORohOXYldV8JANokI NDJKrNrcB1WjJ/Hvwk12iNtkJfZtWMA2gZF/FsKyWUiWzULSsYCReRWjQFFqTmKlhV5iQUFO ql5yfu4mRlCYNRSm7WBsWm51iFGAg1GJhzdizfswIdbEsuLK3EOMEhzMSiK8vL0fwoR4UxIr q1KL8uOLSnNSiw8xJgPdP5FZSjQ5HxgDeSXxhiYmBibGxmbGxuYm5qQJK4nztkm/DhMSSE8s Sc1OTS1ILYLZwsTBKdXAyBLdyuWxa6FLg8uGK1G2nglhL1Xr7x4LCzh0V/iRWIr1tO2pjnrL 0tk2+YWbdCyO/fr0fqijukSJ2ekv9+v45zRXuB1bZcbe/7HobvsVhea0qfdkV90q4agort63 R6v0XJGSe3qw2UOJC3Ma9Q+WC60tu951VMl1baahyz3fiW13/3fK32VRYinOSDTUYi4qTgQA h9Ag63cCAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/dnssd/XS4ZSIljhvhBpgOl2gSZm216bdQ>
Cc: dnssd@ietf.org, dnsop WG <dnsop@ietf.org>
Subject: [dnssd] 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 02:54:20 -0000

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