Re: [core] #217: how fast must the observe clock be able to go?

"Kovatsch Matthias" <kovatsch@inf.ethz.ch> Wed, 16 May 2012 19:41 UTC

Return-Path: <kovatsch@inf.ethz.ch>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C480021F85B5 for <core@ietfa.amsl.com>; Wed, 16 May 2012 12:41:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.932
X-Spam-Level:
X-Spam-Status: No, score=-9.932 tagged_above=-999 required=5 tests=[AWL=0.667, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DyeDHpv7XFwF for <core@ietfa.amsl.com>; Wed, 16 May 2012 12:41:29 -0700 (PDT)
Received: from edge20.ethz.ch (edge20.ethz.ch [82.130.99.26]) by ietfa.amsl.com (Postfix) with ESMTP id C491F21F858E for <core@ietf.org>; Wed, 16 May 2012 12:41:27 -0700 (PDT)
Received: from CAS11.d.ethz.ch (172.31.38.211) by edge20.ethz.ch (82.130.99.26) with Microsoft SMTP Server (TLS) id 14.2.298.4; Wed, 16 May 2012 21:41:25 +0200
Received: from MBX10.d.ethz.ch ([169.254.1.16]) by CAS11.d.ethz.ch ([fe80::ecc9:4e2d:b26b:1614%10]) with mapi id 14.01.0355.002; Wed, 16 May 2012 21:41:25 +0200
From: "Kovatsch Matthias" <kovatsch@inf.ethz.ch>
To: "core@ietf.org WG" <core@ietf.org>
Thread-Topic: [core] #217: how fast must the observe clock be able to go?
Thread-Index: AQHNKdWe9aPriYlIjEywYp8sXb3JC5bM1GBA
Date: Wed, 16 May 2012 19:41:24 +0000
Message-ID: <55877B3AFB359744BA0F2140E36F52B5139BE97F@MBX10.d.ethz.ch>
References: <051.9ec4e5813aa29f30a67cab16c3a9ea51@trac.tools.ietf.org> <FC2C89EC-F71C-4030-BB3C-9291540A59B9@tzi.org>
In-Reply-To: <FC2C89EC-F71C-4030-BB3C-9291540A59B9@tzi.org>
Accept-Language: en-US, de-CH
Content-Language: de-DE
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [178.83.15.45]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: Re: [core] #217: how fast must the observe clock be able to go?
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/core>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 May 2012 19:41:29 -0000

Dear list

Here an alternative for the observe clock as sketched during the interim:

To fix the problem with resources that can change with a very high frequency (1kHz was mentioned...), we could make the Observe option larger than 16 bits and really treat it as an variable length integer instead of a fixed counter (i.e., we could use up to 4 bytes and do not have to count up to 2**32-1).

The ticks per second are then chosen to match the "change frequency" of the resource, so that the current check of the expired time between two messages still holds: no wrap around for T2 < (T1 + expiry) (see Observe-05, 3.4.). As the server takes care of resetting the Observe clock, the client does not need to care about the actual ticks per second.
Instead of expiry=2**14, we now have to define an upper bound for the time messages can remain in the network and use a value given in seconds.
Maybe we can derive that time from the congestion control issue...

I hope this what you expected, Carsten. Otherwise, I am happy to hear you interpretation of what I said during the interim :)

This of course is in favor of a per-resource clock to keep the Observe option small for slowly changing resources.
I also like the idea of having a continuous clock (apart from the recognizable resets), so clients can identify missing notifications.

Ciao
Matthias


> We could go to a larger sequence number (e.g., 3 bytes, typically implemented
> as mibiseconds, leading to a window of 4096 seconds and a wrap-around at
> 16384 seconds), but this would burden all implementations with these 3-byte
> sequence numbers and still have an arbitrary limitation.
> 
> The best "scalable" version of this we came up with so far is:
> Make "Observe" repeatable.  A second instance of the option provides a
> "fractional part" of the number -- not really fractional, but disambiguating
> multiple instances that have the same 16-bit sequence number.
> 
> So, if 1, 2, 3 is too slow for you, use
> 1/0, 1/1, 1/2, 2/0, 2/1, 2/2, 2/3, 3/0, 3/1 etc.
> 
> Hmm.
> 
> Grüße, Carsten
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core