【发布时间】:2020-12-30 10:19:06
【问题描述】:
这更像是一个兴趣问题而不是必要性问题;
我正在为嵌入式系统编写 websocket 通信的一个小含义,并发现单个帧的理论大小限制指定为 2^64 字节。
我决定只实现对 2^16 的较短规范的支持,但我开始想知道,当规范声明您必须使用 TCP 连接时,为什么他们决定将最大帧大小设置得如此之大,并且TCP 最大有效载荷大小为 65535 字节?
【问题讨论】:
标签: websocket
这更像是一个兴趣问题而不是必要性问题;
我正在为嵌入式系统编写 websocket 通信的一个小含义,并发现单个帧的理论大小限制指定为 2^64 字节。
我决定只实现对 2^16 的较短规范的支持,但我开始想知道,当规范声明您必须使用 TCP 连接时,为什么他们决定将最大帧大小设置得如此之大,并且TCP 最大有效载荷大小为 65535 字节?
【问题讨论】:
标签: websocket
WebSocket 协议允许将每条消息分割成多个 TCP/IP 数据包。这允许在传输过程中将 4Gb 消息拆分为数千个 TCP/IP 数据包。
请注意,WebSockets 在 TCP/IP stream 上实现了一个基于 message 的协议...WebSockets is not a streaming protocol。
因此,TCP/IP 数据包大小限制无关紧要。唯一实际的限制是系统的限制和安全问题 - 系统可以处理 64 位消息大小吗?它仅限于 32 位吗?是否应该允许用户发送大量消息?为了防止用户攻击系统,系统应该对传入的消息施加什么限制? ...等等'。
【讨论】: