[rtcweb] Review Comments on draft-ietf-rtcweb-transports-04.txt

Magnus Westerlund <magnus.westerlund@ericsson.com> Fri, 25 April 2014 14:20 UTC

Return-Path: <magnus.westerlund@ericsson.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 65BB71A01B3 for <rtcweb@ietfa.amsl.com>; Fri, 25 Apr 2014 07:20:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 8bzZmYWtiAix for <rtcweb@ietfa.amsl.com>; Fri, 25 Apr 2014 07:20:02 -0700 (PDT)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) by ietfa.amsl.com (Postfix) with ESMTP id 95F591A022E for <rtcweb@ietf.org>; Fri, 25 Apr 2014 07:20:01 -0700 (PDT)
X-AuditID: c1b4fb2d-f79b16d00000734d-fd-535a6f0914c4
Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.253.124]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 4C.BF.29517.90F6A535; Fri, 25 Apr 2014 16:19:53 +0200 (CEST)
Received: from [127.0.0.1] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.35) with Microsoft SMTP Server id 14.3.174.1; Fri, 25 Apr 2014 16:19:53 +0200
Message-ID: <535A6F08.3030203@ericsson.com>
Date: Fri, 25 Apr 2014 16:19:52 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <20140425084726.8812.24604.idtracker@ietfa.amsl.com>
In-Reply-To: <20140425084726.8812.24604.idtracker@ietfa.amsl.com>
X-Enigmail-Version: 1.6
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprFLMWRmVeSWpSXmKPExsUyM+JvjS5nflSwwdc/1hZr/7WzOzB6LFny kymAMYrLJiU1J7MstUjfLoEr48mBRSwF54wr/l3tZW9gbNDsYuTkkBAwkXiy6DAzhC0mceHe ejYQW0jgKKPEpYfyXYxcQPZyRolzM7ezgiR4BbQlTpzfDdbAIqAqcfL2OkYQm03AQuLmj0aw ZlGBYImlcxazQNQLSpyc+QTMFhEQlXj9eBrYHGEBe4kr92+wQCxzkFg2/zfYHE4BR4kjOxcy dTFyAB0kLtHTGAQSZhbQk5hytYURwpaXaN46mxmiVVuioamDdQKj4Cwk22YhaZmFpGUBI/Mq RtHi1OLi3HQjY73Uoszk4uL8PL281JJNjMDAPLjlt+4OxtWvHQ8xCnAwKvHwFn+JDBZiTSwr rsw9xCjNwaIkztt21ztYSCA9sSQ1OzW1ILUovqg0J7X4ECMTB6dUA6MLf9qcqD2H5jx/Y3bo XJ5cawNbp8brM8cz+eOkywtfvW32miN8glNvyiXpFypCt3ftkWZrSwhLC6s4GaI1P0f/mTPT 87T7P1dM2XywhfPy7JBqVxl3fq9zZ1n27K7KXn3M8quIwbz9u/ndnY6k899zOdpy84ir81Hb 62zMH42qayesZL+iEK3EUpyRaKjFXFScCADyRo0uLQIAAA==
Archived-At: http://mailarchive.ietf.org/arch/msg/rtcweb/t-ch3V0t4n1Gk2CSzYSkiBU2FYg
Subject: [rtcweb] Review Comments on draft-ietf-rtcweb-transports-04.txt
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, 25 Apr 2014 14:20:06 -0000

Harald and WG,

I am catching up on the changes and improvements in the two latest
versions. I have tried to do a complete review through and match with my
previous comments.

First of all, I think the two revisions have improved a number of things.

1. Section 3.1:
   Platforms that do not give access to these interfaces will not be
   able to support a conforming RTCWEB implementation.

I am very split over this statement. We do want platforms to support per
packet DSCP markings, while at the same time we know we might not be
able to set DSCP at all for a transport flow (5-tuple). Thus, I wonder
if calling the implementations non-conformant due to the underlying
platform is a bit though.

2. Section 3.1:
   This specification does not assume that the implementation will have
   access to ICMP or raw IP.

But, to my understanding we have things that could benefit from getting
the information from ICMP, e.g. the SCTP MTU discovery mechanism. Thus,
I wonder if this statement should be changed to:

   This specification does not assume that the implementation will have
   access to ICMP or raw IP, however access to ICMP information can
   benefit the WebRTC implementation and its performance.

