Re: [hybi] Requirements.
SM <sm@resistor.net> Mon, 01 February 2010 10:05 UTC
Return-Path: <sm@resistor.net>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 05AC828C168 for <hybi@core3.amsl.com>; Mon, 1 Feb 2010 02:05:10 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.377
X-Spam-Level:
X-Spam-Status: No, score=-2.377 tagged_above=-999 required=5 tests=[AWL=0.223, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t5JcJrZKC92I for <hybi@core3.amsl.com>; Mon, 1 Feb 2010 02:05:08 -0800 (PST)
Received: from ns1.qubic.net (ns1.qubic.net [208.69.177.116]) by core3.amsl.com (Postfix) with ESMTP id B9E6F28C129 for <hybi@ietf.org>; Mon, 1 Feb 2010 02:05:08 -0800 (PST)
Received: from SUBMAN.resistor.net ([10.0.0.1]) (authenticated bits=0) by ns1.qubic.net (8.14.4/8.14.4) with ESMTP id o11A5TGs027432 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 1 Feb 2010 02:05:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=resistor.net; s=mail; t=1265018739; x=1265105139; bh=XY2T77t8kfHOLYPSaTJK+nAv4le8pN5gsPwn4jmEycU=; h=Message-Id:Date:To:From:Subject:Cc:In-Reply-To:References: Mime-Version:Content-Type; b=iunB0K703vQBV5391HLSsY3B/SC6pH7rfDLdYu/V5znsmXUn841vsMTrTivhfIML9 D04iLOWAbKJWCIfNk9hGmxkik6GLTpG9W1e/taRiVfjhrt4WcM1E+Sp5LqCLdsUEW7 jAxJAurpsNo7t1LszDF+M5q7PRQeRsvcQ3vUu568=
DomainKey-Signature: a=rsa-sha1; s=mail; d=resistor.net; c=simple; q=dns; b=Snc2MZY45/5ZMSnRmuyWcafOFBodT1MXqa71zwWKyMVSTZjqPjJitLG53eENbHDBO mU3TYovslabjvYbppRSCoweaYZdKbx0HPutJl6G001adL1QaerNBauTzWKgNIiLJOrk J2bfgRIvLg/DLReuPG4142k0Au6bt5c2glvEE2A=
Message-Id: <6.2.5.6.2.20100201000831.059ec9b0@resistor.net>
X-Mailer: QUALCOMM Windows Eudora Version 6.2.5.6
Date: Mon, 01 Feb 2010 01:40:09 -0800
To: Greg Wilkins <gregw@webtide.com>
From: SM <sm@resistor.net>
In-Reply-To: <4B661B0D.20606@webtide.com>
References: <4B661B0D.20606@webtide.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"; format="flowed"
Cc: hybi@ietf.org
Subject: Re: [hybi] Requirements.
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Mon, 01 Feb 2010 10:05:10 -0000
Hi Greg, At 16:06 31-01-10, Greg Wilkins wrote: >All, in line with the charter milestones, I'd like to start a discussion >in preparation to preparing a requirements document for April. [snip] >Connection limits >================= >Connections can consume significant resources on a network and/or >server. If a application has an unconstrained ability to open new >connections than an client may attempt to open more connections >as a way to reserve more of a servers resources for their application. >Unconstrained connection creation may also be used as a DOS attack >(although this is somewhat limited by the current requirement that only >a single handshake can be outstanding at once). > >Endpoints (not applications) should enforce reasonable connection limits. >Endpoint implementations should be able to negotiate and/or declare >the maximal connection limits that they will enforce. The protocol document would then have to define the reasonable connection limit. That serves as guidance to implementors. >Orderly Close. >============== >That either endpoint or any intermediary may initiate an orderly close of >a websocket connection, such that any message sent before the close would >be guaranteed of delivery if there are no other failures of the connection. > >Websocket endpoints and intermediaries would be able to distinguish between >an orderly close and a failure of a websocket and thus take different >application actions with regards to any non-idempotent messages recently >sent. That's better than saying that it is always safe to disconnect. >A websocket endpoint that frequently detects non orderly closes on a >particular path may make statistical/heuristic inferences about the >ws support of intermediaries. It may then take action by reducing idle >times and/or sending keep-alives. If it is not normative, you can get away with that. >Acknowledged Flush >================== >Either endpoint may initiate an acknowledged flush of a websocket connection. >This would be similar to an orderly close in that endpoints and intermediaries >would be able to know that all messages sent prior to the flush had been >delivered to the opposite endpoint, except that the connection would be >left open. Are you asking for acknowledgement of delivery as part of the protocol? >Content Type & encodings >======================== > >Websocket endpoints may wish to send data in alternative encodings >and with indications of content type. Examples include compressing, >signing or encrypting messages, using utf-16 instead of utf-8 for >some language groups, sending images or other media. Content type >and encoding is needed to make usage of the binary framing transport. > >It's unclear if content type should be negotiated or simply declared. >The under utilization of accept- headers in HTTP would suggest negotiation >is perhaps not required. You will have to support content negotiation if you want to support different content types. >Standardized Extensions >======================= > >Features/requirements that deemed to not be base requirements >(eg possibly message fragmentation and connection sharing), may >be desirable to support in the form of standardized extensions >to the protocol. That's a good idea of else you will end up with a lot of stuff in the "base" specifications. There is also the question of whether the protocol should be run on the same port as HTTP (re: discussion about HTTP Upgrade) or whether it should be assigned a different TCP port. Regards, -sm
- [hybi] Requirements. Greg Wilkins
- Re: [hybi] Requirements. SM