Re: [Ntp] comments on draft-mlichvar-ntp-ntpv5-03 / Extension fields

Dan Drown <dan-ntp@drown.org> Thu, 02 December 2021 04:30 UTC

Return-Path: <dan-ntp@drown.org>
X-Original-To: ntp@ietfa.amsl.com
Delivered-To: ntp@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7940A3A09C1 for <ntp@ietfa.amsl.com>; Wed, 1 Dec 2021 20:30:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.809
X-Spam-Level: *
X-Spam-Status: No, score=1.809 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_SBL_CSS=3.335, RCVD_IN_XBL=0.375, SPF_PASS=-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 gIqkAJhPjl4a for <ntp@ietfa.amsl.com>; Wed, 1 Dec 2021 20:30:41 -0800 (PST)
Received: from vps3.drown.org (vps3.drown.org [IPv6:2600:3c00::f03c:91ff:fedf:5654]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E9F833A09B2 for <ntp@ietf.org>; Wed, 1 Dec 2021 20:30:40 -0800 (PST)
Received: by vps3.drown.org (Postfix, from userid 48) id 662E02FC32C; Wed, 1 Dec 2021 22:30:39 -0600 (CST)
Received: from 2603-8080-2709-c400-401c-50fe-8e7b-2f4d.res6.spectrum.com (2603-8080-2709-c400-401c-50fe-8e7b-2f4d.res6.spectrum.com [2603:8080:2709:c400:401c:50fe:8e7b:2f4d]) by mail.drown.org (Horde Framework) with HTTPS; Wed, 01 Dec 2021 22:30:39 -0600
Date: Wed, 01 Dec 2021 22:30:39 -0600
Message-ID: <20211201223039.Horde.DfdZkIL7EK0xOnLEfGiTcwy@mail.drown.org>
From: Dan Drown <dan-ntp@drown.org>
To: ntp@ietf.org
References: <20211123131501.Horde.ErUH7VWw3Nr2PFkAGzGIEuI@mail.drown.org> <20211125214748.Horde.K2Fa5qir5iPLYRvfQJBMx8m@mail.drown.org> <20211126214820.Horde.ErbRZcjuVf-yEn55FGUhEZP@mail.drown.org> <YaSkKrfdgJmOfKyJ@localhost> <20211129230401.Horde.bPTyNTr6teU3hrkyheUmwk6@mail.drown.org> <YadY00rmMDu3ya+r@localhost>
In-Reply-To: <YadY00rmMDu3ya+r@localhost>
User-Agent: Horde Application Framework 5
Content-Type: text/plain; charset="utf-8"; format="flowed"; DelSp="Yes"
MIME-Version: 1.0
Content-Disposition: inline
Archived-At: <https://mailarchive.ietf.org/arch/msg/ntp/tHCmL5wQHF9G7_ZbC5Yr3CL5w6M>
Subject: Re: [Ntp] comments on draft-mlichvar-ntp-ntpv5-03 / Extension fields
X-BeenThere: ntp@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Network Time Protocol <ntp.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ntp>, <mailto:ntp-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ntp/>
List-Post: <mailto:ntp@ietf.org>
List-Help: <mailto:ntp-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ntp>, <mailto:ntp-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Dec 2021 04:30:45 -0000

Quoting Miroslav Lichvar <mlichvar@redhat.com>:
> I guess a more common problem (at least for public servers) is traffic
> cost, which may scale linearly with the packet length.
>
> NTS tripled the packet size and I don't remember many complaints about
> that. It could do better in that aspect, e.g. the unique ID is not
> really necessary when TX timestamps are fully randomized, but I
> understand people wanted it to be independent.

Perhaps NTS and NTPv5 will be a small enough % of people's traffic
that they won't notice the difference in terms of bandwidth usage.
There's a lot of SNTP and legacy NTP clients that haven't been
updated in years and will likely stay that way.

> Wouldn't this be limited to a chain of IDs, assuming only one server
> per stratum?
>
> The idea for NTPv5 was to detect loops over all servers used for
> synchronization, including those that are not the best selected source
> (e.g. marked with the + symbol instead of *). It is a graph of
> servers.

Ah, you're right. My proposal would be limited to just the primary
path. If the goal was to cover all sources, then a bloom filter would
be a much better choice.

> The bloom filter was proposed by Daniel Franke in his NTPv5 sketch:
> https://gist.github.com/dfoxfranke/4ca0443b6ff6e0473578cf3827b9ea7f
>
> I liked the idea and put it in my draft as it should be much more
> efficient than distributing the whole draft.

Ok, that's gist is an interesting proposal. My takeaways:
* source_seqno used as a bloom filter generation id and is in the main  
timestamp request/response to let clients know when to update
* bloom filter request/response are different modes seperate from the  
main timestamp request/response
* 128 bit client ID and 4096 bit bloom filter are much bigger than I  
was thinking, but should have less false positives