Subject: [hybi] -09: data framing

From: Peter Saint-Andre <[email-masked]>
Date: Wed, 15 Jun 2011 17:05:47 -0600

Here are some comments on Section 4 (I had comments on Section 3 of -08
but they were fixed in -09).

In 4.2...

   frame-rsv1              = %x0 ; 1 bit, MUST be 0

   frame-rsv2              = %x0 ; 1 bit, MUST be 0

   frame-rsv3              = %x0 ; 1 bit, MUST be 0

I think we mean "MUST be 0 unless negotiated otherwise".

In 4.3...

At the beginning of Section 4.4 there is a nice paragraph starting with
"The primary purpose of fragmentation is...", but we don't have
something similar about masking. What is masking intended to accomplish?
Is it supposed to have security properties? Etc.

   The client MUST mask all frames sent to the server.  A server MUST
   close the connection upon receiving a frame with the MASK bit set to
   0.

If framing is truly mandatory for all frames (not "if the parties
negotiate masking, then the client MUST mask all frames..."), why have
the MASK bit in the first place? Would frame-masked be set to 0 only for
control frames (or control frames not containing a body)?

In 4.5.2 and 4.5.3, it might be helpful to say explicitly whether Ping
frames and Pong frames are allowed to contain a body.

In 4.8, I think we mean "prescriptive" instead of "proscriptive" (from
"proscribe" = "forbid").

   o  Extension data may be placed in the payload data before the
      application data.

Do we mean "MAY"?

Peter

-- 
Peter Saint-Andre
https://stpeter.im/