Networking 如果TCP/IP报头计数为40字节,则WebSocket消息的8字节实际上得到>;40字节?

Networking 如果TCP/IP报头计数为40字节,则WebSocket消息的8字节实际上得到>;40字节?,networking,websocket,tcp,Networking,Websocket,Tcp,我正在考虑如何减少WebSocket的总数据传输大小 据我所知,WebSocket头至少只有2个字节。因此,我首先想到,如果消息负载有8个字节,那么发送此消息就像[payload]+[websocket header]=8+2=10字节的数据传输 然而,仔细想想,TCP头的最小长度为20字节,IP[V4]头也是如此。还添加了可变(?)以太网头α字节,具体取决于硬件和协议 这是否意味着一次发送98字节的消息([payload]+[websocket header]+[ip header]+[tcp

我正在考虑如何减少WebSocket的总数据传输大小

据我所知,WebSocket头至少只有2个字节。因此,我首先想到,如果消息负载有8个字节,那么发送此消息就像
[payload]+[websocket header]=8+2=10
字节的数据传输

然而,仔细想想,TCP头的最小长度为20字节,IP[V4]头也是如此。还添加了可变(?)以太网头
α
字节,具体取决于硬件和协议


这是否意味着一次发送98字节的消息(
[payload]+[websocket header]+[ip header]+[tcp header]+[ethernet header]=98+2+20+20+α>140
字节)通常比五次发送8字节的数据(
([payload]+[websocket header]+[ip header]+[tcp header]+[ethernet header]+[ethernet header])*5=(8+2+20+20+α)*5>250
bytes)?

不确定你在寻找什么样的答案?是的,发送更少的字节通常会更好。这就是为什么像Nagle这样的算法存在的原因。但如果你在构建聊天应用程序,最好不要等到用户输入98(或你选择的任意截止点)后再使用字符,因为它们的最后一条消息可能永远不会被发送。考虑到开销,你应该考虑如何真正增加它。@CodeCaster啊,Nagle。这就是我要找的!不,你不想自己实现Nagle,或者为websockets实现类似的东西…@CodeCaster Year,我知道我知道。我很久以前就知道了,但它完全失败了内存不足。我还检查了它与websocket的关系,似乎基本上tcp_nodelay,*un-*nagle都是使用websocket在任何地方启用的?如果我担心bandwodth,我可能应该手动启用它。