我们使用嵌入式设备通过串口发送数据包到串口转以太网转换器,再传输到服务器。我们使用的一个制造商Moxa,总是会按照构造方式发送数据包。也就是说,如果我们构造一个长度为255的数据包,它总是会以255的长度发送数据包。另一个制造商Tibbo,在我们发送长度为255的数据包时,如果大于128,它会将数据包分割成几个部分。这是我当时从Tibbo工程师那里得到的答案:
“根据我的理解和工程师们的说法,即使其他设备现在提供了正确的数据包大小,也不能保证在其他网络中实现相同的结果。这就是为什么我们认为基于数据包大小的TCP传输不可靠的原因,因为TCP并没有被设计成这样使用。”
我知道这可能不是TCP设计的使用方式,但是如果我创建一个255字节的数据包,并且TCP允许它,那么这与TCP的工作方式有何不同呢?我明白在某些情况下,数据包可能会被分割,但如果服务器期望特定的数据包大小,并且Moxa的设备没有像Tibbo设备一样的问题,那么是否可以保证合理的TCP数据包大小呢?
“根据我的理解和工程师们的说法,即使其他设备现在提供了正确的数据包大小,也不能保证在其他网络中实现相同的结果。这就是为什么我们认为基于数据包大小的TCP传输不可靠的原因,因为TCP并没有被设计成这样使用。”
我知道这可能不是TCP设计的使用方式,但是如果我创建一个255字节的数据包,并且TCP允许它,那么这与TCP的工作方式有何不同呢?我明白在某些情况下,数据包可能会被分割,但如果服务器期望特定的数据包大小,并且Moxa的设备没有像Tibbo设备一样的问题,那么是否可以保证合理的TCP数据包大小呢?