amobbs.com 阿莫电子论坛

 找回密码
 注册
bottom↓
查看: 837|回复: 42
打印 上一主题 下一主题

分享个ucos tcpip协议栈的诡异情况供大家了解

[复制链接]
跳转到指定楼层
1
发表于 2020-3-21 15:26:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近ucos以及它的绝大部分组件都全部开源了。作为老牌RTOS,作为一个上过火星的操作系统。后面估计也会有不少朋友会重新使用这个历史悠久的RTOS。
那么,作为ucos的网络协议栈组件的uc tcpip,我有近1年的使用经验。我是在zynq上面使用ucos和uc tcpip的,在此之前它是以lib的形式提供的。

下面我给大家分享一个诡异的使用情况供大家了解。
我们的设备已经陆续研发1年,在这1年中,网络设备都是正常使用的,但是在1月底的时候。因为小批量的,于是几十台设备放到一起运行。
几次意外事件发现,当服务器断网后一段时间再恢复后,总会有些设备和服务器断开连接,必须断电重启。

最近我们使用十台设备以及多个交换机、路由器,用各种组网的形式,找出了这个问题出现的情况了。
再服务器于多级交换机和设备连接的时候,如果服务器所处的位置在拓扑图里面比设备要低的时候,就会出现这种诡异的情况 “拔掉服务器的网线,然后十台设备会在10分钟左右陆续出现ping不通,30分钟后基本都ping不通

如果使用其他的网络拓扑结构,那么所有的异常情况,不管是怎么操作,设备都会一切正常,很耐操。只有在上面那种情况下才会出现。
感觉就是uc tcpip在这种结构下,底层的程序死掉了。连ping都ping不通。由于这个是lib文件的。所以也没法验证这个时候它的底层2个线程里面到底是怎么回事。所有的网络操作返回值都说是正常的。

所以大家要注意了,当然你们运气好的是这个uc tcpip现在已经开源了。你们要是运气不好遇到了类似的情况还有机会解决。
我们这边准备改成lwip了。也不知道lwip会不会出现什么诡异的问题。至少半个月的工作量。
2
发表于 2020-3-21 17:26:45 来自手机 | 只看该作者
都zynq了干吗不上linux。。好歹驱动程序强壮度完全不是一个量级的。
3
 楼主| 发表于 2020-3-21 17:40:01 | 只看该作者
是为了加快产品开发。如果一开始多花点时间上linux,现在可能就根本没有这些破事了。中间开发确实也很顺利很快。中间开发了3个版本。分别用于不同场合。
这一代的才发现这种问题。
4
发表于 2020-3-21 18:03:53 | 只看该作者
谢谢提醒,最近也准备把 uc-tcp/ip 用起来。
5
发表于 2020-3-21 18:37:52 | 只看该作者
上过火星的ucos组件比不上一直开源的lwip么?
6
发表于 2020-3-21 22:19:14 | 只看该作者
如果服务器所处的位置在拓扑图里面比设备要低的时候  
这个 低 怎么理解啊
7
 楼主| 发表于 2020-3-21 22:39:42 | 只看该作者
guxingganyue 发表于 2020-3-21 22:19
如果服务器所处的位置在拓扑图里面比设备要低的时候  
这个 低 怎么理解啊 ...

好比1级交换机下面挂2个交换机。然后交换机下面再挂2个交换机。然后再挂2个交换机。服务器在最下面。设备放在上面的交换机。
这个时候就会出问题。

如果服务器所处交换机等级比所有设备都高,就没有任何问题。
8
 楼主| 发表于 2020-3-21 22:40:13 | 只看该作者
ddcour 发表于 2020-3-21 18:37
上过火星的ucos组件比不上一直开源的lwip么?

ucos上过火星,但是uc tcpip不一定上过啊。
9
发表于 2020-3-21 22:41:41 | 只看该作者
握个爪,我们用RTX+TCPnet做一款产品也开发了一年多了,最近也是一个网络问题搞不定,搞不好也要换lwIP了,悲催。
10
发表于 2020-3-22 11:22:49 | 只看该作者
honami520 发表于 2020-3-21 22:39
好比1级交换机下面挂2个交换机。然后交换机下面再挂2个交换机。然后再挂2个交换机。服务器在最下面。设备 ...

