EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Touuqu 于 2019-6-19 16:54 编辑
: p& ]: t: U6 m( a; j K1 L# m( J- a1 [, X4 a" D" a
使用RK3399开发板给服务端的PC发送数据时,总会遇到服务端收不到数据的情况.$ b, k$ a! d- ], Z" Q
RK3399作为TCP的client,PC作为server.3 q! V+ v$ `; c; ~) k
出现问题时,PC端一直收不到ARM的数据,但ARM端没有显示任何异常;15分钟后,ARM放弃该TCP连接,重新建立一个新的TCP连接;
% a: a: m$ q9 k0 _( {/ F出现异常时,网络正常,能相互ping通;如果另外启动一个client,也能正常发送数据;
+ R* }5 I* w, v9 M1 y使用抓包工具对server端和client端抓包(wireshark和tcpdump),发现两边的抓包结果一致: - client和server在正常传输数据;
6 e- u2 y& K% g. R( d3 E- server端发出 DUP ACK包;
- client端应答 Fast Retransmission;
- 重复 2,3过程一会儿后,client端发送 TCP Retransmission,server端无应答;
- client端重新建立连接; 由于无法上传图片,只能这样描述了。 PC端尝试更换过工控机和普通的台式机,尝试过windows server和win10和ubuntu16.04, TCP server的程序尝试过自己写的服务端和网络调试助手; RK3399更换过3个不同的开发板,也使用过不同的client程序(一个是基于muduo库写的应用程序,一个是基于linux的socket接口写的测试程序)) ?- {4 I( e! f, H5 N+ X4 w6 F
W' O b9 G( m% G* N4 @7 Q; n
' i0 b( A' u) H9 X0 F _" c后来根据同事的建议,将TCP的每个包大小改到1200byte以内(实际只有800多byte),增加流量控制(每隔200us发一包),仍然有相同的问题。3 M; g) k A8 o$ I* F* g& g
& i8 \" b8 X) l! b8 A4 M
有人提到rk3399的网络有问题,VDD_LOG偏低,但我测试了一下,我的板子的VDD_LOG并无异常. 麻烦高手帮忙解答一下. , Q( d. [! ]$ T1 h/ u: b: g
|