Re: [hybi] IESG note?, was: Last Call: <draft-ietf-hybi-thewebsocketprotocol-10.txt> (The WebSocket protocol) to Proposed Standard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Roy,

You may feel that the wording of your note is not pejorative (because what you wanted to say is so much more so), but the tone and wording come across that way even if it is technically accurate.

Having a note in the spec that WebSocket connections over port 80 and 443 wlll have traffic patterns that are substantially different than normal HTTP patterns and how this might impact existing infrastructure is probably worthwhile but I don't think most of your note is helpful or serves much purpose (except as a passive aggressive way to express an opinion that the current WebSocket protocol is fatally flawed).

Just one example: "convoluted and inefficient". A simple 4-byte running XOR hash is convoluted? Certainly it's slightly more complicated than raw bytes or plain text. But convoluted seems like a stretch by any measure. Inefficient? Again, it's obviously more inefficient than just passing bytes, but if you are going to do an operation to a series of bytes, it doesn't get much more efficient than XOR. And there was a fair bit of testing of the efficiency of different hashing algorithms on different platforms and this current algorithm was deemed not overly inefficient (if you disagree, please provide data).

So I think your real objection is that the current WebSocket protocol is more complicated and more inefficient than if WebSockets used a new set of well defined ports (without the ability to pick other ports, or with 80 and 443 explicitly disallowed or the same problem crops up again) and was able to safely send data without hashing. In which case I think your real disagreement is not with the outcome of the working group but with requirement #7 (#6 in the original) of the WebSocket requirements document: http://tools.ietf.org/html/draft-ietf-hybi-websocket-requirements-02

Personally, I think the ability to use port 80 and 443 for WebSockets is valuable and worthwhile and I agree with the requirement. But those ports are not mandatory (just defaults) and if it turns out that this is a mistake then it really isn't that difficult for web servers to deny WebSocket handshakes on port 80,443 and force WebSocket services to use other ports. It would also be simple to update the spec in the future and make client-to-server masking optional for ports that are not 80/443.

Regards,

Joel Martin


On Sat, Sep 3, 2011 at 12:03 PM, Roy T. Fielding <fielding@xxxxxxxx> wrote:
I don't know if this is a cultural issue or not, but neither of those
changes is an improvement, nor should they be any less offensive.
Convoluted and inefficient describes the hashing algorithm in the
least offensive way possible -- "complex" doesn't say anything.
There are a lot of complex algorithms (e.g., TLS) that are
necessarily so.

And I gave the sole reason the WG has for using those ports -- I don't
want people to imagine there might be any other (sane, unselfish, etc.)
reasons.

Besides, what I wrote is entirely factual -- the offensive version
would have melted your LCD.

....Roy

On Sep 3, 2011, at 6:17 AM, Julian Reschke wrote:

> On 2011-09-03 12:54, Julian Reschke wrote:
>> Hi,
>>
>> I believe that almost everything Roy says below is non-controversial; if
>> we can tune the language to be less offensive it might fit well into the
>> Introduction (and not require an IESG Note to get into the document).
>>
>> Best regards, Julian
>> ...
>
> Like that...:
>
>   The WebSocket protocol is designed with an assumption that
>   TCP port 80 or 443 will be used for the sake of tunneling raw
>   socket exchanges over HTTP.  The result is a convoluted and
>   inefficient exchange of hashed data for the sake of bypassing
>
> s/convoluted and inefficient/complex/
>
>   intermediaries that may be routing, authenticating, filtering,
>   or verifying traffic on those ports.  The sole reason for using
>
> s/sole//
>
>   ports 80 and 443, and hence requiring the hashed data exchange,
>   is because many organizations use TCP port blocking at firewalls
>   to prevent unexpected network traffic, but allow the HTTP ports
>   to remain open because they are expected to be used for normal
>   Web request traffic.  WebSocket deliberately bypasses network
>   management constraints in order to enable Web application
>   developers to send arbitrary data though a trusted port.
>
>   Naturally, the WebSocket protocol does not have the same network
>   characteristics as HTTP.  The messages exchanged are likely to
>   be smaller, more interactive, and delivered asynchronously over
>   a long-lived connection.  Unfortunately, those are the same
>   characteristics of typical denial-of-service attacks over HTTP.
>   Organizations deploying WebSockets should be aware that existing
>   network equipment or software monitoring on those ports may need
>   to be updated or replaced.
>
> Best regards, Julian
> _______________________________________________
> hybi mailing list
> hybi@xxxxxxxx
> https://www.ietf.org/mailman/listinfo/hybi

_______________________________________________
hybi mailing list
hybi@xxxxxxxx
https://www.ietf.org/mailman/listinfo/hybi

_______________________________________________
Ietf mailing list
Ietf@xxxxxxxx
https://www.ietf.org/mailman/listinfo/ietf

[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Fedora Users]