首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎么读这个网络“框架”图?

我怎么读这个网络“框架”图?
EN

Stack Overflow用户
提问于 2016-01-07 06:45:33
回答 1查看 86关注 0票数 0

很多时候,比如在描述WebSocket图这里的网站上,我看到“框架”图(至少我认为它们是这样的),如下所示:

代码语言:javascript
复制
0                   1                   2                   3
  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
 +-+-+-+-+-------+-+-------------+-------------------------------+
 |F|R|R|R| opcode|M| Payload len |    Extended payload length    |
 |I|S|S|S|  (4)  |A|     (7)     |             (16/63)           |
 |N|V|V|V|       |S|             |   (if payload len==126/127)   |
 | |1|2|3|       |K|             |                               |
 +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - +
 |     Extended payload length continued, if payload len == 127  |
 + - - - - - - - - - - - - - - - +-------------------------------+
 |                               |Masking-key, if MASK set to 1  |
 +-------------------------------+-------------------------------+
 | Masking-key (continued)       |          Payload Data         |
 +-------------------------------- - - - - - - - - - - - - - - - +
 :                     Payload Data continued ...                :
 + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
 |                     Payload Data continued ...                |
 +---------------------------------------------------------------+

有人能给我解释一下怎么读这样的图表吗?我的解释是,顶部的0 1 2 3将是到达数据包的字节,而0-9重复将是单独的位。但是,这是没有意义的,因为一个字节中只有8位。

此外:

  • fin rsv opcodemask是什么?
  • 确切地说, Payload Data
  • 这整个帧是一个包,还是一个包中有多个帧?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-08 12:30:07

代码语言:javascript
复制
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

手段

代码语言:javascript
复制
|    1st byte     |    2nd byte     |    3rd byte     |    4th byte     |
+-----------------+-----------------+-----------------+-----------------+
| 0 0 0 0 0 0 0 0 | 0 0 1 1 1 1 1 1 | 1 1 1 1 2 2 2 2 | 2 2 2 2 2 2 3 3 |
| 0 1 2 3 4 5 6 7 | 8 9 0 1 2 3 4 5 | 6 7 8 9 0 1 2 3 | 4 5 6 7 8 9 0 1 |

也就是说,表宽为32位(= 4字节).

关于finrsvopcodemask的描述就写在您摘自RFC 6455的表之后。

Payload Data是一个字节数组。它是特定于应用程序的数据。

该表表示一个框架的结构。消息由一个帧或多个帧组成。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34648898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档