Re: [rtcweb] #13: Transport of DATA_CHANNEL_OPEN

Martin Thomson <martin.thomson@gmail.com> Fri, 19 April 2013 18:11 UTC

Return-Path: <martin.thomson@gmail.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 D69F421F95FF for <rtcweb@ietfa.amsl.com>; Fri, 19 Apr 2013 11:11:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level:
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-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 JecGtPnE4FbX for <rtcweb@ietfa.amsl.com>; Fri, 19 Apr 2013 11:11:14 -0700 (PDT)
Received: from mail-wi0-x235.google.com (mail-wi0-x235.google.com [IPv6:2a00:1450:400c:c05::235]) by ietfa.amsl.com (Postfix) with ESMTP id 2027521F8F00 for <rtcweb@ietf.org>; Fri, 19 Apr 2013 11:11:13 -0700 (PDT)
Received: by mail-wi0-f181.google.com with SMTP id c10so1214035wiw.14 for <rtcweb@ietf.org>; Fri, 19 Apr 2013 11:11:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=BlpUTrgBIq8bWVK4H0Fzj0SvCszjTiAO3RX1enRpIAw=; b=ymgFLor5T+HPPgveLKY/Rna97KSeuQ+0qS9gW59VRPBtyj61P6DxFqJG6Lrt4KpTY1 QDiQlin5Y4twstYYcY7JlzHnIOst9qr801ZQS6+ML291fzREoLZK9gG6IPdMeAs4oGsL vQu7AYV0wLPN8TAYmPnvvEohogBJkvQa33j82GG/dTKpteB0BOKc449eKp//A0do+FSw WcptThbIK/xgEM9YSw6I+aVdmEowPhIj4ehRSibfPZS+85k6VHrIkXN3a5PnMNs3Uyng 63XtpblQcsVQVgc3LGdfLO3lQOo8QwUsWDOF3I97xcQ9eoJ53waHdW5GBEmUG1HdAIke GxDQ==
MIME-Version: 1.0
X-Received: by 10.180.94.133 with SMTP id dc5mr5682325wib.1.1366395069725; Fri, 19 Apr 2013 11:11:09 -0700 (PDT)
Received: by 10.194.33.102 with HTTP; Fri, 19 Apr 2013 11:11:04 -0700 (PDT)
In-Reply-To: <5171734E.3050300@jesup.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>
Date: Fri, 19 Apr 2013 11:11:04 -0700
Message-ID: <CABkgnnW0V7Sjx27Ff7CHANLqPifRLMDNatqD=VgPOB+d-iR+4A@mail.gmail.com>
From: Martin Thomson <martin.thomson@gmail.com>
To: Randell Jesup <randell-ietf@jesup.org>
Content-Type: text/plain; charset="UTF-8"
Cc: "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: Fri, 19 Apr 2013 18:11:14 -0000

On 19 April 2013 09:39, Randell Jesup <randell-ietf@jesup.org> wrote:
> the Open *will* eventually get through unless you have
> 100% (or virtually so) packet loss

I'm going to pretend you didn't say that.  If you want to talk odds,
that's fine, but I think that you'll find that this sort of error is
far more likely than you realize.  We're talking the probability of
incoming data exceeding a given threshold prior to an open being
delivered.  After all, unless you have 0% loss, the *possible* maximum
amount of data is infinite.  Though large numbers might be of
relatively low probability on an individual basis, operating at scale
you are going to encounter surprising spikes.

> I honestly feel it's ok to just buffer all incoming packets while waiting for the Open.

That's not a warm fuzzy that I share.

> No one is going to get a gigabyte of data in without an Open...  A
> non-browser could fake up a session and start sending data without ever
> sending an Open... but flushing the data doesn't actually help you against
> that sort of active DOS (they can just start again, they can spread it
> across thousands of channels, etc, etc), and there are FAR better DOS
> methods - all this would do is burn some CPU and some memory.

I think that would be a mistake.  This isn't about denial of service,
it's about genuine usage cases that encounter errors.  The receiver
can't use the receive window to apply back pressure if they are
reading from the stream to look for the open message, so you end up
with an unbounded amount of data.  The amount of data will scale with
bandwidth delay product.  A long, fat pipe might burn more CPU and
memory than you are willing to tolerate.

Then it comes down to what experience you want to provide to the
unfortunates who encounter this problem.