gpt4 book ai didi

embedded - 保证 TCP 数据包大小

转载 作者:可可西里 更新时间:2023-11-01 02:34:56 27 4
gpt4 key购买 nike

我们使用嵌入式设备通过串行到以太网转换器将数据包从串行端口发送到服务器。我们使用的一家制造商 Moxa 将始终以与构建它们相同的方式发送数据包。意思是,如果我们构建一个大小为 255 的数据包,它将始终以 255 长度发送数据包。另一家厂商Tibbo,如果我们发送包大小为255,如果大于128,它会打散数据包。这是我当时从Tibbo工程师那里得到的答复:

"From what I understand and what the engineers said, even if the other devices provide you with the right packet size now does not guarantee that when implemented in other networks the same will happen. This is the reason why we feel that packet size based data transfer through TCP is not reliable as it was not the way TCP was designed to be used."

我知道这可能不是 TCP 的设计用途,但如果我创建一个 255 字节的数据包并且 TCP 允许它,那么这在 TCP 工作方式之外是怎么回事?我知道在某些时候数据包可能会被分解,但如果服务器需要一定的数据包大小并且 Moxa 的产品不会出现与 Tibbo 设备相同的问题。

那么,是否可以保证一个合理的TCP数据包大小呢?

最佳答案

没有。 TCP不是数据包协议(protocol),它是流协议(protocol)。它保证您发送的字节全部到达,并且以正确的顺序,但仅此而已。特别是,TCP 不会为您提供任何类型的消息或数据包边界。如果你想要这样的东西,它们需要通过你的协议(protocol)在更高层次上实现。

关于embedded - 保证 TCP 数据包大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824698/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com