[CDNi] footprint and capability mechanisms

"Peterson, Jon" <jon.peterson@neustar.biz> Thu, 06 February 2014 18:41 UTC

Return-Path: <jon.peterson@neustar.biz>
X-Original-To: cdni@ietfa.amsl.com
Delivered-To: cdni@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D6EA31A0274 for <cdni@ietfa.amsl.com>; Thu, 6 Feb 2014 10:41:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.901
X-Spam-Level:
X-Spam-Status: No, score=-102.901 tagged_above=-999 required=5 tests=[BAYES_05=-0.5, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, USER_IN_WHITELIST=-100] autolearn=ham
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 jOaq4-rZrKZc for <cdni@ietfa.amsl.com>; Thu, 6 Feb 2014 10:41:15 -0800 (PST)
Received: from neustar.com (mx1.neustar.com [156.154.17.104]) by ietfa.amsl.com (Postfix) with ESMTP id 136CA1A01E3 for <cdni@ietf.org>; Thu, 6 Feb 2014 10:41:14 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=neustar.biz; s=neustarbiz; t=1391712223; x=1707069440; q=dns/txt; h=From:Subject:Date:Message-ID:Content-Language: Content-Type:Content-ID:Content-Transfer-Encoding; bh=Bb0FghzRsi mLwtkHdJA3Jndsv2ZXDFRpOJ1ZzyTjp2o=; b=UD64WbocIsHmFYqLXX8aWYH90h Ysc7jojZui5ZePvnPZ0YK41LWrcuzKp+NSu0is5FZ8H/pI9YzxhzuOaaDd/A==
Received: from ([10.31.58.71]) by stihiron2.va.neustar.com with ESMTP with TLS id J041124103.40756136; Thu, 06 Feb 2014 13:43:42 -0500
Received: from STNTEXMB10.cis.neustar.com ([169.254.5.252]) by stntexhc12.cis.neustar.com ([::1]) with mapi id 14.03.0158.001; Thu, 6 Feb 2014 13:41:07 -0500
From: "Peterson, Jon" <jon.peterson@neustar.biz>
To: "cdni@ietf.org" <cdni@ietf.org>
Thread-Topic: footprint and capability mechanisms
Thread-Index: AQHPI2r+MKQy3HwHMU6O1Xni5u+2KQ==
Date: Thu, 06 Feb 2014 18:41:05 +0000
Message-ID: <CF19173E.D6129%jon.peterson@neustar.biz>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.3.9.131030
x-originating-ip: [192.168.128.111]
x-ems-proccessed: R64IxjzeHPwwd+efoj3ZcA==
x-ems-stamp: gRbe21Yat3R/oKW2zP7HAQ==
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <3BE6267C5174834D844C5752681A24AE@neustar.biz>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Subject: [CDNi] footprint and capability mechanisms
X-BeenThere: cdni@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: "This list is to discuss issues associated with the Interconnection of Content Delivery Networks \(CDNs\)" <cdni.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cdni>, <mailto:cdni-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/cdni/>
List-Post: <mailto:cdni@ietf.org>
List-Help: <mailto:cdni-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cdni>, <mailto:cdni-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Feb 2014 18:41:18 -0000

Following our discussion about the FCI mechanism in Vancouver, I took a
look at two drafts out there today: draft-ma and draft-seedorf. In short,
I think both express promising directions, and both have a long way to go
before they will describe fully fleshed-out mechanisms. At a high level,
their architectures are similar: both are about pushing JSON objects that
describe footprints and capability via HTTP. It¹s often when the choices
are so similar that it¹s hardest to figure out which is the right approach.

One of the prominent distinctions between the two is that Kevin specifies
a capability-sharing system with an optional footprint, whereas Jan
specifies a footprint-sharing system with the option of capabilities.
Jan¹s choice is an artifact of using ALTO as a basis, which already has a
concept of sharing 'network maps' in this fashion, and can be extended to
add further information to these maps such as capability. Kevin works from
the ground up on a bespoke system for sharing capabilities, which may not
ever involve sharing footprint data. I¹ve turned this over in my head a
bunch of times, and I¹m not really sure there¹s any practical advantage
one approach has over the other. One of the non-obvious reasons why is
that the concept of a PID (the groupings of network elements) in ALTO is
so abstract that it serves as a layer of indirection, and can serve as a
placeholder for a footprint that¹s effectively specified implicitly.

An important feature we want this mechanism to have is incremental FCI
updates. Both Kevin and Jan have a story about this, though I think both
will require substantial work to advance. Kevin, for example, sketches a
system of primitives (replace, include, exclude) to allow a dCDN to update
a uCDN about changes, based on tracking update sequencing with a new
'CDNI-FCI-Seq' HTTP header. State freshness of web resources is a pretty
thoroughly-studied problem, though, and there are other HTTP facilities
(Etags, say) that address this. I think it¹s pretty unlikely that our
problem is enough of a special case that we could convince Application
folks here at the IETF that we need to standardize a custom HTTP header
for it. Jan¹s draft, on the other hand, references existing ALTO work on
incremental updates, in particular draft-schwan-alto-incr-updates. That
draft contains a good overview of the different approaches, including HTTP
If-Modified-Since and Etags, as well as looking at JSON-specific
incremental change techniques like JSON Patch (RFC6902). Sounds great, but
- draft-schwan is currently an expired I-D (for like a year), and it is
really more of a survey than a draft that makes a concrete recommendation.
This work would need to be resumed and made far more concrete for this to
be a viable approach.

Asynchronous updates are another very important feature. We don¹t want to
force uCDNs to poll dCDNs, we want dCDNs to be capable of asynchronously
notifying uCDNs when a change to network state happens. Kevin again has a
sketch of a solution here, where capability information can either be
acquired by a GET from the uCDN or a POST by the dCDN. While as described
it is very lightweight, I suspect it¹s probably a bit too lightweight: I¹d
want to know a lot more about how resource identifiers are discovered or
formulated, and a ton more about error-handling and security. This
mechanism almost certainly should be ReST-based, as it will then inherit
many of the right principles. ALTO, based on Jan¹s draft, of course is
already ReST-based, and has exhaustive sections on JSON encoding, errors,
security, and the way to formulate queries via POSTs. What it lacks is an
asynchronous publication capability. Once again, there are some I-Ds we
can point to, but nothing I¹d consider very concrete. Worse still, even
the capability data that ALTO might carry is based on a -00 I-D
(draft-roome-alto-pid-properties) which is very sketchy, to the point
where providing even a mock-up of the JSON encoding for capabilities in
ALTO is probably impossible today.

So where does this leave us? Fleshing out either of these approaches will
take work. We don¹t want to do needless work articulating two proposals
where we only need one. It is however difficult to have a serious
discussion about the advantages of either mechanism when they are only
specified to this limited degree. Ideally some kind of merger would be
possible here, and the sooner we can get to that the better. I don¹t think
the baseline JSON formats for rendering either footprints or capability
will ultimately vary significantly in the two proposals. It then just
becomes a question of whether it is more practical to start tabula rasa,
as Kevin does, or to build on an existing mechanism, as Jan does. ALTO
comes with baggage, but that baggage has accumulated from several years
now of comment and review, and surely a lot of those components (like
error handling, encoding, security) would have to be incorporate into
Kevin¹s draft if we went forward with it. I suspect that would ultimately
be a longer path, but neither of these paths are particularly short.

Jon Peterson
Neustar, Inc.