Subject: RE: draft-hutton-httpbis-connect-protocol-00.txt

From: Sergio Garcia Murillo <[email-masked]>
Date: Fri, 27 Jun 2014 11:50:38 +0200

El 27/06/2014 10:25, Hutton, Andrew escribió:
> I just submitted this draft for which there is a short agenda slot in Toronto httpbis wg meeting.
>
> The draft proposes adding an indication in to HTTP Connect as to what protocol is used with the tunnel and specifically for use with WebRTC (I.e. TURN/ICE-TCP) so should be of interest to this group.
>
> Discussion should be on the HTTPBIS list.
>
> Regards
> Andy
>
>
>          Title           : HTTP Connect - Tunnel Protocol For WebRTC
>          Authors         : Andrew Hutton
>                            Justin Uberti
>                            Martin Thomson
> 	Filename        : draft-hutton-httpbis-connect-protocol-00.txt
> 	Pages           : 7
> 	Date            : 2014-06-27
>
> Abstract:
>     This document describes a mechanism to enable HTTP Clients to provide
>     an indication within a HTTP Connect request as to which protocol will
>     be used within the tunnel established to the Server identified by the
>     target resource.  The tunneled protocol is declared using the Tunnel-
>     Protocol HTTP Request header field.  Label usage relating to the use
>     of HTTP Connect by WebRTC clients (e.g. turn, webrtc) are described
>     in this document.
>
Hi Andrew,

 From the draft:

      3.4
      <http://tools.ietf.org/html/draft-hutton-httpbis-connect-protocol-00#section-3.4>.
      ICE-TCP / WebRTC as the Tunnel Protocol

    [I-D.ietf-rtcweb-transports] also requires that a WebRTC client
    support ICE-TCP [RFC6544  <http://tools.ietf.org/html/rfc6544>] as a mechanism to allow webrtc applications
    to communicate to peers with public IP addresses across UDP-blocking
    firewalls without using a TURN server.  In this case the client
    SHOULD include the "Tunnel-Protocol" header field with the value
    "webrtc" [I-D.thomson-rtcweb-alpn  <http://tools.ietf.org/html/draft-hutton-httpbis-connect-protocol-00#ref-I-D.thomson-rtcweb-alpn>] as shown in the example below.

             CONNECT 198.51.100.0:8999 HTTP/1.1
             Host: 198.51.100.0:8999
             Tunnel-Protocol: webrtc

If the protocol is ICE-TCP, why is it labeled as webrtc? Shouldn't it be better, and most consistent to use "ice" as value instead?
Also in turn you don't specify it it is TURN-TCP/TURN-TLS, shouldn't we also not specify it in here (although ICE TCP is the only viable use for tunneling ICE)? It would be then as this?

      3.4
      <http://tools.ietf.org/html/draft-hutton-httpbis-connect-protocol-00#section-3.4>.
      ICE as the Tunnel Protocol

    [I-D.ietf-rtcweb-transports] also requires that a WebRTC client
    support ICE-TCP [RFC6544  <http://tools.ietf.org/html/rfc6544>] as a mechanism to allow webrtc applications
    to communicate to peers with public IP addresses across UDP-blocking
    firewalls without using a TURN server.  In this case the client
    SHOULD include the "Tunnel-Protocol" header field with the value
    "ice" [I-D.thomson-rtcweb-alpn  <http://tools.ietf.org/html/draft-hutton-httpbis-connect-protocol-00#ref-I-D.thomson-rtcweb-alpn>] as shown in the example below.

             CONNECT 198.51.100.0:8999 HTTP/1.1
             Host: 198.51.100.0:8999
             Tunnel-Protocol:ice

Also note that ICE tunneling may be used in non-webrtc apps.

Best regards
Sergio

---

From: Martin Thomson <[email-masked]>
Date: Fri, 27 Jun 2014 09:35:50 -0700

On 27 June 2014 02:50, Sergio Garcia Murillo
<[email-masked]> wrote:
> If the protocol is ICE-TCP, why is it labeled as webrtc? Shouldn't it be
> better, and most consistent to use "ice" as value instead?

I think that's a point of confusion.  The intent is to do webrtc, or
something that is compatible with webrtc.  ICE, and ICE-TCP, are just
a small part of what is being done here.  ICE isn't inherently useful,
after all.

---

From: Sergio Garcia Murillo <[email-masked]>
Date: Fri, 27 Jun 2014 23:29:34 +0200

> a small part of what is being done here.  ICE isn't inherently useful,
Well, the fact is that you are tunneling an ICE-TCP connection over an 
HTTP CONNECT, so calling it "webrtc" sub protocol is quite misleading. 
Mainly because there is not such a thing as a webrtc protocol per se, 
and ICE-TCP may be used by non-webrtc applications.

Also, I think it is not coherent because you are calling "turn" 
subprotocol to TURN tunneled over an HTTP CONNECT. So, following your 
reasoning, you should call it "webrtc" , given that TURN isn't 
inherently useful, after all.

Best regards
Sergio

---

From: Martin Thomson <[email-masked]>
Date: Fri, 27 Jun 2014 15:05:16 -0700

On 27 June 2014 14:29, Sergio Garcia Murillo
<[email-masked]> wrote:
> Mainly because there is not such a thing as a webrtc protocol per se, and
> ICE-TCP may be used by non-webrtc applications.

This is covered in the draft that is referenced.  "webrtc" is just a
token that means: ICE *AND* DTLS + SCTP + Data Channel Protocol
multiplexed with SRTP (see
http://tools.ietf.org/html/draft-ietf-rtcweb-transports, which defines
the protocol set; and
http://tools.ietf.org/html/draft-thomson-rtcweb-alpn, which defines
the token).

> Also, I think it is not coherent because you are calling "turn" subprotocol to TURN tunneled over an HTTP CONNECT. So, following your reasoning, you should call it "webrtc" , given that TURN isn't inherently useful, after all.

Yes, I think that I would prefer this.  I think that I did raise that
point, or should have.  I didn't really get the time to follow up, so
thanks for highlighting this.

---

From: Sergio Garcia Murillo <[email-masked]>
Date: Mon, 30 Jun 2014 11:29:33 +0200

> thanks for highlighting this.

In case of using just one token (i.e. "webrtc"), then I think what is 
misleading for me is the header name. IMHO if we are talking about 
protocols, they are ice and turn, if we are talking about webrtc, then 
it is something different. How about Tunneled-Application or 
Tunneled-Application-Protocol?

Best regards
Sergio

---

From: Martin Thomson <[email-masked]>
Date: Mon, 30 Jun 2014 09:19:07 -0700

On 30 June 2014 02:29, Sergio Garcia Murillo
<[email-masked]> wrote:
> protocols, they are ice and turn, if we are talking about webrtc, then it is
> something different. How about Tunneled-Application or

It's still a protocol.  But I have no objection to the former, some
small objection to the latter, but only with respect to verbosity.