如何阅读此网络 "frame" 图?
How do I read this network "frame" diagram?
很多次,例如在描述 WebSocket 图的网站上 here 我看到 "frame" 个图(至少我认为它们是这样叫的)如下所示:
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
opcode
和mask
?
Payload Data
究竟是什么。
这整个帧是一个数据包,还是一个数据包中有多个帧?
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
表示
| 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 |
也就是说,table 是 32 位(= 4 字节)宽。
关于 fin
、rsv
、opcode
和 mask
的描述写在您从 RFC 6455 中摘录的 table 之后。
Payload Data
是字节数组。是application-specific条数据。
table表示一个frame的结构。 消息由一帧或多帧组成。
很多次,例如在描述 WebSocket 图的网站上 here 我看到 "frame" 个图(至少我认为它们是这样叫的)如下所示:
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
opcode
和mask
?Payload Data
究竟是什么。这整个帧是一个数据包,还是一个数据包中有多个帧?
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
表示
| 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 |
也就是说,table 是 32 位(= 4 字节)宽。
关于 fin
、rsv
、opcode
和 mask
的描述写在您从 RFC 6455 中摘录的 table 之后。
Payload Data
是字节数组。是application-specific条数据。
table表示一个frame的结构。 消息由一帧或多帧组成。