Re: [rtcweb] comments on draft-ietf-rtcweb-transports-01

"Pal Martinsen (palmarti)" <palmarti@cisco.com> Fri, 13 December 2013 13:22 UTC

Return-Path: <palmarti@cisco.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8C23F1AE27B for <rtcweb@ietfa.amsl.com>; Fri, 13 Dec 2013 05:22:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.502
X-Spam-Level:
X-Spam-Status: No, score=-9.502 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] 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 J53q6zOniUap for <rtcweb@ietfa.amsl.com>; Fri, 13 Dec 2013 05:22:22 -0800 (PST)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) by ietfa.amsl.com (Postfix) with ESMTP id 7380A1AE279 for <rtcweb@ietf.org>; Fri, 13 Dec 2013 05:22:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=7426; q=dns/txt; s=iport; t=1386940936; x=1388150536; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=XgYvPAjisMLITHULl7tR2C1WuBIZnaM+XQrJdrnoNUo=; b=dHANiyZ/jrifq/m8v8+j9fAbI0BsL9S75aVdM1ibZCktztNxW9pQnrl1 rVpJ0Pb3Ee8eZs+OGIAUp1rfTvPMcq5djvRS7n272pIbQN7vu2jWeXrYW /a5Ho/fBCF5yeFMKo4vvlwQ2mrkXCJZQ23c8H1VBzGlz7yfbznuCmZMUL o=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AgUFAMwIq1KtJXHA/2dsb2JhbABZgwo4SQy4D06BIhZ0giUBAQEDAQEBASRHCwULAgEIRicLJQIEDgUbh2EIDcsJF45iMweDI4ETAQOUM4NjgTCQZIMqgio
X-IronPort-AV: E=Sophos;i="4.95,478,1384300800"; d="scan'208";a="6569755"
Received: from rcdn-core2-5.cisco.com ([173.37.113.192]) by alln-iport-7.cisco.com with ESMTP; 13 Dec 2013 13:22:15 +0000
Received: from xhc-rcd-x05.cisco.com (xhc-rcd-x05.cisco.com [173.37.183.79]) by rcdn-core2-5.cisco.com (8.14.5/8.14.5) with ESMTP id rBDDMF1g023488 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 13 Dec 2013 13:22:15 GMT
Received: from xmb-rcd-x06.cisco.com ([169.254.6.165]) by xhc-rcd-x05.cisco.com ([173.37.183.79]) with mapi id 14.03.0123.003; Fri, 13 Dec 2013 07:22:15 -0600
From: "Pal Martinsen (palmarti)" <palmarti@cisco.com>
To: "Dan Wing (dwing)" <dwing@cisco.com>
Thread-Topic: [rtcweb] comments on draft-ietf-rtcweb-transports-01
Thread-Index: AQHO9154DGopykzGMkKaHd3/eF3DuJpSgoQA
Date: Fri, 13 Dec 2013 13:22:15 +0000
Message-ID: <5C66073A-AD09-482E-A70D-2A23E1AA6AF6@cisco.com>
References: <8F9E4453-BAD3-4ADD-9548-B0727E263F7F@cisco.com>
In-Reply-To: <8F9E4453-BAD3-4ADD-9548-B0727E263F7F@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.61.223.100]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <DE4CF3BACF465B48B2AE9AA9BD73E522@emea.cisco.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "draft-ietf-rtcweb-transports@tools.ietf.org" <draft-ietf-rtcweb-transports@tools.ietf.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] comments on draft-ietf-rtcweb-transports-01
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Dec 2013 13:22:27 -0000

On 12 Dec 2013, at 18:20 pm, Dan Wing <dwing@cisco.com> wrote:

