首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最小TCP通信规模

最小TCP通信规模
EN

Server Fault用户
提问于 2013-06-03 15:27:08
回答 2查看 159关注 0票数 2

我每10分钟从设备发送少量数据(最多100个字节)到TCP服务器。在我的例子中,开销似乎很大(我们为每个字节付费)。我发现我至少有7-10个数据包(三次握手(3),请求与ack(2),响应与ack (2,可选)和拆卸(3))。总开销至少为400个字节(每个数据包有40个字节的TCP/IP报头)。

问题如下:

  • 可靠地发送如此少量的数据的有效方法是什么?(UDP与ack?)
  • 为什么我的头大于40个字节(60或52)?例如: 0x0000: 4500 0034 73d7 4000 3506 d2ee 5c17 1b9b E.4s.0x0010: 2599 61b3 be7e 23a3 31a9 710a 6a2f 6371 %.a.~#.1.q.j/cq 0x0020: 8010 0073 2672 0000 0101 080a 02dc 02ef ...s&r.0x0030: 1dc2 dad6 .
  • 如何打印标题的键值列表而不是十六进制值?(这是小调)
EN

回答 2

Server Fault用户

回答已采纳

发布于 2013-06-03 15:38:09

可靠地发送如此少量的数据的有效方法是什么?(UDP与ack?)

是的,这基本上就是UDP发明的目的。或者使用长期存在的TCP连接。

为什么我的头大于40个字节(60或52)?

大多数OSes包含的内容远远超过最小值。

如何打印标题的键值列表而不是十六进制值?

捕获Wireshark中的数据包并丢弃它的分析。

要获得“键值”格式可能需要更多的时间,这取决于您要寻找的是什么。

TCP连接可以存活多长时间?

技术上,永远。实际上,这取决于..。TCP本身没有限制,连接可以存活数年。实际上,大多数应用程序都有一个超时,在超时时,它们断开不活动客户端的连接。另外,防火墙通常会在很长一段时间后删除空闲连接的有状态规则。

如果连接保持打开,TCP是否发送附加数据包?

如果你已经启用了生命,是的。否则,很可能不会。这取决于具体的实现。

让他们所有的联系保持畅通是有效的吗?

保持每个连接打开需要内存(通常只有几KB )。一千到两千个连接只需要几MB。数以百万计的人开始进入“很多”记忆的领域。现代OSes可以很容易地跟踪数千个连接;但是您的应用程序必须是合理的,才能适应这么多连接。

票数 6
EN

Server Fault用户

发布于 2013-06-03 16:18:09

可靠地发送如此少量的数据的有效方法是什么?

当然,我会使用UDP,为我的数据保留一些字节的数据包,用于校验和或其他错误检测机制,以防万一。

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

https://serverfault.com/questions/512864

复制
相关文章

相似问题

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