打印

GD32307C 以太网数据接收有丢包

[复制链接]
1249|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 shaoyangv 于 2022-8-8 16:07 编辑

    在使用GD32307C-EVAL开发板,基础代码使用官网下载的例程“GD32F30x_Demo_Suites_V2.4.1\GD32307C_EVAL_Demo_Suites\Projects\22_ENET\Projects\Raw_webserver”。PC向开发板发送数据,开发板过滤接收到的数据,把指定目的IP的数据进行转发。但如果PC连续向开发板发送数据,就会出现接收丢包的情况。

上图为PC端发送数据的抓包截图。PC在向板卡连续发送数据时,绿框标识的数据可正常接收,红色内的数据则会丢失。
有哪位大佬遇到过类似的问题,或者可以给一些调试思路,十分感谢。

补充说明
1. 关于数据丢失数据包的定位,通过打印TCP数据包中的“Sequence Number”字段来确定。
2. 上述截图中,PC的IP地址为192.168.131.2,GD32开发板的IP为192.168.131.1。
3. 此现象稳定复现,且数据包丢失的位置是固定的,每次都是连续10包数据的后5包丢失。
4. 在以太网中断函数"void ENET_IRQHandler(void)"添加调试信息,丢失的包未触发此函数。

使用特权

评论回复
沙发
lifeforrent| | 2022-8-9 10:58 | 只看该作者
请问楼主,你在PC端具体怎么操作的,可以描述的尽可能详细些,我复现下问题

使用特权

评论回复
板凳
shaoyangv|  楼主 | 2022-8-9 15:25 | 只看该作者
lifeforrent 发表于 2022-8-9 10:58
请问楼主,你在PC端具体怎么操作的,可以描述的尽可能详细些,我复现下问题 ...

GD32开发板作为透传模块,连接着PC和服务器。GD32把接收到的数据修改MAC和IP层地址数据,实现类似NAT功能,网络连接如下图所示。帖子中截图为wireshark抓包,PC向服务器进行iperf3打流测试。

使用特权

评论回复
地板
lifeforrent| | 2022-8-9 16:07 | 只看该作者
试试中断接收方式,或者关闭硬件校验使用软件校验。

使用特权

评论回复
5
shaoyangv|  楼主 | 2022-8-9 17:52 | 只看该作者
lifeforrent 发表于 2022-8-9 16:07
试试中断接收方式,或者关闭硬件校验使用软件校验。

好的,多谢

另外我从芯片手册看到支持发送“暂停帧”实现流控,我也尝试下这方法。

使用特权

评论回复
6
shaoyangv|  楼主 | 2022-8-9 18:59 | 只看该作者
本帖最后由 shaoyangv 于 2022-8-9 19:01 编辑

尝试下面两种方法,均未成功。

1. 关闭硬件收校验。
    enet_init()接口的第2个参数使用 “ENET_NO_AUTOCHECKSUM” 来关闭硬件接收校验。
2. 接收到长包后发送暂停帧。
    接收到数据包较大时,在接收中断中处理数据包时,调用 enet_pauseframe_generate() 接口产生暂停帧,告诉发送方下一包数据延迟发送。

测试结果
实际数据抓包如下图,在GD32在收到长数据包后,发送了暂停帧,但存在两个问题。
1. 数量问题。PC发送了10包数据,但仅接收到5包暂停帧。这和修改前的现象一致,即GD32只收到了5包数据。
2. 时间戳问题。PC发送的数据包时间间隔为0,这就很奇怪。而且第1包暂停帧竟然在所有数据包之后。





使用特权

评论回复
7
lifeforrent| | 2022-8-10 08:50 | 只看该作者
方便发下代码吗,看看程序其他配置

使用特权

评论回复
8
yangxiaor520| | 2022-8-11 08:30 | 只看该作者
代码上传大家看看。

使用特权

评论回复
9
shaoyangv|  楼主 | 2022-8-13 17:51 | 只看该作者
各位大佬,公司的项目,不方便上传代码。问题依旧没解决,准备换方案了,多谢各位。

使用特权

评论回复
10
tpgf| | 2022-9-3 18:56 | 只看该作者
在什么层进行抓包的呢

使用特权

评论回复
11
qcliu| | 2022-9-3 19:13 | 只看该作者
一包数据大概有多少啊

使用特权

评论回复
12
drer| | 2022-9-3 19:17 | 只看该作者
考虑更换芯片吗

使用特权

评论回复
13
coshi| | 2022-9-3 19:25 | 只看该作者
丢包有规律性吗

使用特权

评论回复
14
kxsi| | 2022-9-3 19:35 | 只看该作者
这种丢包跟数据大小有关系吗

使用特权

评论回复
15
wiba| | 2022-9-3 20:04 | 只看该作者
是不是芯片单片的问题呢

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