Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN
Harald Alvestrand <harald@alvestrand.no> Sun, 21 April 2013 00:35 UTC
Return-Path: <harald@alvestrand.no>
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 655C821F8952 for <rtcweb@ietfa.amsl.com>; Sat, 20 Apr 2013 17:35:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -108.668
X-Spam-Level:
X-Spam-Status: No, score=-108.668 tagged_above=-999 required=5 tests=[AWL=0.021, BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_ILLEGAL_IP=1.908, RCVD_IN_DNSWL_HI=-8, 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 NIZIyLCYLX7V for <rtcweb@ietfa.amsl.com>; Sat, 20 Apr 2013 17:35:01 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id D787221F8709 for <rtcweb@ietf.org>; Sat, 20 Apr 2013 17:35:00 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 0CE9539E091 for <rtcweb@ietf.org>; Sun, 21 Apr 2013 02:35:00 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 9BJzo0ux17WY for <rtcweb@ietf.org>; Sun, 21 Apr 2013 02:34:58 +0200 (CEST)
Received: from [192.168.0.48] (unknown [1.209.1.135]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id 9029039E0FE for <rtcweb@ietf.org>; Sun, 21 Apr 2013 02:34:57 +0200 (CEST)
Message-ID: <5173341D.4020606@alvestrand.no>
Date: Sun, 21 Apr 2013 02:34:37 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5
MIME-Version: 1.0
To: rtcweb@ietf.org
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> <5172091A.5040205@jesup .org>
In-Reply-To: <5172091A.5040205@jesup.org>
Content-Type: multipart/alternative; boundary="------------080208000109010006080409"
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: Sun, 21 Apr 2013 00:35:02 -0000
On 04/20/2013 05:18 AM, Randell Jesup wrote: > 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. File transfer protocol: OPEN, send data unordered with in-band file block positions, close. If the OPEN packet gets lost, data will accumulate mighty fast. > 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. Partial-reliable with max time for Open might be a very good idea. > >> 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. Hmm. I wonder if this is really very easy to test: Tell the sending app you're not going to use OPEN, and tell the receiving app you're going to use OPEN. Send data. > >> 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 > > > _______________________________________________ > rtcweb mailing list > rtcweb@ietf.org > https://www.ietf.org/mailman/listinfo/rtcweb
- 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