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

Michael Thornburgh <mthornbu@adobe.com> Wed, 28 August 2013 17:26 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 74A1C21F98AD for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 28 Aug 2013 10:26:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.628
X-Spam-Level:
X-Spam-Status: No, score=-7.628 tagged_above=-999 required=5 tests=[AWL=0.515, BAYES_00=-2.599, 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 rbyzbr11ap+r for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Wed, 28 Aug 2013 10:26:04 -0700 (PDT)
Received: from frink.w3.org (frink.w3.org [128.30.52.56]) by ietfa.amsl.com (Postfix) with ESMTP id 05FDE21F9EFB for <httpbisa-archive-bis2Juki@lists.ietf.org>; Wed, 28 Aug 2013 10:26:02 -0700 (PDT)
Received: from lists by frink.w3.org with local (Exim 4.72) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1VEjTo-0005H4-8Y for ietf-http-wg-dist@listhub.w3.org; Wed, 28 Aug 2013 17:24:28 +0000
Resent-Date: Wed, 28 Aug 2013 17:24:28 +0000
Resent-Message-Id: <E1VEjTo-0005H4-8Y@frink.w3.org>
Received: from lisa.w3.org ([128.30.52.41]) by frink.w3.org with esmtp (Exim 4.72) (envelope-from <mthornbu@adobe.com>) id 1VEjTZ-0005G5-I3 for ietf-http-wg@listhub.w3.org; Wed, 28 Aug 2013 17:24:13 +0000
Received: from exprod6og104.obsmtp.com ([64.18.1.187]) by lisa.w3.org with smtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from <mthornbu@adobe.com>) id 1VEjTW-0006nK-63 for ietf-http-wg@w3.org; Wed, 28 Aug 2013 17:24:13 +0000
Received: from outbound-smtp-1.corp.adobe.com ([192.150.11.134]) by exprod6ob104.postini.com ([64.18.5.12]) with SMTP ID DSNKUh4yGx7dQwHHaSGNaWlJqmbMH31q+MP1@postini.com; Wed, 28 Aug 2013 10:24:10 PDT
Received: from inner-relay-2.corp.adobe.com ([153.32.1.52]) by outbound-smtp-1.corp.adobe.com (8.12.10/8.12.10) with ESMTP id r7SHK6iH004674; Wed, 28 Aug 2013 10:20:06 -0700 (PDT)
Received: from nacas02.corp.adobe.com (nacas02.corp.adobe.com [10.8.189.100]) by inner-relay-2.corp.adobe.com (8.12.10/8.12.10) with ESMTP id r7SHLawI004620; Wed, 28 Aug 2013 10:23:37 -0700 (PDT)
Received: from nambx08.corp.adobe.com ([10.8.189.94]) by nacas02.corp.adobe.com ([10.8.189.100]) with mapi; Wed, 28 Aug 2013 10:23:33 -0700
From: Michael Thornburgh <mthornbu@adobe.com>
To: Roberto Peon <grmocg@gmail.com>, Mike Belshe <mike@belshe.com>
CC: Yoav Nir <ynir@checkpoint.com>, HTTP Working Group <ietf-http-wg@w3.org>, "tsvwg@ietf.org" <tsvwg@ietf.org>
Date: Wed, 28 Aug 2013 10:23:31 -0700
Thread-Topic: [tsvwg] The List (of application-layer desired features)
Thread-Index: Ac6jdEuY3eFi1ZlLTDqC7+xi2wf5LwAnkW6Q
Message-ID: <D9D602D39A98E34D9C43E965BEC743982698893E@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> <CABaLYCtoVJ9swP12r5foz2d6Gr1PtjuiXdBkXEeEoan+dF+XeQ@mail.gmail.com> <CAP+FsNf8aRBeziGTU05=vuatj1a3mXOKR1taWGqY2DN4V940EQ@mail.gmail.com>
In-Reply-To: <CAP+FsNf8aRBeziGTU05=vuatj1a3mXOKR1taWGqY2DN4V940EQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: multipart/alternative; boundary="_000_D9D602D39A98E34D9C43E965BEC743982698893Enambx08corpadob_"
MIME-Version: 1.0
Received-SPF: pass client-ip=64.18.1.187; envelope-from=mthornbu@adobe.com; helo=exprod6og104.obsmtp.com
X-W3C-Hub-Spam-Status: No, score=-3.4
X-W3C-Hub-Spam-Report: AWL=-2.050, FRT_ADOBE2=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001
X-W3C-Scan-Sig: lisa.w3.org 1VEjTW-0006nK-63 7ebb5b5261a8fbb65e7065c88db7d47d
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/D9D602D39A98E34D9C43E965BEC743982698893E@nambx08.corp.adobe.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/19430
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>

in case there's confusion, RTMFP is free to use:

  https://datatracker.ietf.org/ipr/1942/ (section VI)

(disclaimer: i'm not a lawyer! but that's our intention)

i agree that 0 additional RTTs when safe is highly valuable. i'm apparently more conservative in what "safe" means than several posters on this thread.  :)

-michael thornburgh


From: Roberto Peon [mailto:grmocg@gmail.com]
Sent: Tuesday, August 27, 2013 3:23 PM
To: Mike Belshe
Cc: Michael Thornburgh; Yoav Nir; HTTP Working Group; tsvwg@ietf.org
Subject: Re: [tsvwg] The List (of application-layer desired features)

0-additional-RTTs whenever safe means LOTS of money, actually.
Latency and latency variance are highly correlated with bounce rates, etc.

I should have probably added "free to use" to the list of requirements, but other than that, if it gets results, it is something which should be examined and iterated upon.
I am personally quite agnostic to the name, format, company, etc. of who develops and deploys the next better thing. The important part is that we keep moving forward.

"Keep moving forward" implies that we're willing to continue to try the next better thing, which we can do only be lowering the barrier to entry (in safe ways).

-=R

On Tue, Aug 27, 2013 at 3:12 PM, Mike Belshe <mike@belshe.com<mailto:mike@belshe.com>> wrote:


On Tue, Aug 27, 2013 at 2:46 PM, Michael Thornburgh <mthornbu@adobe.com<mailto: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> [mailto: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<mailto: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<mailto: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<mailto:grmocg@gmail.com>]
Sent: Tuesday, August 06, 2013 11:16 AM

To: HTTP Working Group; tsvwg@ietf.org<mailto: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<mailto: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