Re: [tsvwg] The List (of application-layer desired features)

Mike Belshe <mike@belshe.com> Tue, 27 August 2013 22:13 UTC

Return-Path: <ietf-http-wg-request@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E860F21E80E5 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 27 Aug 2013 15:13:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.502
X-Spam-Level:
X-Spam-Status: No, score=-7.502 tagged_above=-999 required=5 tests=[AWL=0.019, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, FRT_ADOBE2=2.455, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-8]
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 3mcT4UYpLPMt for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Tue, 27 Aug 2013 15:13:48 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id E3A3521E80A3 for <httpbisa-archive-bis2Juki@lists.ietf.org>; Tue, 27 Aug 2013 15:13:47 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1VERVY-0001n7-Rq for ietf-http-wg-dist@listhub.w3.org; Tue, 27 Aug 2013 22:13:04 +0000
Resent-Date: Tue, 27 Aug 2013 22:13:04 +0000
Resent-Message-Id: <E1VERVY-0001n7-Rq@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <mike@belshe.com>) id 1VERVN-0001lv-AE for ietf-http-wg@listhub.w3.org; Tue, 27 Aug 2013 22:12:53 +0000
Received: from mail-bk0-f42.google.com ([209.85.214.42]) by lisa.w3.org with esmtps (TLS1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.72) (envelope-from <mike@belshe.com>) id 1VERVL-0004ZR-MI for ietf-http-wg@w3.org; Tue, 27 Aug 2013 22:12:53 +0000
Received: by mail-bk0-f42.google.com with SMTP id my10so1852858bkb.15 for <ietf-http-wg@w3.org>; Tue, 27 Aug 2013 15:12:25 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=HnnfmfAk6e25pyEmrR+kSvrvY+6Wwdo1P1nHgeUNkM8=; b=UVqJY3gy7AumUdpUOTIV+dsLssyQSyHX0fmY7POPzwMT1HqwaaLlPdf3aALVVjjBwn ofZEo4uORts6S44O/zR35g320mNS0K1odu2QmhU621cU1OlGayN5soPHcHHuKx21cCeU ZMpzUnim0Qw7sBD1JvF6lOOCYLuDoRr8FfI8aoM03umAJ7/wotY5jtPPjYc67fJuEcxV cbbRVEgv6M63wbpolN75gPEPZtNHHpqJ7lJdWmsCBCGN/BwLVVS98XkLrjL1E2Usd4SM QGDCVQ1CqRAkrtPHlsnT1g2WeO8msRoIMXB+63sik3UYNt2UADleN/jtxNe56ra6zEx7 C8yA==
X-Gm-Message-State: ALoCoQmHJKVo/JNgFTVtkZTTecLgDaMzOZI3RBd25ISThUP5rChTFj6fAokfFduzyJC8+H0RbQuy
MIME-Version: 1.0
X-Received: by 10.205.7.6 with SMTP id om6mr16447187bkb.18.1377641545194; Tue, 27 Aug 2013 15:12:25 -0700 (PDT)
Received: by 10.204.168.130 with HTTP; Tue, 27 Aug 2013 15:12:25 -0700 (PDT)
In-Reply-To: <D9D602D39A98E34D9C43E965BEC7439826988809@nambx08.corp.adobe.com>
References: <CAP+FsNeMqB0+igBZjjsT-Xb+17YdUyptBJ2N0x9_jaaLYzKisQ@mail.gmail.com> <CAP+FsNcvR5q3N2iLv6wM6LQXS72sg1pdvTWdU9rsSFAP8OHpwA@mail.gmail.com> <4613980CFC78314ABFD7F85CC302772111B7D710@IL-EX10.ad.checkpoint.com> <CABaLYCuom7VH+9VJrbe7-D+S7YfGtbS59ne5fG03Zrm=U5tc0Q@mail.gmail.com> <D9D602D39A98E34D9C43E965BEC7439826988809@nambx08.corp.adobe.com>
Date: Tue, 27 Aug 2013 15:12:25 -0700
Message-ID: <CABaLYCtoVJ9swP12r5foz2d6Gr1PtjuiXdBkXEeEoan+dF+XeQ@mail.gmail.com>
From: Mike Belshe <mike@belshe.com>
To: Michael Thornburgh <mthornbu@adobe.com>
Cc: Yoav Nir <ynir@checkpoint.com>, HTTP Working Group <ietf-http-wg@w3.org>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Content-Type: multipart/alternative; boundary="20cf30223901ee1ac704e4f52a14"
Received-SPF: none client-ip=209.85.214.42; envelope-from=mike@belshe.com; helo=mail-bk0-f42.google.com
X-W3C-Hub-Spam-Status: No, score=-3.3
X-W3C-Hub-Spam-Report: AWL=-3.601, FRT_ADOBE2=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7
X-W3C-Scan-Sig: lisa.w3.org 1VERVL-0004ZR-MI 56192478a0206de1372703ac72cbbc80
X-Original-To: ietf-http-wg@w3.org
Subject: Re: [tsvwg] The List (of application-layer desired features)
Archived-At: <http://www.w3.org/mid/CABaLYCtoVJ9swP12r5foz2d6Gr1PtjuiXdBkXEeEoan+dF+XeQ@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/19412
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <http://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