> This document does not explain why the media and data need to share the same 5-tuple.  For inspiration I re-read the introduction to draft-ietf-mmusic-sdp-bundle-negotiation, but it also does not explain the reason it multiplexes everything onto one port.  Is there a citation to why this multiplexing is necessary?  I ask because draft-ietf-rtcweb-transports makes a slight acknowledgement that per-packet DSCP marking is not always possible, but draft-ietf-rtcweb-transports does not provide much guidance for when using the same 5-tuple is harmful or is helpful or is necessary.  It seems draft-ietf-rtcweb-transports is a good place for the guidance between reduced call setup time (which I understand is the primary motivation, but again I don't know where that was written down) versus getting the OS to permit setting per-packet DSCP versus getting the network to assist with 5-tuple prioritization.
> 
I pretty much have the same questions. I think there was some remarks regarding BUNDLE, trickle-ICE, call setup times and how fast NATs can allocate new bindings. I like trickle-ICE for its potential to help with mobility scenarios, a newer ending trickling of candidates as the agents moves from wireless node to wireless node. I am unsure if the reduced complexity is worth the reduction of call setup times. 

> Other comments:
> 
> 
> Section 2.1:
>   If DSCP code points can only be set on a per-socket basis, not per-
>   packet, one loses the ability to have the network discriminate
>   reliably between classes of traffic sent over the same transport, but
>   this does not prevent communication.
> 
> In the case where per-packet DSCP cannot be set (due to OS limitations, I suppose?), should the I-D encourage the endpoint to perhaps avoid bundling, or explain trade-offs of multiplexing everything to one port versus using separate ports?
> 
We did some test with this a couple a years ago. As TCP packets tend to be buffered at the agent it was difficult to set a DSCP marking on a specific packet. Setting the socket option to change the DSCP markings, made all the packets going out from that buffer have the same marking. 

I find the idea of providing differentiated stream properties from a specific application intriguing. But I have a feeling that DSCP markings are not enough to get a well working solution going.

I think the section regarding DSCP markings should be removed. The discussions regarding mechanisms for QoS can probably benefit from waiting until the initial rtcweb spec is out of the door.

> 
> Section 2.2:
>   In order to deal with firewalls that block all UDP traffic, TURN
>   using TCP between the client and the server MUST be supported, and
>   TURN using TLS between the client and the server MUST be supported.
> 
> The "using TCP between the client and the server" is confusing.  How about just "In order to deal with firewalls that block all UDP traffic, TURN-TCP [RFC6062] MUST be supported, and ..." <continue with rest of sentence>.
> 
With TURN-TCP you create a TCP port on the public side of the TURN server. And you end up with a TCP candidate in the SDP.
I think the original intent with the text was to have a UDP port on the public side of the TURN server, but use TCP/TLS to send allocate request and such to the the TURN server. 

Should it be mentioned that sending to port 80 and 443 may also be beneficial to get through stubborn firewalls?


> 
> Section 2.2:
>   ICE TCP candidates [RFC6062] MAY be supported; this may allow
>   applications to achieve peer-to-peer communication across UDP-
>   blocking firewalls, but this also requires use of the SRTP/AVPF/TCP
>   profile of RTP.
> 
> It doesn't require SRTP/AVPF/TCP profile, see http://tools.ietf.org/html/rfc6544#section-4.3 and the last paragraph of page 11 http://tools.ietf.org/html/rfc6544#page-11 specifically "If an agent is utilizing SRTP [RFC3711], it MAY include a mix of UDP and TCP candidates. "
> 
> 
> Section 2.2:
>   The following specifications MUST be supported:
> 
>   o  ICE [RFC5245]
> 
>   o  TURN, including TURN over TCP[RFC5766].
> 
> could be improved by clarifying ICE full implementation is necessary, and tightening TURN.  I suggest:
> 
>   "o  Full implementation of ICE [RFC5245]
>    o  TURN [RFC5766], except that TURN over TLS MAY be supported
* Full TURN [RFC5766] support, including UDP, TCP and TLS communication between agent and TURN server should be supported.

>    o  TURN over TCP [RFC6062]”
> 
* TURN-TCP [RFC6062] to support full TCP path of data channel. (Need rewording…)
> 
> 
> Section 2.2:
>   TURN over TLS [RFC5766] over TCP MAY be supported.  (QUESTION: SHOULD?  MUST?)
> 
> Remove that sentence and fold it into the MUST in the previous sentence, because TURN-over-TLS is defined in the main TURN RFC (RFC5766).
> 
> 
> Section 2.2:
>   For referring to STUN and TURN servers, this specification depends on
>   the STUN URI, [I-D.nandakumar-rtcweb-stun-uri].
> 
> Does that sentence need RFC2119 language?  It think it also needs to cite TURN URI, RFC5928.
> 
> 
> Section 2.3:
>   RTCWEB implementations MUST support multiplexing of DTLS and RTP over
>   the same port pair, as described in the DTLS_SRTP specification
>   [RFC5764], section 5.1.2.  Further separation of the DTLS traffic
>   into SCTP and "other" is described in <need reference>.
> 
> I would just pull the demultiplexing algorithm into this I-D, as this I-D is where all of these protocols are brought together.  For reference, RFC5764 shows:
> 
>                   +----------------+
>                   | 127 < B < 192 -+--> forward to RTP
>                   |                |
>       packet -->  |  19 < B < 64  -+--> forward to DTLS
>                   |                |
>                   |       B < 2   -+--> forward to STUN
>                   +----------------+
> 
> 
> so to add SCTP it would be something like:
> 
>             +----------------+
>             | 127 < B < 192 -+--> forward to RTP
>             |                |
> packet -->  |	     B < 2   -+--> forward to STUN
>             |                |
>             |  19 < B < 64  -+--> forward to DTLS
>      	     +----------------+	      	       |
>      	      	      	      	      	       V
>                            +-------------------------+
>                     SCTP<--+- C-T = application_data |
>      	      	      	    | 	      	      	      |
>      	      	     DTLS<--+- C-T = <other>    	    |
>      	      	      	    +-------------------------+
> 
> 
> Where "C-T" is the TLS ContentType.
> 
> 
> 
> Related to this demultiplexing, it seems this document is best place to describe using ALPN for the DTLS session (see http://tools.ietf.org/html/draft-thomson-rtcweb-consent-00#section-3).
> 
+1 I like that description. Makes it easy for the implementers. 


.-.
Pål-Erik


> -d
> 
> 
> 
> 
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb