通过tcp发送后,数据包的长度不同

时间:2015-02-02 01:41:30

标签: sockets tcp

当我通过tcp发送数据包(每个包含8192字节的paket)时,我在客户端计算机上接收的数据包的长度与ex 1460或568字节不同。并且数据包的数量也不同,但客户端计算机上的数据已完成。我尝试使用textfile,pdf和mp4。

我知道在tcp连接上会重新发送被中断的数据,但是只能丢失一些数据包或丢包数据包?我的意思是当我发送一个8192字节的数据包时,数据包接收客户端但数据较少,然后我发送它。我认为ack软件包只返回最后一个数据包的数量,这就是为什么我认为中间数据不会丢失的原因。我错了吗?

1 个答案:

答案 0 :(得分:3)

TCP中没有包这样的东西。它是字节流协议。没有消息或消息边界。阻塞读取仅需要一次传输至少一个字节。如果你想要消息,你必须自己实现它们。