[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Distribution CPG Protocol
Stephen,
First, I will second Alex's opinion that this protocol is
really about about the content routing problem
> Is there consensus that the distribution protocol operates in three phases?
>
> 1. CDN advertises its capabilities
> 2. The Content Provider requests the use of CDN services by identifying
> content to be distributed.
> 3. The CDN confirms (or denies) the request for service
I'll push back on stage #3... It looks like "inline qos" to me... what
I mean by this is that I don't think we should be negotiating any type
of QoS in the protocol... I would say you just advertise to your
neighbors
and make sure the off-line SLAs cover any QoS...
> Drilling down, I don't (yet) sense a consensus on all the details, but are
> these all the attributes proposed for phase 1?
>
> 1a. footprint (expressed as a set of IP address prefixes)
> 1b. cost
> 1c. content type supported
> 1d. performance
> 1e. generic metric
> 1f. load measure
> 1g. cache capacity (I'm generalizing from "max file size")
I vote for simplicity sake only for: 1a, 1c, and 1e
I would strongly recommend that we not try to design a QoS routing
protocol... inter-provider QoS is difficult (if not nearly
impossible) to achieve dynamically (i.e. without off-line SLAs
and strict measurement)
> For phase 2, are these the set so far?
>
> 2a. URI path
> 2b. Authoritative Source (generalized from "Content AS")
> 2c. "next hop" (I don't understand this attribute, so I may be
> mis-characterizing it)
> 2d. "metric" (ditto)
>
> I'd also suggest adding
>
> 2e. unique content identifier (e.g. ETag + source ID)
> 2f. content size
> 2g. generic content attributes (e.g. HTTP entity header values)
Why exchange content size and identifier?
We also need an attribute for looping... this could be a 2b extended
to a "content AS path" (with the first being the authoritative)
> Phase 3 could be pretty straightforward. The simplest approach would be a
> binary ACK/NACK, but there might be some value in a bit more fine-grained
> response. Just to get the discussion started, here are some possibilities
> off the top of my head.
>
> 3a. accept/reject
> 3b. time frame of commitment
> 3c. partial acceptance (e.g. only 10 GB of the 50 GB requested)
Again, I'm against putting QoS negotiation in an inter-provider
protocol... history shows its very difficult
There are other questions we need to ask:
1. How are aggregates represented?
2. Should hashes or full URIs be used?
-brad