Re: [ogpx] The Urgent Need For Protocol Negotiation (Was: Beyond the monolithic client protocol endpoint)
Carlo Wood <carlo@alinoe.com> Mon, 07 December 2009 20:18 UTC
Return-Path: <carlo@alinoe.com>
X-Original-To: ogpx@core3.amsl.com
Delivered-To: ogpx@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix)
with ESMTP id 9996E3A692F for <ogpx@core3.amsl.com>;
Mon, 7 Dec 2009 12:18:09 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.737
X-Spam-Level:
X-Spam-Status: No, score=-0.737 tagged_above=-999 required=5 tests=[AWL=0.693,
BAYES_00=-2.599, HELO_EQ_AT=0.424, HOST_EQ_AT=0.745]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com
[127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ZFikJI1L8LGF for
<ogpx@core3.amsl.com>; Mon, 7 Dec 2009 12:18:08 -0800 (PST)
Received: from viefep11-int.chello.at (viefep11-int.chello.at [62.179.121.31])
by core3.amsl.com (Postfix) with ESMTP id 4E74A3A6808 for <ogpx@ietf.org>;
Mon, 7 Dec 2009 12:18:08 -0800 (PST)
Received: from edge04.upc.biz ([192.168.13.239]) by viefep11-int.chello.at
(InterMail vM.7.09.01.00 201-2219-108-20080618) with ESMTP id
<20091207201756.UQA21592.viefep11-int.chello.at@edge04.upc.biz>;
Mon, 7 Dec 2009 21:17:56 +0100
Received: from mail9.alinoe.com ([77.250.43.12]) by edge04.upc.biz with edge
id ELHn1d01L0FlQed04LHoYi; Mon, 07 Dec 2009 21:17:56 +0100
X-SourceIP: 77.250.43.12
Received: from carlo by mail9.alinoe.com with local (Exim 4.69) (envelope-from
<carlo@alinoe.com>) id 1NHjym-0006T3-U6; Mon, 07 Dec 2009 21:14:44 +0100
Date: Mon, 7 Dec 2009 21:14:44 +0100
From: Carlo Wood <carlo@alinoe.com>
To: Meadhbh Hamrick <meadhbh.siobhan@gmail.com>
Message-ID: <20091207201444.GB23549@alinoe.com>
References: <e0b04bba0912051014y1aeea211i2ce3267179c70f1e@mail.gmail.com>
<4B1B785A.9000602@cox.net>
<e0b04bba0912060911i122d62e9o37a7229a2d742ac@mail.gmail.com>
<20091207001703.GA26539@alinoe.com>
<f72742de0912071030k22cae4d1xd4100ecd823373af@mail.gmail.com>
<b8ef0a220912071057y46127519ibfc23ba4205c67da@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b8ef0a220912071057y46127519ibfc23ba4205c67da@mail.gmail.com>
User-Agent: Mutt/1.5.20 (2009-06-14)
Cc: ogpx@ietf.org
Subject: Re: [ogpx] The Urgent Need For Protocol Negotiation (Was: Beyond the
monolithic client protocol endpoint)
X-BeenThere: ogpx@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Virtual Worlds and the Open Grid Protocol <ogpx.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/ogpx>
List-Post: <mailto:ogpx@ietf.org>
List-Help: <mailto:ogpx-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ogpx>,
<mailto:ogpx-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Dec 2009 20:18:09 -0000
On Mon, Dec 07, 2009 at 10:57:00AM -0800, Meadhbh Hamrick wrote: > right. as i remember it (and i may be doing carlo's proposal a great > disservice) the proposal is: > > a. at connection time, the client tells the server what new protocols > it knows about. > b. if the server doesn't know about the new protocols, then it uses > the base protocol > > if so, we should also ask how this is different than a HTTP Upgrade. The details are probably only important once we agree that this is needed (or at least handy to have :p)... Nevertheless, a better description would be: a. At connection time, the server tells the client what implementation it represents (ie "opensim" or "lindenlab") (called "label" below), it's protocol version, and a "compatibility version" (multiple label/version/compversion triplets may be provided). b. If the client knows about compversion or later for that implementation, then it proceeds; otherwise it would be incompatible (it will lack a feature that the service requires) and the user has to upgrade before they can connnect. c. Since the client knows (was written for) "label" and version X, where X >= compversion, it will know what features are mandatory and which are optional (new optional feature of a later version it won't know about, but it also won't support those). Therefore it can request those optional features that it supports and wants. (your points 'a', above). d. The server sends a final handshake where it tells the client with which features it will proceed (this is necessary as the server might DENY requested optional features, because it is possible that the current version of the server doesn't support those anymore; which doesn't make it incompatible with the viewer). Thus: TO client <-- NETWORK label1 version1 compversion1 [label2 version2 compversion2 ...] >From client --> PROT REQ label1 versionX <list of features> (where compversion1 <= versionX <= version) TO client <-- PROT SET label1 versionX <pruned list of features> -- Carlo Wood <carlo@alinoe.com>
- [ogpx] Beyond the monolithic client protocol endp… Morgaine
- Re: [ogpx] Beyond the monolithic client protocol … Lawson English
- Re: [ogpx] Beyond the monolithic client protocol … Morgaine
- [ogpx] The Urgent Need For Protocol Negotiation (… Carlo Wood
- Re: [ogpx] Beyond the monolithic client protocol … David W Levine
- Re: [ogpx] Beyond the monolithic client protocol … Han Sontse
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Joshua Bell
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Meadhbh Hamrick
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Carlo Wood
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Carlo Wood
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Suzy Deffeyes
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Carlo Wood
- Re: [ogpx] The Urgent Need For Protocol Negotiati… Morgaine