[rtcweb] On babies and bathwater (was Re: Summary of Application Developers' opinions of the current WebRTC API and SDP as a control surface)

Adam Roach <adam@nostrum.com> Fri, 19 July 2013 16:37 UTC

Return-Path: <adam@nostrum.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 86FA321E80DE for <rtcweb@ietfa.amsl.com>; Fri, 19 Jul 2013 09:37:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.378
X-Spam-Status: No, score=-102.378 tagged_above=-999 required=5 tests=[AWL=-0.078, BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, SPF_PASS=-0.001, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id hjqLyQ3V-6Ux for <rtcweb@ietfa.amsl.com>; Fri, 19 Jul 2013 09:37:57 -0700 (PDT)
Received: from shaman.nostrum.com (nostrum-pt.tunnel.tserv2.fmt.ipv6.he.net [IPv6:2001:470:1f03:267::2]) by ietfa.amsl.com (Postfix) with ESMTP id E379621E80DD for <rtcweb@ietf.org>; Fri, 19 Jul 2013 09:37:56 -0700 (PDT)
Received: from Orochi.local (99-152-145-110.lightspeed.dllstx.sbcglobal.net []) (authenticated bits=0) by shaman.nostrum.com (8.14.3/8.14.3) with ESMTP id r6JGbrrD069222 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Fri, 19 Jul 2013 11:37:53 -0500 (CDT) (envelope-from adam@nostrum.com)
Message-ID: <51E96B5B.2050302@nostrum.com>
Date: Fri, 19 Jul 2013 11:37:47 -0500
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130620 Thunderbird/17.0.7
MIME-Version: 1.0
To: Iñaki Baz Castillo <ibc@aliax.net>
References: <CAJrXDUGMohpBdi-ft-o_uE7ewFkw7wRY9x7gYEncjov7qi-Bew@mail.gmail.com> <CABcZeBPa4wBS8pYq=0wesMOfL6TkeC7QGAZ8pWwOcnkhkJqWfA@mail.gmail.com> <CAJrXDUFxo8P8wxh8jX3019yPQOuwQ0eVdsFmRXsbWdWinnc5oA@mail.gmail.com> <CABcZeBOTKpmFC34waqZ4kA-P8t+E6yY9gX1JFCHhsBH0+CF-Qw@mail.gmail.com> <1447FA0C20ED5147A1AA0EF02890A64B1C30BC0F@ESESSMB209.ericsson.se> <CAD5OKxtKLMf_d=8GSMrqfNhDHPe9MFP2ZTKzZHFn9CyMr-gSVQ@mail.gmail.com> <1447FA0C20ED5147A1AA0EF02890A64B1C30C833@ESESSMB209.ericsson.se> <CAD5OKxvGfkgRp6tXwbOu_kVteHiBBqsyR5ixH18FMKjCNGO8VQ@mail.gmail.com> <1447FA0C20ED5147A1AA0EF02890A64B1C30CD1E@ESESSMB209.ericsson.se> <BLU401-EAS386F88B3FE140492B39B59693610@phx.gbl> <AE1A6B5FD507DC4FB3C5166F3A05A484213E41E7@TK5EX14MBXC265.redmond.corp.microsoft.com> <C50FDAD5-492C-4A83-AD6D-464242FB4A05@iii.ca> <CALiegfneUj=kzDjR_E1=S-bqAajaPUE3f_A2g8oGriFyPhamPA@mail.gmail.com>
In-Reply-To: <CALiegfneUj=kzDjR_E1=S-bqAajaPUE3f_A2g8oGriFyPhamPA@mail.gmail.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Received-SPF: pass (shaman.nostrum.com: is authenticated by a trusted mechanism)
Cc: "<rtcweb@ietf.org>" <rtcweb@ietf.org>, "public-webrtc@w3.org" <public-webrtc@w3.org>
Subject: [rtcweb] On babies and bathwater (was Re: Summary of Application Developers' opinions of the current WebRTC API and SDP as a control surface)
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: Fri, 19 Jul 2013 16:37:57 -0000

On 7/19/13 10:03, Iñaki Baz Castillo wrote:
> All these "smaller details" are in fact issues and problems we don't
> need. Issues not needed at all in WebRTC, issues that WebRTC
> developers and vendors should NOT care about. If those "smaller
> details" do exist is due the mandate of SDP. And all the time the WG
> (or WGs) will spent "fixing/defining" them is just wasted time, since
> nothing useful is being done for WebRTC by "defining" those "minor
> details".

I think this is a hopelessly naïve interpretation of the facts on the 
ground. Simply discarding SDP doesn't magically make the underlying 
issues go away. We would still need to settle a vast number of issues 
around things like simulcast, FEC, codec parameters, indication of 
supported codecs, correlation of RTP streams with MediaStreamTracks, 
attempts by both parties to operate on the same stream simultaneously 
[1], etc. Basically, with very rare exception, the same set of problems 
that we need to solve if we *don't* throw SDP out the window.

I understand the temptation to think that starting over makes all the 
problems go away. There's a mental trap in thinking that all you really 
need is to announce ports and codecs and get on with it. But then this 
person over here really needs simulcast. And that person over there 
insists that RTCP NACK feedback is critical for his application. And 
then I need to be able to tell you that your 1280x720 video stream is 
going to overwhelm my limited ability to decode and that you really need 
to turn it down to QCIF. And, before you know it, you've reinvented 
something approximately as complex as SDP that everyone is just going to 
shove into a JSON blob and send across the wire. As an added bonus, by 
deciding that legacy interop is of no value, you've limited the utility 
of the overall system by setting Metcalfe's law on fire and throwing it 
over the railing of the third-floor balcony.

Your pain point isn't SDP syntax. Yeah, it's ugly, but it's not hard. 
Your pain point isn't offer/answer. Two unilaterally declared sessions 
that are simply blasted out onto the wire only satisfies the simplest of 
use cases; you need a negotiation, and any attempt to define how that 
negotiation looks is going to arrive at something with enough rules that 
it is substantially as complicated as offer/answer.

No, your pain point here is that non-master-slave networked 
communications are not easy to get right, and it is the height of hubris 
to think that you inherently know better than everyone else who has 
worked in this space before you. Consider that TCP has far fewer moving 
parts than even a simple one-stream-audio-only call setup and took 85 
pages to specify.

I understand comment 22 at its core [2], but it has a corollary: any 
system that replaces SDP O/A will end up being similar in complexity 
once all interested parties' use cases have been factored in.


[1] What we call "glare" in telecom and SIP, but a phenomenon that 
arises whenever you have connections made between peers without a 
master/slave arrangement; see RFC 793, page 32, for example.

[2] For the uninitiated, "comment 22" was a shorthand developed at last 
year's TPAC for the sentiment "SDP offer/answer is hard".