Re: Predictable Internet Time

Joe Touch <touch@isi.edu> Tue, 28 March 2017 21:37 UTC

Return-Path: <touch@isi.edu>
X-Original-To: ietf@ietfa.amsl.com
Delivered-To: ietf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 00C7E129631 for <ietf@ietfa.amsl.com>; Tue, 28 Mar 2017 14:37:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-0.001] autolearn=ham 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 8ECAouLWGxks for <ietf@ietfa.amsl.com>; Tue, 28 Mar 2017 14:37:15 -0700 (PDT)
Received: from nitro.isi.edu (nitro.isi.edu [128.9.208.207]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 43FAE129634 for <ietf@ietf.org>; Tue, 28 Mar 2017 14:37:14 -0700 (PDT)
Received: from [128.9.184.151] ([128.9.184.151]) (authenticated bits=0) by nitro.isi.edu (8.13.8/8.13.8) with ESMTP id v2SLatXJ027483 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 28 Mar 2017 14:36:55 -0700 (PDT)
Subject: Re: Predictable Internet Time
To: Nico Williams <nico@cryptonector.com>, Stewart Bryant <stewart.bryant@gmail.com>
References: <CAMm+LwgfQJ8aG5wB=d3fRbbeje3J9o7Z4_DCuP8DL88ouDeKzw@mail.gmail.com> <504e2cea0d1668c31486b05fec0a967a4446aefe@webmail.weijax.net> <CAMm+Lwi_jU6gjdtdM6a2n_9_89tUvWBNXxnMtSjTEA++h1D4Ew@mail.gmail.com> <e0a43370-751f-808c-3719-9716f9cd57d1@isi.edu> <alpine.DEB.2.11.1701031348430.7102@grey.csi.cam.ac.uk> <f94415b6-d9f7-0a03-cf5b-ce39c109aa71@isi.edu> <f9429571-b9d5-75d4-9b46-b877a189a7bf@gmail.com> <20170328173916.GE7490@localhost>
Cc: ietf@ietf.org
From: Joe Touch <touch@isi.edu>
Message-ID: <5837a781-16b7-7366-e9b9-2934aa13b4c0@isi.edu>
Date: Tue, 28 Mar 2017 14:36:54 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <20170328173916.GE7490@localhost>
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: 7bit
X-MailScanner-ID: v2SLatXJ027483
X-ISI-4-69-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <https://mailarchive.ietf.org/arch/msg/ietf/9gUD34axMmtl1sHyfNrIys7B3IM>
X-BeenThere: ietf@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF-Discussion <ietf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ietf>, <mailto:ietf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ietf/>
List-Post: <mailto:ietf@ietf.org>
List-Help: <mailto:ietf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ietf>, <mailto:ietf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 28 Mar 2017 21:37:17 -0000

Hi, all,

Please take this discussion to ART (art@ietf.org)

Joe


On 3/28/2017 10:39 AM, Nico Williams wrote:
> On Tue, Jan 03, 2017 at 06:35:03PM +0000, Stewart Bryant wrote:
>> Yes, the system should use a leap-second-free constant-duration-seconds time
>> for everything. It is only humans that need the variable jumpy version of
>> time presented to them, and that is a UI issue.
> I don't think that's quite right.
>
> Unix time is canonically a count of seconds since an epoch and admits no
> leap seconds.  A conversion of Unix time to adjusted (i.e., with leap
> seconds added) time since the same epoch would be nice, as well as:
>
>  - conversion from either to broken down time
>     - with seconds count up to 60 when converting from seconds-with-leaps
>  - formatting of dates from either as well as from broken down time
>     - but when converting from seconds-with-leaps the formatted string
>       can show seconds-in-minute values of 60
>     - whereas when converting from Unix seconds the formatted string can
>       never show seconds-in-minute values of 60
>  - parsing to broken down time and to seconds-since-epoch types
>     - ignoring leap seconds when converting to Unix time
>     - correctly accounting for all leap seconds prior to that time when
>       converting to seconds-with-leaps-since-epoch
>
> It's all about data typing.  In POSIX C API terms, we need new functions
> to deal with seconds-with-leaps-since-epoch, and obviously a lot of
> prayer because there's no way in C to distinguish one integer type from
> the other (well, the new type could be wrapped in a struct..).
>
> We will have to deal with multiple kinds of time as long as different
> applications/users need different definitions of time.  Astronomers may
> need corrected time, while bankers may want to ignore leap seconds --
> all on the same systems (same OSes, same code libraries).
>
> Functionally this is about data typing -- preferably strong data typing.
>
> Smearing is a third time representation that also needs conversion to
> the other types (more opportunity for bugs!); it leaves a bad taste.  It
> may work for some apps though, but all nodes had better smear in exactly
> the same way -- within your tolerances -- if your app depends on time
> for synchronization.
>
> Nico