Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN
Randell Jesup <randell-ietf@jesup.org> Sat, 20 April 2013 03:21 UTC
Return-Path: <randell-ietf@jesup.org>
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 08C5A21F91CF for <rtcweb@ietfa.amsl.com>; Fri, 19 Apr 2013 20:21:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.299
X-Spam-Level:
X-Spam-Status: No, score=-1.299 tagged_above=-999 required=5 tests=[AWL=1.299, BAYES_00=-2.599, HTML_MESSAGE=0.001]
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 TcAYVl0PjOu7 for <rtcweb@ietfa.amsl.com>; Fri, 19 Apr 2013 20:21:05 -0700 (PDT)
Received: from r2-chicago.webserversystems.com (r2-chicago.webserversystems.com [173.236.101.58]) by ietfa.amsl.com (Postfix) with ESMTP id 18F6D21F91C4 for <rtcweb@ietf.org>; Fri, 19 Apr 2013 20:21:04 -0700 (PDT)
Received: from pool-98-111-140-34.phlapa.fios.verizon.net ([98.111.140.34]:3344 helo=[192.168.1.12]) by r2-chicago.webserversystems.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.80) (envelope-from <randell-ietf@jesup.org>) id 1UTOMJ-0004pP-Qv; Fri, 19 Apr 2013 22:21:04 -0500
Message-ID: <5172091A.5040205@jesup.org>
Date: Fri, 19 Apr 2013 23:18:50 -0400
From: Randell Jesup <randell-ietf@jesup.org>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130328 Thunderbird/17.0.5
MIME-Version: 1.0
To: Bernard Aboba <bernard_aboba@hotmail.com>
References: <066.3120a55540cacaa74ee5fda0b5273a48@trac.tools.ietf.org>, <516CE3EC.2050804@jesup.org>, <CABkgnnVaTOLa-hs7AtEgaTk7eq00bEkCY+_8L96Y8pooqybBxA@mail.gmail.com>, <CAJrXDUFgxLT3-1HehKbg5byzifFi4Obe3XW9G4sbWRbnU+Hi1A@mail.gmail.com>, <CABkgnnXr85LZyJiSF+ok2KMS_xQnS0CE4VBq4PvEhBBscn2QZQ@mail.gmail.com>, <516F1AF9.2080301@alvestrand.no>, <CABkgnnVtUjk4jSDVioxQnrt-b69Hx0nZLefs7tpEzETSmLXeNA@mail.gmail.com>, <516F9A5A.6080402@alvestrand.no>, <CABkgnnWrAMnm5fTWCNA1jqC_8Js0a6ewfSkvni4xg0E6rXdCtA@mail.gmail.com>, <5170247F.4090908@alvestrand.no>, <CABkgnnXU4HeJT-QwDcJ5NTvr72gZXxXi5zHFkQjJS__UXqzvtQ@mail.gmail.com>, <206CB075-6754-4578-B623-866E410DACCC@lurchi.franken.de>, <CABkgnnUCXUH+0a+F1LVQVrtL=Q65HGgsdT-oBBF++zSVR4OhWw@mail.gmail.com>, <5171734E.3050300@jesup.org>, <CABkgnnW0V7Sjx27Ff7CHANLqPifRLMDNatqD=VgPOB+d-iR+4A@mail.gmail.com>, <CAJrXDUGQyuKA_DxSOPfsWqCnkSRd=_Qzkir+r0-27oprCz6=sw@mail.gmail.com> <BLU169-W71259E99EC38724B1682D293C90@phx.gbl>
In-Reply-To: <BLU169-W71259E99EC38724B1682D293C90@phx.gbl>
Content-Type: multipart/alternative; boundary="------------080301010004000403090209"
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - r2-chicago.webserversystems.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - jesup.org
Cc: Randell Jesup <randell-ietf@jesup.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN
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: Sat, 20 Apr 2013 03:21:06 -0000
On 4/19/2013 8:32 PM, Bernard Aboba wrote: > Peter Thatcher said: > > I like all the discussion, but I feel like we need to get back to the > question and what options we have. The question: "what does the > browser do with unexpected data (before an open of an unregistered sid)?" > > 1. Buffer forever without limits: Randell thinks it's OK to buffer > forever without limits. Martin disagrees. I disagree (I agree with > Martin). > > [BA] This seems like a bad idea. If the receiver is expecting an OPEN > then it shouldn't allow an unlimited amount of (ordered!) data to be > received before getting one. This case only applies in an un-ordered channel I believe, if we send the Open as reliable-in-order. Ordered data must be delivered in-order (!), so the Open must be delivered before any following ordered data. (This is why I said the Open *should* be sent in-order; it removes the need to buffer in an ordered channel.) > If the receiver buffers a large amount of data and passes it to the > JS even if the application indicated that an OPEN was required, this > might encourage implementations to bypass the OPEN, since receivers > are so tolerant about not getting it even if the application has > indicated it is required. Well, if we do decide to timeout or size-out buffering of unordered early data, I wouldn't do so quickly. My example for this would be a data-only application opening an channel just as it's fading out of WiFi/cell coverage, and hasn't picked up the new one yet (going through a tunnel, dead spot in the building, walk down to the basement, etc). I would far rather the transaction 'freeze' and resume when a new connection is picked up (and ICE restart brings the connections alive again), than to have an arbitrary timer cause my app/game/etc to fail in a very very hard-to-test way. In practical terms, it would be Very hard for significant data to end up buffered. The application can deal with timeouts of the entire connection; I don't want to drop the data if the app has decided to stay in suspension waiting for a connection to resume. After all, what is gained by dropping the data? Don't say "knowledge that the channel failed to open" or "the connection is borked" - this isn't a good way to find out about total connection loss, and given we don't have timeouts on opens, I see no reason to insert them in an edge case for open for no useful reason. If you want opens to timeout, that should be part of how Open works (partial-reliable with a max time), not indirectly-in-some-edge-cases like this. > 2. Buffer with limits, and then: > a. Hand an error to JS saying "got some data for a data channel, > but an OPEN never came" WITHOUT providing the data to JS: Harald likes > this. I'm OK with this. > > [BA] One desirable aspect of this is that it (combined with a stream > reset) limits the potential for attacks or implementation problems to > affect applications. Painful for implementers to test, and virtually impossible for application authors to test, even if they realize it's a possibility. > b. Hand an error to JS saying "got some data for a data channel, > but an OPEN never came" WITH providing the data: I like this better, > since I don't see a reason not to give JS the data. > > [BA] For the reasons described above, I think we could end up > regretting this option. I agree, though for different reasons than Bernard. -- Randell Jesup randell-ietf@jesup.org
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- [rtcweb] #13: Transport of DATA_CHANNEL_OPEN rtcweb issue tracker
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Peter Thatcher
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Harald Alvestrand
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Jim Barnett
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Harald Alvestrand
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Harald Alvestrand
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Peter Thatcher
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Harald Alvestrand
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Matthew Kaufman
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Matthew Kaufman
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Peter Thatcher
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Michael Tuexen
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Peter Thatcher
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Matthew Kaufman (SKYPE)
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Cullen Jennings (fluffy)
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Harald Alvestrand
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Matthew Kaufman
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Matthew Kaufman
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Cullen Jennings
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Ejzak, Richard P (Richard)
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Bernard Aboba
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Martin Thomson
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Randell Jesup
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Ejzak, Richard P (Richard)
- Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN Stefan Hakansson LK