Websocket 网箱框架尺寸规格

Websocket 网箱框架尺寸规格,websocket,Websocket,这与其说是必要性,不如说是利益问题 我正在写一篇关于嵌入式系统websocket通信的小文章,发现单个帧的理论大小限制为2^64字节 我决定只支持较短的规范2^16,但我开始想,当规范规定必须使用TCP连接时,为什么他们决定将最大帧大小设置得如此大,TCP的最大有效负载大小为65535字节?WebSocket协议允许每条消息在多个TCP/IP数据包之间分段。这允许在传输期间将4Gb消息拆分为数千个TCP/IP数据包 请注意,WebSocket在TCP/IP流上实现基于消息的协议 因此,TCP/I

这与其说是必要性,不如说是利益问题

我正在写一篇关于嵌入式系统websocket通信的小文章,发现单个帧的理论大小限制为2^64字节


我决定只支持较短的规范2^16,但我开始想,当规范规定必须使用TCP连接时,为什么他们决定将最大帧大小设置得如此大,TCP的最大有效负载大小为65535字节?

WebSocket协议允许每条消息在多个TCP/IP数据包之间分段。这允许在传输期间将4Gb消息拆分为数千个TCP/IP数据包

请注意,WebSocket在TCP/IP流上实现基于消息的协议


因此,TCP/IP数据包大小限制是不相关的。唯一实用的限制是系统的限制和安全问题-系统能否处理64位消息大小?是否限制为32位?应该允许用户发送大量信息吗?为了防止用户攻击系统,系统应该对传入的消息施加什么限制。。。等等。

我明白了,所以在应用层和传输层之间实际上有一些东西,它将大于65535字节的数据分割并组合成多个帧?@NicklasNielsen-是的,有。WebSocket实现是TCP/IP层和应用程序层之间的一层。它将TCP/IP流浓缩并划分为WebSocket消息,将不完整的消息存储在缓冲区中(必要时)。您正在谈论的是用于分离和连接帧的WebSocket实现,其中使用了最终帧位?,但是仍然不需要64位的大小,因为每个websocket帧的最大值仍然是65535字节。在websocket层下面一定有一些东西可以分离和连接。根据我的测试,例如,当从chrome发送100Kb时,我会将其作为两个websocket帧接收,一个是~75Kb,另一个是~25Kb,75Kb帧必须在某个点自动划分为两个较小的TCP帧。@NicklasNielsen-当我写“websocket实现”时,我指的是websocket库的实现。它从TCP/IP流读取数据,并在将事件/消息转发到WebSocket应用程序之前,将数据划分/合并为WebSocket帧和消息有效负载。