Re: [rtcweb] How to multiplex between peers
Magnus Westerlund <magnus.westerlund@ericsson.com> Wed, 20 July 2011 12:11 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 6ED2521F8713 for <rtcweb@ietfa.amsl.com>; Wed, 20 Jul 2011 05:11:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.523
X-Spam-Level:
X-Spam-Status: No, score=-106.523 tagged_above=-999 required=5 tests=[AWL=0.076, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Sc8lJ0nn6lsh for <rtcweb@ietfa.amsl.com>; Wed, 20 Jul 2011 05:11:01 -0700 (PDT)
Received: from mailgw9.se.ericsson.net (mailgw9.se.ericsson.net [193.180.251.57]) by ietfa.amsl.com (Postfix) with ESMTP id CF13D21F8747 for <rtcweb@ietf.org>; Wed, 20 Jul 2011 05:11:00 -0700 (PDT)
X-AuditID: c1b4fb39-b7bfdae000005125-54-4e26c5d355db
Received: from esessmw0256.eemea.ericsson.se (Unknown_Domain [153.88.253.124]) by mailgw9.se.ericsson.net (Symantec Mail Security) with SMTP id 08.E8.20773.3D5C62E4; Wed, 20 Jul 2011 14:10:59 +0200 (CEST)
Received: from [127.0.0.1] (153.88.115.8) by esessmw0256.eemea.ericsson.se (153.88.115.97) with Microsoft SMTP Server id 8.3.137.0; Wed, 20 Jul 2011 14:10:58 +0200
Message-ID: <4E26C5CF.1080007@ericsson.com>
Date: Wed, 20 Jul 2011 14:10:55 +0200
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20110624 Thunderbird/5.0
MIME-Version: 1.0
To: Cullen Jennings <fluffy@cisco.com>
References: <4E259EAD.3060505@ericsson.com> <FAE78F7C-8C51-41C4-B3D7-6497396E12A5@cisco.com>
In-Reply-To: <FAE78F7C-8C51-41C4-B3D7-6497396E12A5@cisco.com>
X-Enigmail-Version: 1.2
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: AAAAAA==
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] How to multiplex between peers
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
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: Wed, 20 Jul 2011 12:11:02 -0000
As an Individual Follow up inline On 2011-07-20 02:43, Cullen Jennings wrote: > On Jul 19, 2011, at 8:11 , Magnus Westerlund wrote: >> >> 1. We have 4 or more protocols (The possible set of protocols >> include: STUN, RTP/RTCP, Datagram, and DTLS-SRTP. There is likely >> future extensions, like reliable protocol) that needs to be >> identified and demultiplexed. A single extension in one of these >> protocols can cause the whole house of cards to come tumbling >> down. > > Uh, we already demux STUN, RTP/RTC, DTLS-SRTP based on first byte and > this is no big deal and is sort of water under the bridge at this > point. But this first byte multiplex issues is a red herring to this > topic, what happens with the demux of these protocols does not really > have much to do with how to demux the different RTP sessions. I agree that we currently have a design that multiplex the three above protocols onto the same lower layer when one uses ICE and DTSL-SRTP. However, the proposal in the WG is pilling on to this, but suggesting to add at least one protocol to the mix, maybe more if we do reliable in the future. The more independent protocols there is in the mix the bigger the risk is that we get a failure in the demultiplexing. >From my perspective this is not a red-herring at all. It is about good and future proof design. Both this issue and the RTP session multiplexing needs to be considered. > >> >> 2. It will require one to find an RTP internal session >> multiplexing mechanism. This is likely not easy or causes a fork of >> RTP into two non-compatible versions. In addition such a mechanism >> needs defining which takes time, likely substantial time as there >> is quite a lot of RTP mechanisms to consider. > > A bunch of us our proposing SSRC. We not seeing any problems with it. > I rather having this discussion be concrete around the specific > proposal on the table and not just some abstract it might be hard to > find something. The proposal on the table is to change the semantics of the SSRC field. So that it contains one part that is session identifier and another that is stream identifier. This have substantial impact on the RTP/RTCP specification and the implementation. To the degree where what you have is not any longer compatible with RFC 3550. It looks like RTP/RTCP but it isn't any more. We have documented the impacts of your proposal in Sections 2.2.1 and 3.3.1 of https://datatracker.ietf.org/doc/draft-perkins-rtcweb-rtp-usage/?include_text=1 So from my perspective the proposal on the table is a complete no-go. And I have been thinking trying to find a proposal that wouldn't result in all these issues and still be internal to RTP. And I haven't found one yet. That is why I flag this. If there is a solution that doesn't have as serious impact I do want AVTCORE to standardize it. > >> >> 3. We likely need a multiplexing layer anyway if we want a fall >> back over WebSockets or HTTP. > > Not really - I think this is best done by making another TURN like > protocol that is compatible uses WebSockets or HTTP as the underling > transport. An architecture like this means that that protocol is > selected unilateral by the endpoint and used to get through that > endpoints firewalls. Both clients don't have to agree to do the same > thing - just like If I am using a TURN and you are not, we can still > have a call. Avoid a bilateral solution where possible make it much > easier to roll out. Well, it still needs to put out compatible flows. And if we have a multiplexing layer that becomes equally easy. > >> >> Thus we see this a very fragile mechanism that creates additional >> work overhead and large uncertainties in when it would be >> available. > > This all sounds sort of doom and gloom but lets talk about real > problems. > Timing is a real problem. If we want to do multiplexing in RTCWEB 1.0 we need to pick what is ready and available. We can't go around proposing new things that are complicated. Changing the SSRC field semantics in RTP/RTCP is a complicated thing. We will have tons of discussion of what the requirements really are for a more generally applicable solution. Not one that barely meets RTCWEBs needs, when we know the minute this goes out the door a lot of other RTP using services and applications would like to use it. The teleprecense work in CLUE is just one example. There will be a bunch. Thus AVTCORE needs to have a serious discussion of what the requirements are. Then we will discuss what the architectural implications are of any proposal. Review what existing functionality we are ready to break and likely need to replace. What the issues are with gatewaying between old and new semantics. Cullen, you are an experienced IETF, you have been an AD for RAI. What do think the probability is that this discussion has concluded and resulted in an IESG approved specification before December 2012? >> >> We have in our draft: >> https://datatracker.ietf.org/doc/draft-perkins-rtcweb-rtp-usage/ >> looked at two possible suggestions for explicit multiplexing. >> Either a thin shim layer primarily consisting of a identifier that >> through negotiation is bound to a context, like an particular RTP >> session or a datagram channel. > > The problem with this is that if you are talking to a device that > does not support this you forever have to go through some > intermediary gateway that strips the byte. Just like turns servers, > this reduces the user experience by adding latency and jitter and is > expensive to run due to the bandwidth required. Isn't that gateway going to be present anyway in most case. I think the ICE connectivity checks are one thing that will force a gateway in many cases. In the cases it isn't needed, then you can skip the multiplexing in that case to reach the legacy. Would it not be better to have a clean explicit design for how to multiplex protocols between peers that can be used in RTCWEB and other future applications that doesn't drag our past mistakes into the design and forever prevent simple expansion with new functionality. The cost, a low one from my perspective is to say that legacy don't get the benefits of multiplexing. A feature they anyway are not going to get unless they use a gateway or are updated to be RTCWEB compliant. > >> >> The other alternative we considered was using DCCP over UDP for RTP >> and datagram. That way we got a complete port space for >> multiplexing different purposes for flows. We also got a transport >> framework with its own negotiation, congestion control, a several >> other features. > > This has the same problem as above with the added problem of I am not > aware of a good (meaning widely tested) DCCP implementation in user > land and to be deployable this pretty much needs to be all user land. Yes, I do agree that it needs to be a user-land implementation in the browser until DCCP becomes available in the OSes. But that is true also for all the alternatives that so far been discussed. TFRC in RTP will be as much user-land as DCCP over UDP with TFRC. The big difference is that we either have a well reviewed and by the community and IESG approved specification in DCCP. Or we create something our selves that needs to go through all that review and will be even less tested than DCCP is. > > >> >> We invite people to consider these proposals or suggest better >> alternatives of explicit multiplexing. But I hope we can avoid a >> serious mistake and select implicit multiplexing. > > I'd like people to start talking about what the actual serious > mistakes of implicit multiplexing as specified in the SSRC proposal > are. Ok, Have I thrown the gauntlet down enough :-) Really, I'm just > not getting what the problems are - if I understood the problems, I > might have a different view point on this. > Please do read the latest version of https://datatracker.ietf.org/doc/draft-perkins-rtcweb-rtp-usage/?include_text=1 We have expanded on the discussion, both about the particular proposal and the general issues with multiplexing is RTP. If you can give some hint what in that argumentation you don't understand we can try to explain in some other way. 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] How to multiplex between peers Magnus Westerlund
- Re: [rtcweb] How to multiplex between peers Matthew Kaufman
- Re: [rtcweb] How to multiplex between peers Cullen Jennings
- Re: [rtcweb] How to multiplex between peers Emil Ivov
- Re: [rtcweb] How to multiplex between peers Magnus Westerlund
- Re: [rtcweb] How to multiplex between peers Cullen Jennings
- Re: [rtcweb] How to multiplex between peers Bernard Aboba
- Re: [rtcweb] How to multiplex between peers Justin Uberti
- Re: [rtcweb] How to multiplex between peers Matthew Kaufman
- Re: [rtcweb] How to multiplex between peers Justin Uberti
- Re: [rtcweb] How to multiplex between peers Bala Pitchandi
- Re: [rtcweb] How to multiplex between peers Justin Uberti
- Re: [rtcweb] How to multiplex between peers Aron Rosenberg
- Re: [rtcweb] How to multiplex between peers Colin Perkins
- Re: [rtcweb] How to multiplex between peers Colin Perkins
- Re: [rtcweb] How to multiplex between peers Matthew Kaufman
- Re: [rtcweb] How to multiplex between peers Colin Perkins
- Re: [rtcweb] How to multiplex between peers Matthew Kaufman
- Re: [rtcweb] How to multiplex between peers Matthew Kaufman
- Re: [rtcweb] How to multiplex between peers Jonathan Lennox
- Re: [rtcweb] How to multiplex between peers Henry Sinnreich
- Re: [rtcweb] How to multiplex between peers Dzonatas Sol
- Re: [rtcweb] How to multiplex between peers Igor Faynberg
- Re: [rtcweb] How to multiplex between peers Matthew Kaufman
- Re: [rtcweb] How to multiplex between peers Roni Even
- Re: [rtcweb] How to multiplex between peers Colin Perkins
- Re: [rtcweb] How to multiplex between peers Stephan Wenger
- Re: [rtcweb] How to multiplex between peers Colin Perkins
- Re: [rtcweb] How to multiplex between peers Harald Alvestrand
- Re: [rtcweb] How to multiplex between peers Stephan Wenger
- Re: [rtcweb] How to multiplex between peers DRAGE, Keith (Keith)
- Re: [rtcweb] How to multiplex between peers Harald Alvestrand
- Re: [rtcweb] How to multiplex between peers DRAGE, Keith (Keith)
- Re: [rtcweb] How to multiplex between peers Dzonatas Sol
- Re: [rtcweb] How to multiplex between peers Henry Sinnreich
- Re: [rtcweb] How to multiplex between peers Jonathan Lennox
- Re: [rtcweb] How to multiplex between peers Magnus Westerlund
- Re: [rtcweb] How to multiplex between peers Magnus Westerlund
- Re: [rtcweb] How to multiplex between peers Stephan Wenger
- Re: [rtcweb] How to multiplex between peers Magnus Westerlund
- Re: [rtcweb] How to multiplex between peers Stephan Wenger
- Re: [rtcweb] How to multiplex between peers Dzonatas Sol
- Re: [rtcweb] How to multiplex between peers Dzonatas Sol
- Re: [rtcweb] How to multiplex between peers Ted Hardie
- Re: [rtcweb] How to multiplex between peers Roman Shpount
- Re: [rtcweb] How to multiplex between peers Dzonatas Sol