求助:关于TCP接收丢包的问题

枫自飘逸 2017-07-22 03:55:48
最近在用国产君正的方案开发一款产品,国产芯片MIPS架构还是N多坑,身心疲惫。最近在做文件传输时(使用FTP),文件上传都正常,但是在下载文件时候莫名其妙的阻塞了!。。然后写了单独写了简单的TCP程序来测试,服务端连续发送包,一包1024字节,100包(共102400),发送直接完成未返回失败,但客户端接收端在收到10包左右数据后莫名就阻塞了。最初怀疑是TCP的接收缓冲区问题,尝试通过
/proc/sys/net/core/rmem_default
/proc/sys/net/ipv4/tcp_rmem
等等调大了缓冲区。。依旧没效果。。
尝试了N多办法依旧没解决,后来发现出现这种情况下.在ifconfig下
wlan0 Link encap:Ethernet HWaddr 00:16:3e:0a:0d:69
inet addr:192.168.1.3 Bcast:192.168.1.1 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:37706 errors:0 dropped:0 overruns:0 frame:0
TX packets:32260 errors:0 dropped:0 overruns:0 carrier:0

网卡的RX收到字节远远达不到实际发送的字节,errors和dropped也没有。
TCP既然是可靠连接,发送端没出现失败按道理接收端应该收到了才对。
感觉像是底层完全没收到包,或者是WIFI驱动的接收缓冲区太小直接丢包了?
请问各位大牛有没遇到类似问题,或者提供点解决办法的思路
...全文
327 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
9527 2017-08-08
  • 打赏
  • 举报
回复
socket的发送成功只是代表把数据放到发送缓冲区了,不能确保到达对方的,你要增加适当的确认机制才行。下载如果用的不是线程的开源项目,可以加入重试机制 个人觉得和mips啥的没关系,当然可能是网卡质量不行,同样网络质量,丢包严重也有可能
chaoswind 2017-08-08
  • 打赏
  • 举报
回复
1 下载文件阻塞, 可能的原因很多,并不一定是网络问题 2 TCP发送102400数据量太少, 不足以挖出问题。 接收方不要按报文方式,应该按照流方式来接收。 发送方发送完成后直接断开tcp了?是close, 还是shutdown?

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