OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...

LWIP协议怎么提高UDP速度?

查看数: 7608 | 评论数: 10 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-8-26 11:16

正文摘要:

void udp_server_rev(void* arg,struct udp_pcb* upcb,struct pbuf* p,struct ip_addr*addr ,u16_t port) {       u32_t crc16_1;           u32_t crc16_2; ...

回复

zhoujianwen 发表于 2016-8-29 11:32:08
aozima 发表于 2016-8-27 17:15:49
抓我用下过滤器。

代码用下code标签

这么乱,你自己看不累?
速度问题,自己根据抓包显示的时间间隔来调优吧。
zhoujianwen 发表于 2016-8-27 15:35:30
aozima 发表于 2016-8-27 11:49
这你得重修C语言了。

除非你做了  p =xx

那这么说的话,最后还得来一句P=NULL?
aozima 发表于 2016-8-27 11:49:18
本帖最后由 aozima 于 2016-8-27 17:17 编辑
zhoujianwen 发表于 2016-8-27 10:48

[mw_shl_code=c,true]if(p!=NULL)
{  
    pbuf_free(p);
    if(p==NULL)
    {
        .....
    }[/mw_shl_code]

我发现pbuf_free并不能释放p,调试的过程中执行不到p==NULL里面的程序

这你得重修C语言了。

除非你做了  p =xx
不然p不会变(p所指向的内容可能变了)
zhoujianwen 发表于 2016-8-27 10:48:19
if(p!=NULL)
                {  
                                pbuf_free(p);
                        if(p==NULL)
                        {
                        .....}
我发现pbuf_free并不能释放p,调试的过程中执行不到p==NULL里面的程序
zhoujianwen 发表于 2016-8-27 09:49:34
有大神吗?实在是想不通啊
zhoujianwen 发表于 2016-8-26 15:07:15
aozima 发表于 2016-8-26 12:24
bind后就不会变了。
UDP的综合性能其实是比TCP要差的。
如果你的应用逻辑是等收到ACK后再发送的下一包的 ...

我的校验过程挺快的,也是使用的ACK,这里提一下:收到校验命令,开始一帧一帧的返回数据,每帧数据1024字节,当PC端收到数据之后,和源数据文件进行比较,没有错误之后再发送ACK给开发板,开发板收到ACK之后再继续发送数据,直到发送完成。这个过程的速度比主题上的测试过程还快呢。测试过程只是把包仍了什么都没做为什么速度还那么慢?
aozima 发表于 2016-8-26 12:24:28
bind后就不会变了。
UDP的综合性能其实是比TCP要差的。
如果你的应用逻辑是等收到ACK后再发送的下一包的话,就确实很慢了。
建议使用队列+重发的方式,这样可以少等些时间。
可以双方抓包分析,以找出原因。
另外如果是组播,ACK的作用感觉也不是很大呀。



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-4-23 17:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表