On Tue, Aug 27, 2013 at 2:46 PM, Michael Thornburgh <mthornbu@adobe.com>wrote:

> if you’re bringing up something like QUIC, i’ll point out that RTMFP
> addresses almost every point on The List, and is currently widely deployed
> in the Internet (in Flash Player) with 5+ years of deployment experience.
> RTMFP is a general-purpose transport protocol that runs on top of UDP and
> provides prioritization, parallel message channels (“flows”), partial
> reliability, shared congestion control, a generalized security framework,
> independent flow control for every flow/channel, no flow-flow HOL blocking,
> IP address mobility, and more.  RTMFP sessions start in 2 RTT, and
> arbitrary numbers of unidirectional flows in that session can be started in
> 0 RTT.  flows are named with arbitrary/opaque-to-RTMFP metadata instead of
> port or stream numbers.  “return flow association” generalizes
> bidirectional communication to arbitrarily complex trees of flows, which
> can more naturally model structured data transport (such as
> request/multiple-response).****
>
> ** **
>
> RTMFP is described here:****
>
> ** **
>
>   http://tools.ietf.org/html/draft-thornburgh-adobe-rtmfp****
>
> ** **
>
> and is currently in the RFC Editor’s queue for publication as an
> Informational RFC.
>

Sounds cool.  Why don't you benchmark it in a browser?  If it does all this
stuff, it should be faster today.



> ****
>
> ** **
>
> note that while SCTP might not technically have HOL blocking
> stream-stream, the structure of its acknowledgements and the Transmission
> Sequence Number semantics can cause a priority inversion during periods of
> congestion.  SCTP does not have independent flow control for each stream.*
> ***
>
> ** **
>
> some thoughts on “fast channel startup with no state at the server”:****
>
> ** **
>
>   1) you will typically want some kind of handshake with the server to
> establish that the client is actually at the address it appears to be
> coming from, to avoid TCP’s “SYN flood” problem.  that means at least one
> RTT when you have no current state at the server for a client.
>

When at Google, we devised several systems to counteract this.  The winning
candidate (never implemented) was a hybrid solution:  you let the first one
in for free (no RTT), and require RTTs for the secondary parallel requests
until confidence is established.  This gives you most of the perf benefit.



> ****
>
> ** **
>
>   2) when designing RTMFP, we rejected a “connection reset” message that
> could be sent by a server to a client that thought it had a connection when
> no connection existed in the server (for example, if the server rebooted or
> timed out the connection but the client didn’t know), as that would be an
> abusable denial-of-service vector.
>

Not if it ran atop a secured, encrypted channel :-)




> ****
>
> ** **
>
>   3) if you’re willing to maintain some state at a server, you can leave
> an RTMFP session open for a long time, and use the “address mobility”
> capability to handle the case when a client changes addresses (for example,
> on getting a new translation in a NAT after a quiet period).  the method
> described in Section 3.5.4.2 of the RTMFP spec currently has a 1 RTT cost
> to verify the address change.  that method could be modified to allow a
> provisional change of address immediately, with a switch back to the old
> address if the verification fails.
>

