- From: Matthew Kerwin <matthew@kerwin.net.au>
- Date: Tue, 4 Mar 2014 05:58:30 +1000
- To: Roberto Peon <grmocg@gmail.com>
- Cc: Amos Jeffries <squid3@treenet.co.nz>, Martin Thomson <martin.thomson@gmail.com>, ietf-http-wg@w3.org
- Message-ID: <CACweHNCroU+9J=+12jm2fdz3=vo+xn6wU0WCkQgBVE5u4Hpr-w@mail.gmail.com>
On Mar 3, 2014 9:00 PM, "Roberto Peon" <grmocg@gmail.com> wrote: > > We currently have a number of application-layer applications that we might want to use, a number of protocols, a number of transports, and at least two levels of 'security'. > {http,ws}/{tls/,}{tcp, udp}/ip > > This is already 8 combinations. If we add another application-layer protocol and another transport (sctp for instance), we're up to 18... > > If goodness forbid, we find some need to specify schemes, this becomes more ludicrous. > If we're even thinking about going any length down this road, then we need to at least reserve the capability to do something reasonable about this. The goal of Alt-Svc as I understand it is to specify different ways to access an identical service. These could be as simple as a different ip address for a multi-interface server, to a completely different protocol stack (eg. http1/tcp/ip4 -> h2/tls/tcp/ip6). It's important to note that http/1.1 and h2 are interchangeable only at the transport level, because the higher semantic parts (the "scheme", as we seem to be calling it) are the same. Changing the scheme means changing the way we can interact with a resource means changing the service. The current proposal for describing an Alt-Svc protocol stack seems to be something like: 1. ip version (implied by the value of the address given) 1b. ip address 2. "tcp" 2b. tcp port 3. everything else, using ALPN We can eliminate tcp-vs.-udp(-vs.whatever) from the ALPN token by adding an explicit field to Alt-Svc to differentiate that layer. This means another registry of protocol identifiers, which might be beyond this wg, but there it is. I think we're safe with ip(4/6)... Unless anyone wants to suggest we allow IPX or RIP there? Maybe IPsec? If "everything else" is leveraging ALPN's existing identifier registry, that registry had better be able to handle all the options we require. So far those seem to be: http1(+TLS?), http2, http2+TLS, websockets, and ws+TLS. Five doesn't seem so bad. Incidentally, if TCP goes away, I'm altering my preferences for tokens to: 1. 'h2' and 'h2tls', or 2. 'h2c' (=cleartext) and 'h2'
Received on Monday, 3 March 2014 19:58:58 UTC