我的问题是通过TCP数据传输丢失数据。在TCP传输丢失数据
我已经建立了一个自制的基于AVR的网络服务器(或至少试图)。
我能够与客户端PC(我的电脑)进行通信,并且我可以发送几条HTML线(总数据为< 100字节),没有问题。
但是,当我想发送我的基本主页(〜1KB)时,我只能获得WireShark 181bytes的数据。
我怀疑问题在于TCP的构建。下面
数据是十六进制格式
从客户端(我的电脑):
sequence number: de db c7 b1
ack number: 00 0a 00 0b
从服务器(AVR):
sequence number: 00 0a 00 0b
ack number: de b6 c9 18
总TCP长度:935byte,IP和TCP标题20-20字节
我设置了哪些设置错误?
我想我的问题并不清楚。 我有一个大约1KB的页面,所以它适合于一个TCP数据包。 这个数据包是通过AVR正确生成的,但是在传输过程中(LAN)只收到181byte。我知道数据包可能会丢失,但数据包的一部分?并在局域网?哦,我得到的大小总是181byte。 – 2014-10-31 19:00:01
没有TCP数据包这样的东西,只有TCP数据流。在TCP中,您可以放心地忽略MTU。但是你不能忽略send和recv的返回码。 – 2014-11-01 08:58:26