基于TCP IP长连接银联通信模块的设计.docVIP

基于TCP IP长连接银联通信模块的设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于TCP IP长连接银联通信模块的设计

基于TCP IP长连接银联通信模块的设计   摘 要:在银联交易中,各个入网机构与CUPS(中国银联信息处理中心系统)之间采用长连接的方式,即socket连接建立后,除非发生异常导致连接中断,否则不再关闭连接。为了保证通讯的稳定和高效,在银联技术规范2.0中引入了“组”的概念,指对多条连接进行分组,当同组内有一条连接中断时,要关闭组内的所有连接,并重建这些连接。描述了入网机构金卡前置机以组为单位的连接形式的设计与实现,重点对管理模块、发送模块和接收模块等部分进行了描述。   ?   关键词:TCP/IP通信;长连接;连接组?   中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2012)003-0087-03??   ?   作者简介:李素若(1969-),男,湖北荆门人,武汉理工大学硕士研究生,荆楚理工学院计算机工程学院副教授,研究方向为软件工程和数据库。      0 引言?   TCP/IP长连接通信是指 Client 方与 Server 方先建立通讯连接,连接建立后不会断开,然后再进行报文发送和接收,报文发送与接收完毕后,原来的连接不会断开而继续存在,因此可以连续进行交易报文的发送与接收。在实际应用中TCP/IP长连接主要面临的问题是:由于只需建立一次连接,如果通信过程中连接断开而发送方使用write()或send()函数发送数据时并不马上报错,直到通信缓冲区阻塞溢出或TCP/IP资源耗尽导致系统报错。目前解决这个问题主要有两种方法,一种方法是在client端启动一个进程在一定间隔时间内向Server端发ping命令测试线路是否保持连接状态,如果Client端数量很大,大量发出ping包可能导致Server端通信堵塞;另一方法是在联机交易空闲时间间隔内Client端向Server端发送测试包(空包),在规定时间内能接受到返回包来测试线路。?   在银联交易中,基于长连接中存在的问题,中国银联在《银行卡联网联合技术规范V2.0》中对通信接口规范作了相关规定:?   (1)对于入网机构和处理中心之间的多条通信连接,增加“连接组”的概念。“连接组”的含义是指对多条通信连接进行分组,同组的一条连接中断时,要关闭同组内的其它连接并重建该组的所有连接。?   (2)针对单工连接,该规范规定了3种情况。?   第一种情况:在一个连接组中,如果入网机构发现它的发送连接中断,则关闭同组内的其它连接,并向处理中心发起连接请求,重建该组内的所有连接。 ?   第二种情况:在一个连接组中,如果入网机构检测到该连接已被中断或在5分钟之内在某接收连接上没有收到任何报文(包括空闲连接查询报文),则认为该连接已经中断,将关闭在本连接组内的所有连接,并向处理中心发起连接请求,重建该组内的所有连接。 ?   第三种情况:在一个连接组中,对于任意一个连接对,如果处理中心发现该连接的发送连接中断,而其相应的接收连接正常时,则处理中心首先关闭该接收连接,然后回复到侦听状态,等待接收入网机构重新建立连接的请求。 ?   1 设计图?   根据银联通信接口规范,入网机构前置机采用TCP/IP长连接的单工方式,采用2进2出4条连接,具体连接见图1所示。?      2 详细设计?   2.1 manager设计?   manager功能模块被设计管理同一“连接组”内的所有连接。具体的功能如下:①等待接收来自sender和receiver发来的状态消息(一般指通讯故障或者超时);②发送消息通知sender跟CUPS建立连接(或重新建立连接);③发送消息通知sender跟CUPS断开连接(关闭连接);④发送消息通知receiver在特定端口诊听来自CUPS的连接请求;⑤发送消息通知receiver在特定端口断开与CUPS的连接,并继续诊听下一个连接。?   manager处理sender和receiver发来的消息的方式如下:?   (1)如果是sender发来的消息(一般指连接中断消息),说明发送连接中断,则manager应该关闭它管理的所有连接,并重建这些连接。?   (2)如果是receiver发来的消息(包括连接中断和超时消息),说明接收连接中断,manager关闭它所管理的所有连接,并重建这些连接。?      图3 manager流程?   2.2 sender设计?   sender表示一个用来发送数据的进程,它建立一个与服务器的socket连接,并一直保持该连接。manager根据配置文件中的设置,启动一个或多个sender进程,由它们共同负责发送数据。当连接中断时,它们会向manager发送一个连接中断消息,由manager进行处理。一个sender进程的工作流程按照以下步

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档