搜索
bottom↓
回复: 20

问个关于UDP传输的问题“心跳包”可不可以是单向的

[复制链接]

出0入0汤圆

发表于 2010-3-3 16:04:13 | 显示全部楼层 |阅读模式
大家好  在下请教一个问题
      假若说,GPRS模块已经和服务器连接成功了。然后在模块这边每隔10S会给服务器上传一个数据,(说明一下,这个服务器只做接受数据不会回复任何数据给GPRS模块),那请问是不是过一段时间后模块和服务器就会失去链接了? 俺的意思是说 “心跳包”可不可以是单向的
请问有人知道吗? 谢谢

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2010-3-3 16:46:32 | 显示全部楼层
UDP是无连接的不可靠传输协议。

即发送端把数据打包,写上目的地址(IP/Port)丢出去,就不管了。目标是否收到这个数据包,收到后数据对不对;如果按顺序丢出去N包,接收端收到否,接受顺序如何。以上,UDP皆不保证。

最差情况就是中间路由全部Drop,接收端什么都没收到,这也是符合UDP协议的事情。

以上,请根据你的应用判定自定义的协议的合理性。

出0入0汤圆

 楼主| 发表于 2010-3-3 16:52:19 | 显示全部楼层
谢谢1楼的回答

出1070入962汤圆

发表于 2010-3-3 16:54:20 | 显示全部楼层
同意1楼

心跳包和具体协议无关,主要是维持GGSN里边动态分配的模块端口到外网端口的映射关系,由于端口总数有限,所以超过一定时间这个端口没有数据转发的话,系统会删除这个对应关系,外网端口重新分配给别人使用,如果这时再要使用,需要再次申请。心跳包就是避免这个映射关系被自动删除的。

出0入0汤圆

发表于 2010-3-3 16:56:28 | 显示全部楼层
回复【3楼】Appcat  苹果猫
同意1楼
心跳包和具体协议无关,主要是维持GGSN里边动态分配的模块端口到外网端口的映射关系,由于端口总数有限,所以超过一定时间这个端口没有数据转发的话,系统会删除这个对应关系,外网端口重新分配给别人使用,如果这时再要使用,需要再次申请。心跳包就是避免这个映射关系被自动删除的。
-----------------------------------------------------------------------

    分析正确。

出0入0汤圆

 楼主| 发表于 2010-3-3 17:00:46 | 显示全部楼层
谢谢各位的回答,那就是说光光GPRS模块给服务器发数据还是不能维持链接,必须是服务器也要给GPRS模块发送数据才行。也就是双方必须进行数据的传送!

出1070入962汤圆

发表于 2010-3-3 17:06:50 | 显示全部楼层
光光GPRS模块给服务器发数据是“足以”维持链接,特别是TCP协议,虽然发送动作是单向的,但是TCP协议本身是握手的,就是双向都有流量的。

出0入0汤圆

 楼主| 发表于 2010-3-3 17:18:09 | 显示全部楼层
哦!谢谢猫老大的回答

出0入0汤圆

发表于 2010-3-3 17:52:34 | 显示全部楼层
得区分tcp还是udp,配置上都是gprs终端给服务器发心跳,是单向的,
在模块这边每隔10S会给服务器上传一个数据,如果是tcp连接,gprs是不会掉线的,
除非服务器宕掉了

出0入0汤圆

发表于 2010-3-3 19:48:32 | 显示全部楼层
谢谢各位高手

出0入0汤圆

发表于 2010-3-3 19:49:44 | 显示全部楼层
学习了。谢谢

出0入0汤圆

发表于 2010-3-3 20:28:24 | 显示全部楼层
单向发心跳包足以维持 GPRS 或 NAT 的网关 UDP 端口映射

但你总得有个反馈机制才真正有数据通讯的意义,服务器完全不向终端发出信息的话,很容易就会因为一些简单的故障导致程序逻辑上的连接丢失,很可能一段时间後,你会发现几乎所有的终端都已经死活不知了——而你还没办法简单的解决它

最好还是重新规划一下这个数据传输的架构

出1070入962汤圆

发表于 2010-3-3 21:31:10 | 显示全部楼层
同意水猫,所以建议还是使用TCP协议,自己需要做的数据差错控制工作量可以忽略不计。

出0入0汤圆

发表于 2010-3-4 11:07:57 | 显示全部楼层
回复【12楼】Appcat 苹果猫
-----------------------------------------------------------------------
咨询一下,有没有便宜些的短信模块?收到的短信通过串口发出来,串口收到的内容通过短信发出去。

出1070入962汤圆

发表于 2010-3-4 12:30:18 | 显示全部楼层
任何一个模块,短信都是从串口进出的,尽管挑最便宜的好了,二手的TC35i品相好的才70元。当然短信的编解码还是要自己在外部做好的。

出0入0汤圆

发表于 2010-3-4 12:48:50 | 显示全部楼层
不好意思,没说清楚,如果直接和gsm模块打交道,要用到at指令,我们想要的是类似于“透传”这样的模块,不用直接处理at指令。

模块引出的就是rs232接口,收到短信后直接从串口把短信的“文本内容”发出来,不用查询,也不用解码。

不知道有没有这样的模块。

出1070入962汤圆

发表于 2010-3-4 12:51:24 | 显示全部楼层
你说的这种是短信DTU,出货量很小,没有便宜的,价格是模块的很多倍。

出0入0汤圆

发表于 2010-3-4 18:12:28 | 显示全部楼层
回复【13楼】javenreal  
-----------------------------------------------------------------------

用W801模块,满足您的要求

出0入0汤圆

发表于 2010-6-1 08:54:26 | 显示全部楼层
谢谢解答回复【3楼】Appcat  苹果猫
-----------------------------------------------------------------------

出0入0汤圆

发表于 2010-6-1 13:48:34 | 显示全部楼层
学习下

出0入0汤圆

发表于 2013-7-14 19:15:53 | 显示全部楼层
学习了   
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 04:25

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

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