Re: [rtcweb] How to multiplex between peers

Jonathan Lennox <jonathan@vidyo.com> Thu, 21 July 2011 15:59 UTC

Return-Path: <jonathan@vidyo.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 2377521F88A5 for <rtcweb@ietfa.amsl.com>; Thu, 21 Jul 2011 08:59:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 mIOOKfuD3mbu for <rtcweb@ietfa.amsl.com>; Thu, 21 Jul 2011 08:59:35 -0700 (PDT)
Received: from mxout.myoutlookonline.com (mxout.myoutlookonline.com [64.95.72.241]) by ietfa.amsl.com (Postfix) with ESMTP id 695FF21F88A0 for <rtcweb@ietf.org>; Thu, 21 Jul 2011 08:59:35 -0700 (PDT)
Received: from mxout.myoutlookonline.com (localhost [127.0.0.1]) by mxout.myoutlookonline.com (Postfix) with ESMTP id 83ADA8BF083; Thu, 21 Jul 2011 11:59:34 -0400 (EDT)
X-Virus-Scanned: by SpamTitan at mail.lan
Received: from HUB022.mail.lan (unknown [10.110.2.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mxout.myoutlookonline.com (Postfix) with ESMTPS id C9AEE8BF07D; Thu, 21 Jul 2011 11:59:30 -0400 (EDT)
Received: from BE235.mail.lan ([10.110.32.235]) by HUB022.mail.lan ([10.110.17.22]) with mapi; Thu, 21 Jul 2011 11:59:30 -0400
From: Jonathan Lennox <jonathan@vidyo.com>
To: Colin Perkins <csp@csperkins.org>
Date: Thu, 21 Jul 2011 11:59:29 -0400
Thread-Topic: [rtcweb] How to multiplex between peers
Thread-Index: AcxHvyyYPaXxM6UoQcu5AVt+CTFOqQ==
Message-ID: <0AB1DB80-7C10-4C84-ABCC-358A3E49640F@vidyo.com>
References: <4E259EAD.3060505@ericsson.com> <FAE78F7C-8C51-41C4-B3D7-6497396E12A5@cisco.com> <4E26C5CF.1080007@ericsson.com> <BLU152-W54BE1A03753680FF0094C4934C0@phx.gbl> <CAOJ7v-2kwiCipJSHmNT9GuGJJzEjPV-X00TLnf-LwbsJ1ADwDw@mail.gmail.com> <896BDC4C-849C-4553-89C8-7EFEF9FFEC6B@skype.net> <38DF8F00ABAB77498A75469448CB081B3AE69BEBC4@BE235.mail.lan> <DB9A2414-CE23-4F6E-811D-DEEBAF6E0280@csperkins.org> <42CD13B5-C0DB-457B-9131-6081DD795832@vidyo.com> <CD06E3C9-8AE3-406C-BE7B-587FE331263A@csperkins.org>
In-Reply-To: <CD06E3C9-8AE3-406C-BE7B-587FE331263A@csperkins.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
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: Thu, 21 Jul 2011 15:59:36 -0000

On Jul 21, 2011, at 2:51 AM, Colin Perkins wrote:

> On 21 Jul 2011, at 00:24, Jonathan Lennox wrote:
> ...
>> I've read draft-perkins-rtcweb-rtp-usage-02, and I still don't understand what you're claiming SSRC-muxing would break.
>> 
>> Running audio and video (and FEC, and RTX, and simulcast video, and Real-Time Text, and etc. etc.) in a single RTP session does, not, as far as I've been able to tell (after a lot of thought), break anything in RTP.
>> 
>> To be sure, it's not backward compatible with RTP endpoints that assume a single source per session.  It would also be hard to retrofit SDP to describe and negotiate it.  And for some use cases it requires some source-level signaling, as in RFC 5576.  But the RTP model, per se, is perfectly amenable to it, as far as I can tell.
> 
> 
> Section 2.2.1 of draft-perkins-rtcweb-rtp-usage-02 lists several problems that occur when multiplexing RTP sessions onto a single lower-level flow. 
> 
> There are clearly some limitations caused: separate endpoints, quality of service, limitations with mixers and translators, retransmission, FEC, sampling group membership, and so on. There is also some breakage when several sessions are multiplexed: RTCP is problematic with several clock rates per session, SSRC allocation is broken, and the RTCP reporting interval and timing rules are broken.
> 
> You may not think some of these are important. Some can be avoided by the use of appropriate signalling. Some can be mitigated by allowing multiple different media types in an RTP session, or by splitting the SSRC space. I'm not arguing that there aren't ways to fix this problem, or ignore it in some cases, but they cause various degrees of change to RTP, and need to be carefully evaluated by AVTCORE if they're to be done. 

I absolutely agree that multiplexing several RTP sessions into a single lower-level flow could break things, but that's not what I'm advocating.  Instead, I'm only advocating relaxing the rule that every source in a *single* RTP session -- a session which follows all the RFC 3550 rules -- must have the same top-level media type.

Since RTP was defined to allow up to 2^32-1 distinct sources in a session, all the rules of RFC 3550 seem to follow naturally, as do other RTP-family specs except those whose designers forgot to take RTP's group-communication nature into account.

It may be useful to relax *more* rules, for the topological cases that Stephan mentioned (endpoint-endpoint or RTCP-terminating-MCU) -- particularly since a lot of RTP's (or specifically, RTCP's) existing timing rules don't make a lot of sense in scenarios where you have widely asymmetric bandwidths.  This might need to formally be a new RTP profile, though I'd rather avoid that if possible.  But the starting point should be, I think, assuming a single RTP session with arbitrarily many distinct sources, and see if the RFC 3550 rules lead us somewhere bad *in that scenario*.

--
Jonathan Lennox
jonathan@vidyo.com