看看我理解的对不,从下图看,设备是不知道自己所处的层级关系的,交换机也只做数据按端口转发,拓扑结构改变后数据转发方向(端口)改变,这么看和设备没关系,但是呢你这里出现了问题,可以先从设备失联后抓包分析下,或者打开uc tcp ip的调试输出日志(如果有的话),再看看失联后输出的是什么。。。。。。。一般情况下都是自己的问题或者配置不对造成的,这是我用lwip的得到教训。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
11
发表于 2020-3-22 11:42:00 | 只看该作者
我现在裸机的程序用网络的都是用自己写的协议栈(目前只有ICMP,ARP,UDP),比较好把控,在STM32平台和 ZYNQ7000平台都能稳定地运行。
12
发表于 2020-3-22 15:30:10 来自手机 | 只看该作者
xjmlfm1 发表于 2020-3-21 22:41
握个爪,我们用RTX+TCPnet做一款产品也开发了一年多了,最近也是一个网络问题搞不定,搞不好也要换lwIP了, ...

能说说具体什么问题吗,刚开始使用RLNET,好怕以后踩到这个坑……
13
发表于 2020-3-22 16:58:38 来自手机 | 只看该作者
guxingganyue 发表于 2020-3-22 11:22
看看我理解的对不,从下图看,设备是不知道自己所处的层级关系的,交换机也只做数据按端口转发,拓扑结构 ...

这类我还是建议抓包看看
14
发表于 2020-3-22 17:11:13 | 只看该作者
LWIP目前现场使用很稳定,如果在家里的时候就做过大量测试,其实也有一些坑需要自己填的。主要是存储空间分配要吃透。还有一些阻塞死的问题也与空间分配有关。做好链接异常检测和重连机制。目前现场网络异常重连很稳定。
15
发表于 2020-3-22 17:40:23 | 只看该作者
guxingganyue 发表于 2020-3-22 11:22
看看我理解的对不,从下图看,设备是不知道自己所处的层级关系的,交换机也只做数据按端口转发,拓扑结构 ...

看几层的,二层交换机不改变端口也不改变MAC地址,级联也不变MAC地址的吧,三层交换机会变MAC,内网NAT会变端口
16
发表于 2020-3-22 18:39:32 来自手机 | 只看该作者
感觉LWIP真香。新版有很多应用协议支持,拿来就用
17
发表于 2020-3-22 19:35:46 来自手机 | 只看该作者
高稳定要求的考虑UDP自定义协议吧,就类似串口
18
发表于 2020-3-22 20:32:56 | 只看该作者
    嵌入式的设备使用简化的lwip协议,也会出现过10几分钟后,无法ping通的情况,后来通过wareshark分析,发现在主机每隔十几分钟更新arp缓存时,设备无法回应arp的请求,就无法ping通了。一直没有找到移植协议的问题,后来发现通过arp 设置静态的缓存,将设备的ip和mac地址写入静态arp表中,就能一直连接,就写了一个批处理命令自动运行,就先这样用了。
19
 楼主| 发表于 2020-3-22 21:12:44 | 只看该作者
多谢各位的回复,有一些还是比较有启发的。
不过,我的问题和你们的都不一样,我正常通信都是没有问题的。问题是在某种组网模式下,拔掉服务器的网线后,才会出现这样的情况。
20
发表于 2020-3-27 10:27:53 | 只看该作者
honami520 发表于 2020-3-22 21:12
多谢各位的回复,有一些还是比较有启发的。
不过,我的问题和你们的都不一样,我正常通信都是没有问题的。 ...

这种特定条件下出现的异常确实很头疼,就是个定时炸弹,如果真解决不了只能换其它网络协议栈。。。。
21
发表于 2020-3-27 10:59:00 | 只看该作者
一定要用现成的成熟平台
22
发表于 2020-3-27 11:11:23 来自手机 | 只看该作者
现在开源了,有问题可以直接去github上提,官方应该还会继续维护吧
23
发表于 2020-3-27 13:51:48 | 只看该作者
honami520 发表于 2020-3-22 21:12
多谢各位的回复,有一些还是比较有启发的。
不过,我的问题和你们的都不一样,我正常通信都是没有问题的。 ...

如果已经明确问题触发的地方,就加代码规避吧,重启服务,重新建立连接。不然要去分析底层代码,工作量还是比较大。
24
发表于 2020-3-28 08:20:55 | 只看该作者
xjmlfm1 发表于 2020-3-21 22:41
握个爪,我们用RTX+TCPnet做一款产品也开发了一年多了,最近也是一个网络问题搞不定,搞不好也要换lwIP了, ...

TCPnet 啥问题啊,最近要用
25
发表于 2020-3-29 01:02:45 | 只看该作者
上linux 它不香点吗
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号-1 )

GMT+8, 2020-4-10 06:31

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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