Maybe, but generally, I think that doesn't scales enough or as well as it
could....  I was thinking client state, but happy to be proven wrong.


> ****
>
> ** **
>
>   4) if you’ve been idle for long enough to time out a session (minutes?),
> then establishing a new session (even at a cost of a couple RTTs) shouldn’t
> perceptually be a big deal.
>

I disagree :-) RTTs are still 100+ms.  Thats money.

Mike





> ****
>
> ** **
>
> -michael thornburgh****
>
> ** **
>
> ** **
>
> *From:* tsvwg-bounces@ietf.org [mailto:tsvwg-bounces@ietf.org] *On Behalf
> Of *Mike Belshe
> *Sent:* Tuesday, August 06, 2013 2:31 AM
> *To:* Yoav Nir
> *Cc:* HTTP Working Group; tsvwg@ietf.org
> *Subject:* Re: [tsvwg] The List (of application-layer desired features)***
> *
>
> ** **
>
> ** **
>
> ** **
>
> On Tue, Aug 6, 2013 at 10:49 AM, Yoav Nir <ynir@checkpoint.com> wrote:****
>
> I think most of that is addressed in SCTP.  Except the deployment part.
> Standards people can’t force vendors of operating systems or Linux
> distributions to include any feature. So we have a lot of “version 2”s in
> the IETF that take a very long time to get deployed. ****
>
>  ****
>
> It’s also much more attractive to define a new thing (like SCTP) than to
> make something old work a little better. SCTP was sexier than TCPM.****
>
>  ****
>
> So it took ages to get deployment of IPv6, IKEv2, TLS 1.2, and all three
> are still used far less than IPv4, IKEv1 and TLS 1.0. SCTP is used almost
> never. HTTP/2 will likely fare better because the vendors are more involved
> and committed, but it’s hard to make predictions, especially about the
> future.****
>
> ** **
>
> You're right, SCTP is non-deployable, which makes it a non-starter.  SCTP
> also does not address handshake issues or TLS issues.****
>
> ** **
>
> I don't mean to sound inflammatory - but for all intents and purposes, the
> next generation transport will need to be in user space and run on top of
> UDP.  There simply is no other deployable option on the table.  QUIC is
> already reasonably far at exploring these issues:
> http://en.wikipedia.org/wiki/QUIC****
>
> ** **
>
> Mike****
>
> ** **
>
> ** **
>
> ** **
>
> ** **
>
>  ****
>
>  ****
>
> Yoav****
>
>  ****
>
> *From:* Roberto Peon [mailto:grmocg@gmail.com]
> *Sent:* Tuesday, August 06, 2013 11:16 AM****
>
>
> *To:* HTTP Working Group; tsvwg@ietf.org
> *Subject:* Re: The List (of application-layer desired features)****
>
>  ****
>
> Actually sending to the right list for TSVWG...****
>
>  ****
>
> -=R****
>
>  ****
>
> On Tue, Aug 6, 2013 at 1:14 AM, Roberto Peon <grmocg@gmail.com> wrote:****
>
> For those of you who missed it, at the HTTPBis/TSVG joint session, a
> question about what applications want from the transport (I really want to
> put quotes around that) came up.****
>
>  ****
>
> Here is a rendition of what was on the note that I jotted down in response
> to this question, and which I passed to people at the mic.****
>
>  ****
>
> (Apps-folks want the following) Deployed in 1996:****
>
> -----------------------------------------****
>
> - Prioritization****
>
> - Partial Reliability****
>
> - "Shared" congestion between multiple streams****
>
> - Security****
>
> - No HOL blocking on stream X when loss on stream Y****
>
> - Cheap/Fast  channel/connection setup****
>
> - Wide, "safe" deployment****
>
> - Competes with TCP/HTTP/1.1 (performance-wise)****
>
> - Multipath/roaming robustness, i.e. the "driveway" problem****
>
>  ****
>
>  ****
>
> I'll reiterate that by far the most important feature is "is deployed".***
> *
>
> Nothing else matters until that is true, at least at the application-layer.
> ****
>
> -=R****
>
>  ****
>
>  ****
>
>  ****
>
>
>
> Email secured by Check Point ****
>
> ** **
>