udp通信,1秒钟最快能发多少个包?不连包的情况下

2019-12-11 18:19发布

我现在使用的平台是ZYNQ了,不是STM32了。但是使用的也是ucos,网络协议栈用的是uc tcpip。STM32的时候是用W5500来通信的。
ZYNQ上面用的是千兆网。
但是实际操作的时候发现好像速度还不如W5500啊。

说下我的情况,我是用UDP给上位机软件发数据包,一个数据包最大1000字节,一帧数据可能1-20KB。不停的连续发送。
不加延时的时候,一次发送17个1000字节的数据包,后面的几个会丢掉,可能是我缓冲区的设置问题,因为是非阻塞的。
然后我在网络助手里面看到发上来的数据,固定的能收到9个包,合计9000字节。

然后这9个包用了60ms的时间,这个时间也太长了吧。我每个发送加5ms的延时,也是差不多这个时间。因为是非阻塞的,底层是库也看不到。

所以我的疑惑是,是不是UDP包不能发得很频繁,好比1ms发一个UDP包。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
zxq6
1楼-- · 2019-12-11 22:15
 精彩回答 2  元偷偷看……
canspider
2楼-- · 2019-12-12 00:10
都用上zynq了,要想发包快且稳,肯定是上IP Core啊,直接给你线速的性能
gonboy
3楼-- · 2019-12-12 03:00
1. 最好开启巨包机制
2. 考虑转发速度,开启UDP高速转发(如果中间有路由器,有的不支持)
3. UDP是不考虑数据完整性的机制。需要协议自己验证。
canspider
4楼-- · 2019-12-12 06:54
gonboy 发表于 2019-5-14 22:08
1. 最好开启巨包机制
2. 考虑转发速度,开启UDP高速转发(如果中间有路由器,有的不支持)
3. UDP是不考虑 ...

3. IP层会保证数据完整性,UDP只是不能保证数据一定能收到。
gonboy
5楼-- · 2019-12-12 10:57
canspider 发表于 2019-5-14 22:55
3. IP层会保证数据完整性,UDP只是不能保证数据一定能收到。

是的。 谢谢修正                                      
love_ourdev
6楼-- · 2019-12-12 14:23
 精彩回答 2  元偷偷看……

一周热门 更多>