[rtcweb] Comments on draft-lennox-rtcweb-rtp-media-type-mux-00
Magnus Westerlund <magnus.westerlund@ericsson.com> Mon, 07 November 2011 10:18 UTC
Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5CEC521F8AC9; Mon, 7 Nov 2011 02:18:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.967
X-Spam-Level:
X-Spam-Status: No, score=-105.967 tagged_above=-999 required=5 tests=[AWL=-0.568, BAYES_00=-2.599, J_CHICKENPOX_22=0.6, J_CHICKENPOX_28=0.6, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id lFY-W1lHchme; Mon, 7 Nov 2011 02:17:59 -0800 (PST)
Received: from mailgw10.se.ericsson.net (mailgw10.se.ericsson.net [193.180.251.61]) by ietfa.amsl.com (Postfix) with ESMTP id C241E21F8AD1; Mon, 7 Nov 2011 02:17:58 -0800 (PST)
X-AuditID: c1b4fb3d-b7c26ae0000035b9-c3-4eb7b055fe63
Received: from esessmw0197.eemea.ericsson.se (Unknown_Domain [153.88.253.125]) by mailgw10.se.ericsson.net (Symantec Mail Security) with SMTP id 8F.0A.13753.550B7BE4; Mon, 7 Nov 2011 11:17:57 +0100 (CET)
Received: from [127.0.0.1] (153.88.115.8) by esessmw0197.eemea.ericsson.se (153.88.115.88) with Microsoft SMTP Server id 8.3.137.0; Mon, 7 Nov 2011 11:17:57 +0100
Message-ID: <4EB7B054.3000706@ericsson.com>
Date: Mon, 07 Nov 2011 11:17:56 +0100
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1
MIME-Version: 1.0
To: "rtcweb@ietf.org" <rtcweb@ietf.org>, IETF AVTCore WG <avt@ietf.org>, Jonathan Lennox <jonathan@vidyo.com>, Jonathan Rosenberg <jonathan.rosenberg@skype.net>
X-Enigmail-Version: 1.3.2
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: AAAAAA==
Subject: [rtcweb] Comments on draft-lennox-rtcweb-rtp-media-type-mux-00
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: IETF AVTCore WG <avt@ietf.org>
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: Mon, 07 Nov 2011 10:18:00 -0000
Hi, (as individual) I have reviewed draft-lennox-rtcweb-rtp-media-type-mux-00 and have some comments. I think this document is most appropriately discussed in AVTCORE as it concerns RTP details. Therefore both lists are cc:ed and reply-to set to AVTCORE WG mailing list. So if you are on RTCWEB and would like to follow this discussion, please follow the AVTCORE mailing list also (avt@ietf.org). 1. I think the biggest issue with multiple media type in a single RTP session isn't discussed. I think it is very important that this issue is brought up as it has to do with the applicability of this solution. To start the discussion on this issue I think a quote from section 4.3 of draft-westerlund-avtcore-transport-multiplexing-01 is appropriate: Many transition scenarios use an RTP translator as a gateway between a single RTP session containing multiple media types multiplexed together, and several separate RTP sessions each using a single media type. In this scenario, it is possible that a legacy device that uses one RTP session for each media type will use the same SSRC in each session. When translating these into a single RTP session, it will be necessary to rewrite one of the SSRCs, so that each stream has a unique SSRC. This SSRC translation process is straight-forward for RTP packets, but is very complex for RTCP packets. It also hinders innovation, since such a gateway will not be able to translate new RTCP extensions that it is unaware of, even if they are supported by devices on both sides of the gateway. The issue is that in any case where you have a desire to mix end-points supporting this and where some don't you create a situation where you will either get malfunctioning translators or translators that likely are a barrier for deploying new RTP/RTCP extensions. Even in WebRTC contexts the case combing the single session and multiple sessions are likely to occur. One case is media plane gateways to legacy that will negotiate the multiplexing between the WebRTC end-point and the gateway and then attempt to perform basic splitting to two RTP sessions on the legacy side based on the payload formats. Another scenario is the centralized conferences where the RTP mixer or translator can negotiate individual behavior to each end-point. Thus one might start out fine with all being single session compliant. Then someone joins who is not and the result is that one is in a situation that either requires renegotiation (including NAT traversal) for the already connected end-points or to do a translator. I am certain that translator is going to be the approach rather than interrupting the ongoing media streams. So yes this would not be an issue if everyone supported it. But it is clear that the world will be one of incremental deployment. So I am quite worried on the future impact using a single RTP session creates. I think RTCWEB needs to seriously consider if this really is the right way to go or if another solution would be better. 2. Section 7.2.9 of draft-westerlund-avtcore-multiplex-architecture-00 discusses a number of aspects of this type of multiplexing. I think the document covers most in a reasonable fashion. The ones that seems to be missing are; A) the number space limitation of the PT field. The 128 values should after all cover all the RTP payload configurations one like to use/offer + the RTCP payload type overlap due to RTP/RTCP multiplexing. So the fact that the real limitations in RTP payload types are in fact that all media types need to share in 96+ available payload type values rather than 128 per each media type. B) I think the bit-rate issues could be improved but it is present. C) Decomposited end-points are missing. This is not a big issue, only a down side with this that increases the bit-rate to the actual functional end-points and require them to have handling of the multiple media types. So this is a limitation if one attempt to use this in a Telepresence scenario with dedicated hardware, not an issue in a browser context. 3. Section 3: For sessions using the RTP/AVPF [RFC4585] and RTP/SAVPF [RFC5124] profiles, however, endpoints SHOULD set the minimum RTCP regular reporting interval trr-int to 5000 (5 seconds), unless they explicitly need it to be lower. This minimizes the excessive RTCP bandwidth consumption, as well as aiding compatibility with AVP endpoints. Since this value only affects regular RTCP reports, not RTCP feedback, this does not prevent AVPF feedback messages from being sent as needed. When AVP compatibility is the goal, I think 5 seconds is mostly ok. The regular RTCP suppression algorithm has a bit of strange behavior in cases where the Td value becomes similar to the T_rr_interval. That as the scheduled transmission time of an regular RTCP packet might close to the randomized value of the T_rr_interval but still smaller, that can in worst case result in that the AVPF RTCP sender sends RTCP some cases with close 2*T_rr_interval but no more often than 0.5*T_rr_interval. Thus the median of the distribution gets skewed towards higher value than T_rr_interval. I will send a separate email about this as it requires a bit of graphs and more in detail discussion. 4. Section 3.1: "An endpoint MAY choose to send multiple sources' RTCP messages in a single compound RTCP packet (though such compound packets SHOULD NOT exceed the path MTU, if avoidable and if it is known)." I think this recommendation is appropriate but I think should likely become a general recommendation for RTCP. However, that clearly requires some feedback if it will fail with some implementations. And if it does, I think that signalling support may be necessary. If that is the case, this optimization can't be used when working in the separate RTP session mode in WEBRTC, thus causing a situation where WebRTC end-points needs to have a run-time switch to control if this is used or not. 5. Section 3.1: Regular (non- feedback) RTCP compound packets MUST still begin with an SR or RR packet, but otherwise may contain RTCP packets in any order. Receivers MUST be prepared to receive such compound packets. I think this needs to make clear that for each SSRC include, both SR/RR and the corresponding SDES CNAME items MUST be included. 6. Section 3.1: "An endpoint SHOULD NOT send reception reports from one of its own sources about another one ("cross-reports")." This topic should also likely be discussed if it should be a general clarifications to RFC3550. That includes how one determines what is the considered the same end-point and what implications it provides. Is it based on all SSRCs with the same CNAME in an end-point SHOULD NOT send report blocks from more than one? I do note that all SSRC still needs to send an SR or an RR(possibly empty) just to announce there presence in the RTP session. 7. Section 3.1: Similarly, an endpoint sending multiple sources SHOULD NOT send reception reports about a remote source from more than one of its local sources. The same comments as for 6) applies to this. 8. Section 4: The more difficult case is if an offerer cannot reply on its potential peers supporting any features beyond baseline RTP (i.e., neither ICE nor multiplexing). I don't think this becomes a real issue if one assumes the offer following the signalling as defined by https://datatracker.ietf.org/doc/draft-holmberg-mmusic-sdp-bundle-negotiation/ 9. Section 5: So we do now have two proposals on the table for how to signal this. One in https://datatracker.ietf.org/doc/draft-holmberg-mmusic-sdp-bundle-negotiation/ (BUNDLE) and one in this document (Lennox). A comparison is quite interesting. BUNDLE will have very straightforward back-wards compatibility as that can happen in the single offer/answer exchange. However, there exist no way of forcing the usage of BUNDLE. Lennox requires a new Offer if the peer doesn't support this. In addition it creates a SDP media type that isn't supposed to be used with MIME. That is likely going to be an interesting to execute. It does allow for mandating support and refusing to establish a session not compliant. In addition it reduces the risk of confusion around payload types as they are only listed on a single media description. I personally prefer the BUNDLE approach. Cheers Magnus Westerlund ---------------------------------------------------------------------- Multimedia Technologies, Ericsson Research EAB/TVM ---------------------------------------------------------------------- Ericsson AB | Phone +46 10 7148287 Färögatan 6 | Mobile +46 73 0949079 SE-164 80 Stockholm, Sweden| mailto: magnus.westerlund@ericsson.com ----------------------------------------------------------------------
- [rtcweb] Comments on draft-lennox-rtcweb-rtp-medi… Magnus Westerlund