- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
工业手持终端通信设计
工业手持终端通信设计
该通信方案以工业手持终端现场应用为背景,针对传统以太网在工业通信中实时性差的问题,提出了一种发送心跳包,建立socket长连接的方法,由此来减少通信过程中频繁建立和关闭连接所消耗的时间。运用XMPP协议实现轻量级、简单实用的消息推送组件,可以进行服务端消息推送从而代替了传统的客户端轮询机制,缩短了响应时间,提高了整个系统的实时性。
1 引言
近年来,由于以太网开放程度高、数据吞吐量大、通信速率快等特点,使其成为各行各业最受欢迎的通信网络之一。它不仅垄断了办公自动化领域的网络通信,而且广泛应用于工业控制领域资源管理等中上层通信网络,并有向下应用于工业控制现场的趋势。实时性差是它应用于工业现场的一大障碍。为解决上述问题,人们提出了很多方法,如在原有以太网基础上修改开发新的实时通信协议,但这又面临着开发难度较高且周期漫长的问题;又如对原有硬件进行改动等方法,但这些又无疑加大了工业的应用成本。为此,本文提出了一种基于socket的局域网实时通信的设计和实现方法,并深入探讨了socket的工作原理和通信方式。而且结合实际应用需要,详细阐述了通过心跳机制和消息推送的方法来提高工业终端实时通信的原理及其实现流程。
2 Socket的工作原理和运行过程
Socket又称套接字,是对传输层协议(UDP和TCP)的一种封装。应用层的程序通过传输层协议进行数据的传输,而socket的作用是将应用层的程序添加到网络中,然后和其他处于同网络中的应用层程序进行通信。简单来说,socket是传输层供给应用层的函数调用接口,它提供了程序内部与外界通信的端口并为通信的双方提供了数据传输的通道。Socket的工作原理如图1所示:
2.1 Socket通信方式
根据不同的通信协议,socket共有3种常见的通信方式:原始套接字(sock_ram)、数据报套接字(sock_dgram)、流套接字(sock_stream)。流套接字是面向有连接的传输协议,能提供可靠的数据传输,但是频繁的数据传输,会多次建立、关闭连接,消耗的时间久,影响传输的实时性;数据报套接字是无连接的传输协议,数据传输速度快,但是不能保证数据传输的准确性;原始套接字能直接访问底层协议,主要应用于一些协议的开发,功能虽然强大但使用较为不方便。
考虑到手持终端主要应用于工控领域,应该在保证数据准确性的前提下,再去考虑数据传输的实时性。因此选择面向有连接的能提供可靠数据传输的TCP协议来进行传输。TCP连接通信程序设计框图如图2所示。
2.2 TCP连接传输模型
运用TCP协议,正常情况下的数据包传输过程为:建立连接→数据传输→关闭连接→建立连接→数据传输→关闭连接→……→关闭连接,传输模型如图3所示:
由图3可以看出,每次数据传输,TCP协议都要建立连接和关闭连接。每次TCP建立连接需要3次握手才能建立成功,对实时性要求高的场合,这种传输方式太浪费时间。若一次连接建立成功后,每次数据传输完成都不再关闭连接,下次若有数据包需要发送时,则不用再建立和关闭连接,而是直接进行数据包发送。这样就可以避免中间环节频繁建立和关闭连接消耗大量时间,传输速度因此会提高很多,实时性得到很大改善。
根据上述分析,若建立这样的连接后,不主动人为关闭它,则认为如果没有特殊情况影响,其会一直处于连接状态。但是在实际应用中,若服务器与客户端在一段时间内没有传输数据时,其连接可能会变成“休眠”状态,甚至断开;其次,中间节点若出现什么故障也是难以知道的,造成用户不能及时地发现和解决问题。若出现上述两种状况,用户的状态就可能得不到实时有效的更新,造成的损失也是无法预知的。因此,如果想维护、检测连接,则需要在服务器和客户端制定一个通讯协议。每隔一定时间,若没有数据传输,则由一方发起,向对方发送数据包。若对方收到这个数据包,则按指定好的通讯协议回一个数据包;若发起方没有收到回复,则判断网络出现问题,服务器可及时地断开连接,客户端也可以及时得到重连的机会,这样的协议类似于心跳机制。
3 心跳机制
3.1 心跳原理分析
心跳模型旨在让客户端和服务器获取对方的连接状态,以保证连接正常,顺利进行通信服务。
常规的心跳机制有2个特征。特征一,它像心跳一样每隔固定时间发一次,服务器收到心跳包后,返回给客户端一个数据包,客户端若在规定的时间内没有收到该心跳数据包,则判断为连接断开,通信异常。特征二,心跳协议数据包的主动发送方既可以是服务器,也可以是客户端,但考虑到易操作性和效率,选择客户端作为主动发送方,给服务器发送心跳包。
通过上述了解可知,心跳旨在维护连接、检测连接状态。在传输数据很频繁的时间段,这种心跳机制(特征一)就没有必
您可能关注的文档
最近下载
- 课件--纳米氧化钛光催化材料.ppt VIP
- Christie科视Christie D4K3560 Setup Guide-中文用户手册.pdf
- 重庆工商大学考研真题管理类综合2017.doc VIP
- 重庆工商大学811管理类综合历年考研真题汇编(含部分答案)_last.pdf VIP
- 重庆工商大学811管理类综合历年考研真题汇编(含部分答案).docx VIP
- 6hp28 6速自动变速器变速器说明.pdf VIP
- 电路板维修培训.pptx VIP
- 《中国经济贸易地理》课件.ppt VIP
- YDT3168-2016 公众无线局域网设备射频指标技术要求和测试方法.pdf VIP
- 核心素养下情境创设在初中英语听说课中的运用.pptx VIP
原创力文档


文档评论(0)