Re: [hybi] Straw poll: Do you miss interjectable WebSocket level control frame? (was: Re: Discontinuation of mux ...)

Yutaka Hirano <yhirano@chromium.org> Tue, 25 February 2014 04:58 UTC

Return-Path: <yhirano@google.com>
X-Original-To: hybi@ietfa.amsl.com
Delivered-To: hybi@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 706F01A02D3 for <hybi@ietfa.amsl.com>; Mon, 24 Feb 2014 20:58:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.375
X-Spam-Level: *
X-Spam-Status: No, score=1.375 tagged_above=-999 required=5 tests=[BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, J_CHICKENPOX_26=0.6, RP_MATCHES_RCVD=-0.547, SPF_PASS=-0.001] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id O2EDLRZPAM8T for <hybi@ietfa.amsl.com>; Mon, 24 Feb 2014 20:58:55 -0800 (PST)
Received: from mail-yk0-x230.google.com (mail-yk0-x230.google.com [IPv6:2607:f8b0:4002:c07::230]) by ietfa.amsl.com (Postfix) with ESMTP id 094BB1A028F for <hybi@ietf.org>; Mon, 24 Feb 2014 20:58:54 -0800 (PST)
Received: by mail-yk0-f176.google.com with SMTP id 19so17351039ykq.7 for <hybi@ietf.org>; Mon, 24 Feb 2014 20:58:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=19v1WnZnliBJBw/BJW/8ol8szh4hJZ/Nrkc8gk5wt0Q=; b=P///O4twHBWnxpI2mbVX2RjLU6S7PXqflDIR/xhSFqnIFDY4dMx9WVpY3l0CSVbEw+ fn/iuggr1Fd9qvlyPrExN0MZ+XhCQ9T93Ib7dj6pjaDYRf+AixZtjIx/Q4wMUUaZFCGH bXZqJXO/EUd8hZuon2o7QPVDEAAiXr5VJqK4YKKxZx8Hzwy6rinDYnfzp5hqHlbiBFcd DgRr0fVn0r+SMPd0Q7qb5/U7cizhzqDwnptHjKJBnRYgnsgG1OEepJ23UYxwqsbHJxPf epj9NX1UYoB6YJJRU6SxWZ5zg6Ss4Tulbcj4rCB2jLaZmb3TQEvhA7upPiXg2Oomni/i 7x+g==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=19v1WnZnliBJBw/BJW/8ol8szh4hJZ/Nrkc8gk5wt0Q=; b=Kpo1LINhDjsWTlY1TAb3pd3ol7w6QgHzQzPaMGlJWUc2lGGMNWgNPsvipcsfThRRio EYG64+beovxdhtFG8b31P2xuNZbW1CBKoLYU7tY14eD28nmfnJI4YmR+w/BqgFVaZywF EvcM4PxtG/TeltCP30Z0vZ0M5lCtVDWLv8Jak=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=19v1WnZnliBJBw/BJW/8ol8szh4hJZ/Nrkc8gk5wt0Q=; b=caPhlswknwboBXzEkyslpLxWJf9jWtItXwqhidtGFazmzeTMDhSCF5Z9dX1uNyvlS7 gHXZqDlkGmQFLhyy6MDUc9x0j+Zpnrhgt9Z6t6ApNtyJxDwAsHyCwzGHUy3EIJoyTfNr pLD2DIAZImNgbKRxbpDNQ2CaPPZSqxKxAoAea4eiB14w6ogAdPvFWKyCDyHr470WqrGL njL/hWRcuS42wElupOfE8YbHNSnMEt2+TFeXLPgl0AUHMgFhXILnGiUDBNss8/owKUNL ifx5XM0GuWE8Sm+AT6lj+tKM+/1OdNgUJm1OdojBzXU8GofFRlB1SiOqz18XL2topYcK hGJA==
X-Gm-Message-State: ALoCoQkjyg7siRwJLoHzg/yEQeLxYabmG47aCazQPFj2j26Bon8fgKQhbWaY0M4dnG9fGe/C68ubyMPebkRXmrWN3I6EVXbs9eaX4ERH7hs+6pov5jP0fHHr6FLDJkBi+k29YfFGSKeF6G1GPrqG1JP5j/2OaZt+p+cD/E7EM+ygaAZ/MoO6lEWtr6cmWwnSpp7E/okJTVI8
MIME-Version: 1.0
X-Received: by 10.236.221.167 with SMTP id r37mr3298552yhp.85.1393304334050; Mon, 24 Feb 2014 20:58:54 -0800 (PST)
Sender: yhirano@google.com
Received: by 10.170.164.87 with HTTP; Mon, 24 Feb 2014 20:58:53 -0800 (PST)
In-Reply-To: <CAHixhFq=wfmYH8-ij_WtsQLN=NUTJwRQ=k8jCPepQDM8V8ZZYA@mail.gmail.com>
References: <CAH9hSJbjQNKnZTJmBFtU8MgmnRTYjPopC4oP_78bWUGap-9CvA@mail.gmail.com> <CAH9hSJbBmvNPBSSAk-khdWXgWw0GTt0FG3KsdzYeJcfiAPDk0A@mail.gmail.com> <CAHixhFq=wfmYH8-ij_WtsQLN=NUTJwRQ=k8jCPepQDM8V8ZZYA@mail.gmail.com>
Date: Tue, 25 Feb 2014 13:58:53 +0900
X-Google-Sender-Auth: icurPzXmWGkNfuZh7nMoyab2sPY
Message-ID: <CABihn6EN7V6XEwf6NWn78orxvr3XjGHxROJC4JjQ6RYYKEeCug@mail.gmail.com>
From: Yutaka Hirano <yhirano@chromium.org>
To: Adam Rice <ricea@google.com>
Content-Type: multipart/alternative; boundary="001a11c2ddaee557fc04f333f12c"
Archived-At: http://mailarchive.ietf.org/arch/msg/hybi/R0htFKeRqHW3labElc0U8H_E-y8
Cc: "hybi@ietf.org" <hybi@ietf.org>, Peter Thorson <webmaster@zaphoyd.com>
Subject: Re: [hybi] Straw poll: Do you miss interjectable WebSocket level control frame? (was: Re: Discontinuation of mux ...)
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi/>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 25 Feb 2014 04:58:56 -0000

