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-dra...@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-annou...@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
> dn...@ietf.org
> https://www.ietf.org/mailman/listinfo/dnssd

_______________________________________________
DNSOP mailing list
DNSOP@ietf.org
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to