3. Section 3.4:
   TURN TCP candidates [RFC6062] MAY be supported.

   However, such candidates are not seen as providing any significant
   benefit.  First, use of TURN TCP would only be relevant in cases
   which both peers are required to use TCP to establish a
   PeerConnection.  Secondly, that use case is anyway supported by both
   sides establishing UDP relay candidates using TURN over TCP to
   connect to the relay server.  Thirdly, using TCP only between the
   endpoint and its relay may result in less issues with TCP in regards
   to real-time constraints, e.g. due to head of line blocking.

I think these two paragraphs should be moved to after the following
paragraph:

   ICE-TCP candidates [RFC6544] MUST be supported; this may allow
   applications to communicate to peers with public IP addresses across
   UDP-blocking firewalls without using a TURN server.

>From a discussion of WebRTC RTP or DTLS packets over TCP, it makes
better sense to first discuss the ICE TCP candidates, then discuss why
TCP candidates from TURN makes less so.

4. Section 3.4:
   If TCP connections are used, RTP framing according to [RFC4571] MUST
   be used, both for the RTP packets and for the DTLS packets used to
   carry data channels.

I think this paragraph forgets the encapsulation of the STUN messages
that ICE emits for initial path verification and nomination, as well as
for keep-alive and consent freshness.

5. section 3.4:

   NOTE IN DRAFT: This may be added.

I don't understand this note.

6. Section 3.5:

   The setup protocol for RTCWEB data channels is described in
   [I-D.jesup-rtcweb-data-protocol].

First of all, this pointer is the individual version rather than WG draft.

Secondly, I think the DCEP shall be mandated to be supported by an
WebRTC implementation in this specification, and thus become a normative
reference also.

7. Section 4:

   The RTCWEB prioritization model is that the application tells the
   RTCWEB implementation about the priority of media and data flows
   through an API.

As we have discussed before in regards to DART as well as
draft-ietf-tsvwg-rtcweb-qos has needs for clear definitions what is
meant with media and data flows here. But, reading this section it is
clear that the document itself has need for clear definitions.

A data flow appear to be the one of the SCTP streams that forms a single
data channel, as this is the level where we assign data priority.

A WebRTC media flows is a more complex beast. It is one or more RTP
packet streams (draft-ietf-avtext-grouping-taxonomy), i.e. the RTP
packets associated with an SSRC. However, due to FEC and RTP
retransmission as well as scalable codecs, there could be multiple SSRCs
that carries data associated and possibly necessary to be able to
perform media decoding. Thus, I think we are talking about the RTP
packet streams that are the result of a single MediaStreamTrack within
one RTCPeerConnection.

I would also note that Section 4.1 uses Media Stream instead of media
flow. There are need for alignment here.

8. Section 4.1:

I think this section is a good start. It clearly needs some more input.
Especially about the notes made.

In addition to the first three configurations, I think the one where one
has different transport flows per priority level for the media flows
appears to be one most likely to require mandating implementation
support. Yes this means that I also would like to mandate implementation
support for the one transport flow per media type configuration.

9. Section 4.1:

A receiving implementation MUST be able to receive media and data in
   all these configurations.

It is very unclear what "all" in the above sentence includes.

10. Section 4.2:

First of all I do wonder if this is the right solution. I haven't yet
spent enough time on the issue to know if the proposal is useful and
good enough, or if we need something else. I do encourage people to
consider this. However, considering Simon Perrault's comment, I do want
to state that I share Harald's view that this prioritization behavior
needs to be consistent over the implementations.

11. Section 4.2:
   This prioritization is independent of the
   media type, but will lead to packet loss due to full send buffers
   occuring first on the highest volume flows at any given priority
   level.

I think I have two questions here. First, I appears that you assume that
you have an API model where the framework will try to send and fail
rather than creating the data based on allowance or with the knowledge
that you can send a particular data amount. I think creating sender side
buffer overflow is a poor regulation model.

Secondly, I would not that this issue has a higher probability of
effecting the flow with most data first.

Cheers

Magnus Westerlund

----------------------------------------------------------------------
Services, Media and Network features, Ericsson Research EAB/TXM
----------------------------------------------------------------------
Ericsson AB                 | Phone  +46 10 7148287
Färögatan 6                 | Mobile +46 73 0949079
SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com
----------------------------------------------------------------------