搜索
bottom↓
回复: 24

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

[复制链接]

出0入90汤圆

发表于 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会不会出现什么诡异的问题。至少半个月的工作量。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入4汤圆

发表于 2020-3-29 01:02:45 | 显示全部楼层
上linux 它不香点吗

出0入0汤圆

发表于 2020-3-28 08:20:55 | 显示全部楼层
xjmlfm1 发表于 2020-3-21 22:41
握个爪,我们用RTX+TCPnet做一款产品也开发了一年多了,最近也是一个网络问题搞不定,搞不好也要换lwIP了, ...

TCPnet 啥问题啊,最近要用

出100入113汤圆

发表于 2020-3-27 13:51:48 | 显示全部楼层
honami520 发表于 2020-3-22 21:12
多谢各位的回复,有一些还是比较有启发的。
不过,我的问题和你们的都不一样,我正常通信都是没有问题的。 ...

如果已经明确问题触发的地方,就加代码规避吧,重启服务,重新建立连接。不然要去分析底层代码,工作量还是比较大。

出0入0汤圆

发表于 2020-3-27 11:11:23 来自手机 | 显示全部楼层
现在开源了,有问题可以直接去github上提,官方应该还会继续维护吧

出45入88汤圆

发表于 2020-3-27 10:59:00 | 显示全部楼层
一定要用现成的成熟平台

出0入0汤圆

发表于 2020-3-27 10:27:53 | 显示全部楼层
honami520 发表于 2020-3-22 21:12
多谢各位的回复,有一些还是比较有启发的。
不过,我的问题和你们的都不一样,我正常通信都是没有问题的。 ...

这种特定条件下出现的异常确实很头疼,就是个定时炸弹,如果真解决不了只能换其它网络协议栈。。。。

出0入90汤圆

 楼主| 发表于 2020-3-22 21:12:44 | 显示全部楼层
多谢各位的回复,有一些还是比较有启发的。
不过,我的问题和你们的都不一样,我正常通信都是没有问题的。问题是在某种组网模式下,拔掉服务器的网线后,才会出现这样的情况。

出0入0汤圆

发表于 2020-3-22 20:32:56 | 显示全部楼层
    嵌入式的设备使用简化的lwip协议,也会出现过10几分钟后,无法ping通的情况,后来通过wareshark分析,发现在主机每隔十几分钟更新arp缓存时,设备无法回应arp的请求,就无法ping通了。一直没有找到移植协议的问题,后来发现通过arp 设置静态的缓存,将设备的ip和mac地址写入静态arp表中,就能一直连接,就写了一个批处理命令自动运行,就先这样用了。

出0入0汤圆

发表于 2020-3-22 19:35:46 来自手机 | 显示全部楼层
高稳定要求的考虑UDP自定义协议吧,就类似串口

出0入10汤圆

发表于 2020-3-22 18:39:32 来自手机 | 显示全部楼层
感觉LWIP真香。新版有很多应用协议支持,拿来就用

出0入0汤圆

发表于 2020-3-22 17:40:23 | 显示全部楼层
guxingganyue 发表于 2020-3-22 11:22
看看我理解的对不,从下图看,设备是不知道自己所处的层级关系的,交换机也只做数据按端口转发,拓扑结构 ...

看几层的,二层交换机不改变端口也不改变MAC地址,级联也不变MAC地址的吧,三层交换机会变MAC,内网NAT会变端口

出100入113汤圆

发表于 2020-3-22 17:11:13 | 显示全部楼层
LWIP目前现场使用很稳定,如果在家里的时候就做过大量测试,其实也有一些坑需要自己填的。主要是存储空间分配要吃透。还有一些阻塞死的问题也与空间分配有关。做好链接异常检测和重连机制。目前现场网络异常重连很稳定。

出0入89汤圆

发表于 2020-3-22 16:58:38 来自手机 | 显示全部楼层
guxingganyue 发表于 2020-3-22 11:22
看看我理解的对不,从下图看,设备是不知道自己所处的层级关系的,交换机也只做数据按端口转发,拓扑结构 ...

这类我还是建议抓包看看

出0入0汤圆

发表于 2020-3-22 15:30:10 来自手机 | 显示全部楼层
xjmlfm1 发表于 2020-3-21 22:41
握个爪,我们用RTX+TCPnet做一款产品也开发了一年多了,最近也是一个网络问题搞不定,搞不好也要换lwIP了, ...

能说说具体什么问题吗,刚开始使用RLNET,好怕以后踩到这个坑……

出0入0汤圆

发表于 2020-3-22 11:42:00 | 显示全部楼层
我现在裸机的程序用网络的都是用自己写的协议栈(目前只有ICMP,ARP,UDP),比较好把控,在STM32平台和 ZYNQ7000平台都能稳定地运行。

出0入0汤圆

发表于 2020-3-22 11:22:49 | 显示全部楼层
honami520 发表于 2020-3-21 22:39
好比1级交换机下面挂2个交换机。然后交换机下面再挂2个交换机。然后再挂2个交换机。服务器在最下面。设备 ...

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

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2020-3-21 22:41:41 | 显示全部楼层
握个爪,我们用RTX+TCPnet做一款产品也开发了一年多了,最近也是一个网络问题搞不定,搞不好也要换lwIP了,悲催。

出0入90汤圆

 楼主| 发表于 2020-3-21 22:40:13 | 显示全部楼层
ddcour 发表于 2020-3-21 18:37
上过火星的ucos组件比不上一直开源的lwip么?

ucos上过火星,但是uc tcpip不一定上过啊。

出0入90汤圆

 楼主| 发表于 2020-3-21 22:39:42 | 显示全部楼层
guxingganyue 发表于 2020-3-21 22:19
如果服务器所处的位置在拓扑图里面比设备要低的时候  
这个 低 怎么理解啊 ...

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

如果服务器所处交换机等级比所有设备都高,就没有任何问题。

出0入0汤圆

发表于 2020-3-21 22:19:14 | 显示全部楼层
如果服务器所处的位置在拓扑图里面比设备要低的时候  
这个 低 怎么理解啊

出10入95汤圆

发表于 2020-3-21 18:37:52 | 显示全部楼层
上过火星的ucos组件比不上一直开源的lwip么?

出0入4汤圆

发表于 2020-3-21 18:03:53 | 显示全部楼层
谢谢提醒,最近也准备把 uc-tcp/ip 用起来。

出0入90汤圆

 楼主| 发表于 2020-3-21 17:40:01 | 显示全部楼层
是为了加快产品开发。如果一开始多花点时间上linux,现在可能就根本没有这些破事了。中间开发确实也很顺利很快。中间开发了3个版本。分别用于不同场合。
这一代的才发现这种问题。

出0入442汤圆

发表于 2020-3-21 17:26:45 来自手机 | 显示全部楼层
都zynq了干吗不上linux。。好歹驱动程序强壮度完全不是一个量级的。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 21:23

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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