>
> * Close: Can be used to perform a "clean" close in the middle of sending a
> message. However, I cannot think of any applications that would consider a
> situation in which a in-transit message was aborted to close the connection
> to be a "clean close" scenario.

An endpoint should be able to cancel the ongoing transmission, i.e. The
close call should abort transferring very_very_long_message in the
following code.


ws = new WebSocket(...);
ws.onopen = function() {
  ws.send(very_very_long_message);
  ws.close();
};

It is possible to _Close the WebSocket connection_ without the closing
handshake in such cases, but since the WebSocket API doesn't expose the
transmission status, doing so makes the closing handshake completely
unreliable.



On Wed, Feb 19, 2014 at 4:09 PM, Adam Rice <ricea@google.com> wrote:

> With the current set of control frames, I would not miss the ability to
> interject them in the middle of a data message.
>
> Breaking them down one by one:
>
> * Pong: useless in the middle of a data message (the peer already knows
> that it is receiving data, and useless for RTT measurement because it has
> an unknown amount of OS queueing and buffer bloat in front of it).
> * Ping: almost always useless in the middle of a data message. It could be
> useful if, for example, you had a middle box which closed "idle"
> connections, and considered any connection "idle" if there was no TCP/IP
> payload traffic originating from the client, and the server was in the
> middle of sending a huge message. However, such a middle box would also
> break HTTP downloads so seems unlikely to exist in practice. Even if it
> existed, how would the server detect it to know that it needed to send a
> Ping?
> * Close: Can be used to perform a "clean" close in the middle of sending a
> message. However, I cannot think of any applications that would consider a
> situation in which a in-transit message was aborted to close the connection
> to be a "clean close" scenario.
>
>
> On 19 February 2014 13:24, Takeshi Yoshino <tyoshino@google.com> wrote:
>
>> I'm inclined to say "Yes" for this question so said yes for #2 of
>> Yutaka's original question [1], but I could also cope with if we decide to
>> drop this.
>>
>> [1] http://www.ietf.org/mail-archive/web/hybi/current/msg10403.html
>>
>> _______________________________________________
>> hybi mailing list
>> hybi@ietf.org
>> https://www.ietf.org/mailman/listinfo/hybi
>>
>>
>