1、中国银联股份 公布-11-02实施-11-02公布中国银联银行卡联网联合技术规范V2.1第5部分 通信接口规范Technical Specifications on Bankcard Interoperability V2.1Part 5 Specification on Communication InterfaceQ/CUP 006.5替换Q/CUP 006.5Q/CUP中国银联股份企业标准目 次前 言II1 范围12 银联网络概述12.1 规范要求12.2 银联网络拓扑结构12.3 入网机构接入线路选择13 网络接口23.1 入网机构物理接入方法23.2 接入设备要求34 通信接口协议4
2、4.1 概述44.2 通信配置54.3 协议定义12参考文件22附录A (资料性附录) 入网机构通讯线路数量计算标准23前 言本标准对中国银联跨行交易网络中联机交易和文件传输通信接口应满足要求做了要求,包含通信链路选择、接入方法选择、接入设备要求和通信协议要求。本标准由中国银联股份提出。本标准由中国银联股份制订。本标准起草单位:中国银联股份、中国入网机构。本标准关键起草人:戚跃民、郭锐、郑澎、徐静雯、李洁、吴金坛、王力斌、苗恒轩、万高峰、陆尔东、蒋慧科、杜秉一、赵伟。中国银联银行卡联网联合技术规范V2.1第5部分 通信接口规范1 范围本标准要求了中国银联跨行交易网络中联机交易和文件传输通信接口
3、应满足要求,包含通信链路选择、接入方法选择、接入设备要求和通信协议要求。本标准适适用于全部加入中国银联银行卡信息交换网络入网机构。2 银联网络概述2.1 规范要求银联网络要求稳定可靠、结构简单、便于维护管理。入网机构必需遵照本规范对网络通信接口方面要求,建设和银联网络接口,保障各入网机构和银联网络之间互联互通,并提供银行卡信息安全、稳定、可靠存取控制。2.2 银联网络拓扑结构银联网络是一个二层网络结构,其中网络节点按层次不一样,可划分为:关键节点:上海信息中心/北京信息中心;骨干节点:银联分企业,如Error! Reference source not found.所表示。图1 银联网络结构示
4、意图全国性入网机构和境内外资银行,(如全国性商业银行总行、汇丰银行境内机构)直接和上海信息中心和北京信息中心连接,属于直接接入机构。间接接入机构,如当地农村信用社或城市商业银行,选择当地银联分企业接入银联网络;而全国性入网机构在各地分之机构可选择当地银联分企业接入,也能够采取总对总方法,经过其全国性入网机构接入银联网络。2.3 入网机构接入线路选择2.3.1 直接接入机构接入线路选择依据现在运行商分布情况,电信关键服务中国南方地域,而新联通关键服务中国北方地域,所以对于全国性入网直接接入机构和境内外资银行接入要求以下:采取电信SDH线路和上海信息中心互联,对于交易量大机构可采取MSTP方法进行
5、接入。采取新联通SDH线路和北京信息中心互联,对于交易量大机构也能够采取MSTP方法接入。2.3.2 间接接入机构接入线路选择银联分企业和间接接入机构在通讯接入线路上选择视各地域具体情况确定,但每一个接入机构全部应有主备通讯设备和主备通讯线路,而且主备线尽可能选择当地不一样运行商,预防通讯设备和线路单点故障。3 网络接口3.1 入网机构物理接入方法3.1.1 直接接入机构接入方法对于全国性入网机构和境内外资银行经过直接和上海信息中心、北京信息中心互联方法接入,而且选择电信、新联通运行商SDH或MSTP线路。以下图:图2 直接接入机构接入方法 3.1.2 间接接入机构接入方法间接接入机构,可采取
6、就近接入方法,依据当地实际情况选择1-2家不一样运行商专线接入当地银联分企业。以下图:图3 间接接入机构接入方法对于上述两种接入方法说明以下:直接接入机构须采取电信和新联通两个不一样运行商SDH或MSTP线路和上海信息中心、北京信息中心互联。间接接入机构能够依据具体情况选择其它通信链路方法(提议使用SDH、MSTP线路),但必需满足本规范中使用两条通信链路和备份链路要求。正常情况下,两条链路分别承载实时交易数据和非实时数据,当任何一条链路中止时,另外一条中继线路能够承载全部数据。为了确保实时交易数据总是被优先处理,提议在路由器上对交易数据流使用LLQQos策略。3.2 接入设备要求3.2.1
7、基础要求银联要求各入网机构选择路由器作为广域网接入设备。路由器是广域网(WAN)之间互连关键设备。路由器支持不一样广域网物理接口,能够实现负载平衡,阻止广播风暴,控制网络流量和提升系统容错能力。3.2.2 设备接口要求3.2.2.1 物理接口入网机构和银联网络互连广域网设备应支持下述接口:a) 高速同时串行接口b) G.703-E1接口c) 10Base-T和100Base-T接口3.2.2.2 互联使用协议a) 互联线路使用封装协议:HDCLPPPEthernetb) 互联使用路由协议: 静态路由常见动态路由协议c) 网络管理/安全协议:SNMPTelnet Remote AccessAcc
8、ess Lists (Routing)Debug CommandsPing CommandsSyslogEvent Logging3.2.3 网络互联和线路切换3.2.3.1 直接接入机构互联和线路切换直接接入机构采取浮动静态路由或动态路由协议实现和上海信息中心或北京信息中心互联互通。在配置中确保互联上海信息中心线路为主用线路,当该线路故障时,机构路由能自动切换至和北京信息中心备用线路上,而当主用线路故障恢复后,路由又能自动回切至主用线路上。以下图:3.2.3.2 间接接入机构和银联分企业互联和线路切换间接接入机构和银联分企业采取浮动静态路由实现互联互通。当根本中止时,机构路由能自动切换至备线
9、上,当根本恢复时,路由能实现自动回切。以下图:4 通信接口协议4.1 概述银联处理中心和入网机构在物理通讯线路连通基础上,需要双方建立一定通信连接并制订对应通信控制协议,实现双方之间联机报文处理和文件传输。银联处理中心和入网机构应依据实际需要,在以下方面满足通信要求:a) 银联处理中心和入网机构建立通信连接方法;b) 双方采取通信协议;c) 双方通信设备上运行通信软件。4.1.1 通信连接选择在TCP/IP协议基础上,使用socket编程接口编写通信程序。一个socket连接由当地IP地址、端口号和远端IP地址、端口号唯一确定。图4 socket连接示意图银联处理中心和入网机构建立socket
10、连接种类应能满足业务处理要求。对于实时性要求高联机交易,银联处理中心和入网机构建立连接是长连接,银联处理中心将不再支持短连接方法。对于实时性要求不高文件传输,银联处理中心和入网机构采取短连接方法。4.1.2 协议和通信设备要求银联处理中心向入网机构提供TCP/IP协议通信接口,和入网机构通信程序使用套接字(socket)技术编写。在银联处理中心一侧,通信服务器上安装有和入网机构通信socket通信软件,该软件提供通信接口符合本规范通信控制协议。在入网机构一侧,通信主机上也应安装有对应通信软件,该通信程序也应符合本规范要求通信控制协议,实现和银联处理中心通信。入网机构路由器广域网口应对银联处理中
11、心开放,使银联处理中心能够经过简单网络管理协议或网络连通测试等方法取得和各入网机构通信连通情况信息,便于银联处理中心对通信网络进行监控和管理。4.2 通信配置4.2.1 IP地址和端口号配置各入网机构接入银联网络使用IP地址由银联处理中心统一分配。入网机构和银联处理中心通信所用端口号由双方各自决定。测试系统和生产系统使用不一样IP地址。4.2.1.1 联机交易IP地址和端口号配置银联处理中心使用多台联机交易通信服务器和一个入网机构通信,每台通信服务器应有一个IP地址。为了便于管理和配置和提升系统可用性,在每一个IP上,银联处理中心经过分配不一样端口号和入网机构建立多条连接,每个端口号只能建立一
12、条socket连接,以下图所表示。图5 银联处理中心和入网机构联机交易连接示意图在Error! Reference source not found.中,IP1和IP2port1和port2均用于和入网机构1连接,port3和port4用于和入网机构2连接。一样,入网机构也要为银联处理中心提议建立每条连接指定不一样端口号,指定端口号均应介于1024和65535之间。4.2.1.2 文件传输IP地址和端口号配置银联处理中心使用多台文件服务器和入网机构进行文件传输。在分配给机构ip上,银联处理中心给入网机构指定建立连接端口号,入网机构也要为银联处理中心指定建立连接对应IP地址和端口号。图6 银联处
13、理中心和入网机构文件传输连接示意图4.2.1.3 IP地址和端口限制在联机交易中,银联处理中心为每个入网机构分配联机交易通信服务器或文件服务器IP地址和端口号全部已经确定。为了便于管理和保障系统安全性,银联处理中心不许可入网机构使用提供给其它入网机构IP地址和端口号。银联处理中心通信程序对请求建立连接远端IP地址做正当性检验,假如是要求IP地址则许可建立连接,不然拒绝连接。图7 IP地址和端口限制示意图4.2.2 连接数目和方法4.2.2.1 联机交易连接数目和方法联机交易采取长连接方法。Socket连接建立后,除非发生异常中止,不然双方不再关闭连接,一直保持连通状态,双方能够直接发送或接收数
14、据。银联支持入网机构采取单工和双工两种通讯方法接入。4.2.2.1.1 单工方法单工方法是指一条连接只用于单方向接收或发送。只用于发送交易报文长连接称为发送长连接,只用于接收交易报文长连接称为接收长连接。由一条发送长连接和一条接收长连接组成一个通讯连接对。对于单工方法本规范要求:(1)在一个连接对中,假如是入网机构发觉它发送长连接中止,则关闭连接对中接收长连接,并向处理中心重新提议连接请求,重建连接正确网络连接,重建时不能对其它连接对断链重连。(2)在一个连接对中,假如入网机构检测到,发送长连接或接收长连接已经被中止,则认为该连接对已经中止,将关闭本连接对中全部连接,并向处理中心提议连接请求。
15、假如入网机构检测到3分钟之内在接收连接上没有收到任何报文(包含空闲连接查询报文),则认为该接收连接已经中止,将关闭本连接对中发送长连接,并向处理中心提议连接请求,重建该连接正确网络连接,重建时不能对其它连接对断链重连。(3)在一个连接对中,假如处理中心发觉连接对中发送长连接中止,而对应接收长连接正常时,则处理中心首先关闭接收长连接,然后恢复到侦听状态,等候入网机构重新提议建立连接请求。假如处理中心检测到3分钟之内在接收连接上没有收到任何报文(包含空闲连接查询报文),则认为该接收连接已经中止,将关闭本连接对中发送长连接,然后恢复到侦听状态,等候入网机构重新提议建立连接请求。(4)只要处理中心接收
16、到入网机构建立发送长连接请求,即使此时处理中心发送长连接是正常,也需要断开目前发送长连接,根据入网机构请求重建新发送长连接。图8 联机交易连接示意图入网机构和银联处理中心建立长连接数应和入网机构交易量相关。银联处理中心提供二进二出共四条单工长连接到八进八出共十六条单工长连接连接方法,入网机构应依据自己交易量大小选择其中之一。图9 二进二出单工长连接示意图图10 四进四出单工长连接示意图银联处理中心给每个入网机构指定最少两台通信服务器,所以入网机构和银联处理中心连接对必需是偶数,每台通信服务器上连接数最少是一进一出两条单工长连接。六进六出单工长连接和八进八出单工长连接示意图均类似Error! R
17、eference source not found.和Error! Reference source not found.。在系统运行中,应对具体连接数目做参数化管理,能够依据入网机构具体交易量大小情况做调整。4.2.2.1.2 双工方法双工方法是指一条连接既做为接收长连接又作为发送长连接,仅由一条连接就完成了接收和发送功效。对于双工方法本规范要求:(1)在双工方法中,假如入网机构检测到,该连接已经被中止,则关闭本连接,并向处理中心提议连接请求,重建连接正确网络连接。(2)假如入网机构检测到3分钟之内在连接上没有收到任何报文(包含空闲连接查询报文),则认为该连接已经中止,将关闭本连接对,并向处
18、理中心提议连接请求,重建该连接正确网络连接。(3)在双工方法中,假如处理中心发觉连接中止,则处理中心将恢复到侦听状态,等候入网机构重新提议建立连接请求。假如处理中心检测到3分钟之内在连接上没有收到任何报文(包含空闲连接查询报文),则认为该连接已经中止,将关闭本连接对,处理中心将恢复到侦听状态,等候入网机构重新提议建立连接请求。(4)只要处理中心接收到了入网机构建立连接请求就应该立即响应。图11 联机交易连接示意图入网机构和处理中心建立长连接数应和入网机构交易量相关。处理中心提供两条双工长连接到八条双工长连接连接方法,入网机构应依据自己交易量大小选择其中之一。处理中心给每个入网机构指定最少两台通
19、信服务器,所以入网机构和银联处理中心双工长连接必需是偶数,每台通信服务器上连接数最少是一条双工长连接。在系统运行中,应对具体连接数目做参数化管理,能够依据入网机构具体交易量大小情况做调整。4.2.2.1.3 支持应答报文原路返回应答报文原路返回含义是:支持在回送应答报文时使用该交易请求报文上送时线路进行回送,机构能够选择是否要求CUPS对应答报文原路返回。假如入网机构没有选择开启此功效,则入网机构作为受理方上送交易经过CUPS处理后,将应答报文发送给入网机构时,将在入网机构和CUPS已经建立通信线路中任意选择一条线路作为报文返回线路。假如入网机构选择开启此功效,则入网机构作为受理方上送交易经过
20、CUPS处理后,将应答报文发送给入网机构时,将选择入网机构上送报文时使用线路作为报文返回线路。若在返回应答时,发送请求时线路和CUPS断开,机构能够选择由CUPS将应答报文经过其它工作正常线路返回,机构也能够选择由CUPS丢弃此应答报文。即使真正含义上原路返回为上文定义内容,但银联处理中心还支持更广义概念,能够提供以下两个粒度原路返回功效:1、对机构通讯主机,银联可提供通讯主机组管理,原路返回粒度可控制到该组。即,只经过该组内连接返回,但并不是提议请求连接。这么能够控制是返回到同一个处理中心,还是返回到同一台通讯主机;2、对机构通讯主机,银联还可提供单个IP管理,原路返回粒度可控制到该IP。即
21、,只经过该IP中连接返回,但并不是提议请求连接。所以,银联处理中心是提供了更为广义“线路组原路返回”概念。即,交易应答能够经过和交易请求上送线路在同一组任一线路返回。线路分组方法能够应入网机构要求采取不一样策略(比如:入网机构侧属于同一个中心/同一台服务器/同一个IP线路分在同一组)。4.2.2.2 文件传输连接数目和方法入网机构和银联处理中心之间文件传输不是实时性联机业务,所以要求使用短连接方法。双方建立一条全双工连接,连接建立后,双方在同一条连接上收发请求和应答。当文件传送完成后,双方关闭连接。图12 文件传输连接示意图4.2.3 通信负载均衡银联处理中心和每个入网机构建立多条连接不仅为了
22、预防单点故障,还应在多条通信连接上实现通信负载均衡。比如,银联处理中心经过两条或四条发送连接向入网机构发送报文时,能够采取简单轮询方法,即从第一条发送连接开始路由,第一个报文从第一条发送连接发送,第二个报文从第二条发送连接发送,依次类推,到最终一个连接时再路由到第一条可用发送连接。图13 简单轮询方法除了简单轮询方法,还能够经过监测各通信服务器和各条连接负载情况动态调整各条连接路由选择。经过将银联处理中心和入网机构之间通信负载合理分配到各条连接和各台通信服务器上,能够预防出现某台通信服务器上处理压力过大问题。4.2.4 Socket选项设置在利用socket技术编写通信程序时,为了确保通信双方
23、能够正常通信,需要设置相关选项,其中有选项是协议相关。在不一样系统中,socket选项有不一样默认值。这里只要求多个关键socket选项设置,其它选项均使用系统默认值。a) 保持socket“LINGER”选项为缺省状态,即“关闭”状态。这个选项影响到使用TCP协议socket关闭操作行为。设置该选项为“关闭”状态,使socket关闭操作保持默认行为,即close()函数调用立即返回,假如socket发送缓冲区中还有数据,则系统会发送这些数据。b) 设置socket“REUSEADDR”为“打开”状态。设置这个选项能够确保socket监听进程在异常退出并重新开启后,仍能够成功绑定到原监听端口。
24、该选项关键用在监听socket连接请求服务器端。c)设置socket“KeepAlive”为“打开”状态,设置这个选项能够确保在socket连接没有流量时,自动开始发送KeepAlive侦测包,侦测socket是否已经断开。4.3 协议定义4.3.1 参考资料相关TCP/IP协议背景信息和协议定义能够参考以下文档:a) RFC 791 Internet Protocol for the IP protocol;b) RFC 792 Internet Control Message Protocol for the ICMP protocol;c) RFC 793 Transmission Co
25、ntrol Protocol for the TCP protocol;d) RFC 1122 Requirements for Internet Hosts Communication Layers;e) RFC 1123 Requirements for Internet Hosts Application and Support;g) RFC 959 File Transfer Protocol。4.3.2 协议定义范围本节叙述通信控制协议以TCP/IP协议为基础,要求了银联处理中心和入网机构之间建立多条socket连接方法,双方在多条连接上传输报文方法和通信异常检测和处理方法。4.3.
26、3 基础要求4.3.3.1 数据编码格式银联处理中心和入网机构之间传送全部数据均是八位二进制数据,没有特殊含义字符和控制字符。4.3.3.2 通信接口和业务步骤无关性通信接口程序不对交易报文类型作识别,不对报文内容作处理。所以,业务步骤上任何变动对通信接口程序无影响,反之亦然。4.3.4 联机交易控制协议4.3.4.1 建立连接4.3.4.1.1 连接建立过程银联处理中心和入网机构在建立连接时,采取是clientserver方法。服务方监听用户连接请求,用户方调用connect()发送连接请求,开始TCP三步握手过程。双方连接建立过程以下:图14 连接建立过程a) 服务方调用accept()准
27、备接收连接请求;b) 用户方调用connect()提议连接请求,使用户方TCP发送同时数据段(SYN段)。服务方TCP收到后返回应答(ACK段),同时发送自己同时数据段。用户方connect()调用返回;c) 用户方TCP对服务方同时数据段返回应答,连接建立,服务方accept()调用返回。当连接成功建立或发生错误时,用户方connect()调用返回。可能发生错误有以下多个情况:a) 用户方TCP在一定时间内没有收到SYN段应答,调用返回超时错误ETIMEDOUT。不一样系统要求超时时间从75秒到几分钟不等。b) 假如服务方TCP给用户方TCP重置应答RST,调用返回连接拒绝错误,说明在服务方
28、没有监听进程运行,或监听进程已退出。c) 假如网络中某路由器返回目标不可达ICMP应答,则用户机系统会重发连接请求直到超时,此时调用返回主机不可达错误EHOSTUNREACH。Connect调用使用户端TCP从CLOSED状态转变到SYN_SENT状态。假如连接成功建立,则转变到ESTABLISHED状态。假如犯错,则socket不再可用,必需被关闭。图15 socket连接建立状态转换图4.3.4.1.2 连接建立时序对于单工方法而言,在银联处理中心和入网机构初始建立连接时,要求先由入网机构提议连接请求。银联处理中心在监听端口监听入网机构连接请求,在接收到入网机构连接请求并经过正当性检验后,
29、依据入网机构IP地址和监听端口号向入网机构提议连接请求,完成一进一出两条单工长连接建立。在该连接正确建立过程中,银联处理中心将设置一进一出两条单工长连接建立最长时间间隔参数值。假如中心建立好接收连接后,在最长1分钟内仍无法建立和机构发送连接,则中心主动断开和该发送连接相对应接收连接,回复到侦听状态,等候接收入网机构重新建立连接请求。建立其它连接过程和此相同。假如建立连接过程超时或发生错误,则关闭当地socket后,重新建立连接。假如一条连接中止需要重新建立,则应根据Error! Reference source not found.节描述分情况处理。下图说明连接建立时序:图16 银联处理中心和
30、入网机构单工连接时序图对于双工方法而言,在银联处理中心和入网机构初始建立连接时,要求先由入网机构提议连接请求。银联处理中心在监听端口监听入网机构连接请求,在接收到入网机构连接请求并经过正当性检验后,连接即告成功,完成了一条双工长连接建立。下图说明连接建立时序:图17 银联处理中心和入网机构双工连接时序图4.3.4.2 报文格式银联处理中心和入网机构之间交易报文封装在IP数据包内,经过TCP/IP协议传送。每一个报文由四字节报文长度和报文数据组成,如Error! Reference source not found.所表示。因为TCP数据是一个“流”概念,报文边界不易确定,所以在每个报文前提供四
31、个字节报文长度值,用来确定每个报文长度。本规范要求报文最大长度不超出2048字节。报文数据格式可参见报文接口规范说明。报文长度是四个字节ASCII码串,指明后面报文数据长度,但该长度不包含报文长度域本身四个字节值。经过报文长度域,报文接收方能够很轻易确定每个交易报文长度。报文长度报文数据描述长度(字节)报文长度4报文数据不定长图18 数据报文格式说明4.3.4.3 数据传输控制4.3.4.3.1 传输方法银联处理中心和入网机构之间socket连接初始化过程完成后,双方可开始报文交换。双方采取异步传输方法传输交易报文,即一方发送一笔交易请求后,无须等候对方应答,能够接着发送下一笔交易请求。因为银
32、联处理中心和入网机构存在多条socket连接,应答报文从哪条连接返回不确定。对此,应用层上业务处理步骤必需加以判定处理。发送方发送一个交易请求后,因为通信链路中止或其它通信异常情况发生,发送方将不能确保接收方一定能够收到报文数据。在通信异常情况下,发送方多表现为发送数据超时,所以在应用层业务步骤上要有对应超时控制。4.3.4.3.2 报文发送和接收报文发送一方发送报文数据,调用write()返回后,准备下一笔报文数据发送。报文接收一方调用read()接收报文,当有报文数据抵达后读调用返回。图19 报文发送和接收示意图接收方在读取数据时,应根据长度加报文再长度加报文方法,先读取四个字节长度,用于
33、确定报文实际长度,再按实际报文长度值读取其后报文数据。假如接收方一次读取没有接收到完整报文,必需再次读取直到接收到要求长度报文数据。发送方发送报文时,先在报文前加上四个字节报文长度值再和报文一起发送。图20 报文流示意图接收方在读取数据过程中,网络有可能发生中止或发送方写数据进程意外退出甚至宕机,此时接收方要依据异常情况做对应处理。通信异常处理参见Error! Reference source not found.节。4.3.4.4 关闭连接处理这里要求是银联处理中心或入网机构需要正常关闭一个连接时要做处理。正常关闭一个socket连接需要经过四个步骤:图21 关闭socket连接过程a) 当
34、用户方调用close()主动关闭socket,该方TCP发送FIN段给服务方,表示结束发送数据;b) 服务方TCP接收到FIN段后,进入被动关闭socket过程。服务方TCP收到FIN段后,会通知服务方应用进程,read()调用会返回0;c) 服务方读调用返回0后,调用close()关闭socket,服务方TCP会向用户方TCP发送FIN段;d) 用户方TCP收到FIN段后,返回应答。从以上过程能够知道,当连接一方关闭socket后,另一方socket会得到通知。对于银联处理中心和入网机构接收连接,经过read()调用返回值能够取得该通知。对于发送连接,经过select()调用查询当地sock
35、et是否接收到通知数据。若有通知数据抵达,调用read(),若返回0表示对方socket已关闭。当银联处理中心或入网机构需要关闭一条发送连接时,先停止在该条连接上发送数据,然后调用close()关闭当地socket。接收方调用read()读取数据,当调用返回0时,表明发送方socket已关闭,并调用close()关闭当地socket。此时,双方完成连接关闭。4.3.4.5 空闲连接处理对于单工通信方法,假如银联处理中心或入网机构一条发送连接上超出2分钟没有发送报文数据,则向接收方发送“空闲连接查询”控制报文。该报文不带任何附加数据,并置报文长度域值为零。银联处理中心或入网机构通信层收到这么报文
36、后,直接丢弃该报文。图22 空闲连接查询报文格式假如接收方socket收到该控制报文,说明双方连接正常,假如在3分钟之内没有收到对方“空闲连接查询”控制报文,则说明接收长连接已经中止,需要关闭该连接socket,而且断开发送长连接。假如连接中止或接收方宕机、通信进程异外退出,发送方TCP会向当地socket返回对应错误通知,发送方依据read()调用返回错误信息做对应异常处理,参见Error! Reference source not found.节。假如接收方在接收连接上有3分钟未收到任何数据,此时,若入网机构作为接收方,则关闭该连接对,并重新向银联处理中心提议建立连接请求;若银联处理中心作
37、为接收方,则关闭该连接对,并恢复到侦听状态,等候入网机构重新提议建立连接请求。图23 空闲连接处理示意图对于双工通信方法,假如发送方或接收方中有一方检测到一条连接空闲超出2分钟,则经过该连接向对端发送一次空闲测试报文;对端收到该报文后直接丢弃。假如在3分钟之内没收到对端空闲连接测试报文或交易报文,此时,若入网机构作为接收方,则关闭该条连接,并重新向银联处理中心提议建立连接请求;若银联处理中心作为接收方,则关闭该连接,并恢复到侦听状态,等候入网机构重新提议建立连接请求。4.3.4.6 流量控制银联处理中心连接各入网机构,各入网机构报文全部要经银联处理中心转接。为了预防银联处理中心在交易高峰时段,
38、因处理数据量过大造成系统性能下降甚至瓦解,需要在银联处理中心和入网机构之间做通信流量控制。TCP协议窗口机制能够协调通信双方数据收发速度,含有一定流量控制作用。当接收方监测到应用层消息队列已满或将满时,经过“缓读”方法合适延长从接收连接上读取数据间隔,没有被读取数据缓存在socket连接缓冲区内。伴随缓冲区数据增加,TCP协议窗口机制会使发送方TCP减小数据发送量,未发送数据缓存在发送方缓冲区内。当发送缓冲区满时,发送方发送进程会被系统关键阻塞。接收方系统处理能力恢复正常后,恢复从接收连接上读取数据间隔,接收缓冲区数据降低经过TCP窗口机制使发送方TCP增大数据发送量,从而使发送缓冲区数据降低
39、,被阻塞发送进程恢复运行。银联处理中心除了通信层流量控制机制外,在应用层上也做了流量控制。当银联处理中心应用系统过忙时,银联处理中心通信网关在原始报文前加上新增报文头后返回给入网机构,新增报文头中拒绝原因码为系统忙。除银联处理中心进行流量控制以外,提议入网机构也需要有和之对应流量控制策略。这么在银联络统异常恢复以后,对于积压大量请求、应答或冲正交易应能够立即处理。基于此,提议入网机构在本身系统设计TPS(每秒交易量)峰值情况下,能够处理交易连续时间不低于30分钟。4.3.4.7 通信异常处理银联处理中心和入网机构通信连接跨越了广域网,广域网线路距离长、通信环境复杂,会产生多种通信异常情况。为此
40、,通信程序必需能够立即检测到通信异常发生并做对应处理,确保银联处理中心和入网机构联机交易正常进行。4.3.4.7.1 通信异常分析a) 接收方通信进程终止。图24 接收方进程退出造成通信异常通信进程终止原因包含正常退出、因实施犯错造成异常退出、进程被系统管理员强行终止等。此时,接收方socket可能被通信进程正常关闭,也可能未被正常关闭。在这种情况下,接收方TCP会向发送方TCP发送FIN段,发送方TCP向当地socket发送通知。在发送方经过select()调用能够捕捉该通知,调用read()会返回结果0。假如发送方继续向接收方发送数据,因为接收方socket已经关闭,接收方TCP会向发送方
41、TCP发送RST段。发送方收到RST段后,若调用read(),则返回连接重置错误信息。若调用write(),则返回写错误信息。需要说明是,在Unix平台上,当调用write()犯错后,系统会向通信进程发送SIGPIPE信号,而该信号默认行为将终止通信进程,故需要设置忽略该信号。b) 网络中止或接收方宕机。图25 接收方宕机造成通信异常图26 网络中止造成通信异常假如接收方宕机或网络发生中止,发送方socket不会收到任何通知报文。发送方发送数据后,发送方TCP重传机制会试图反复尝试发送数据。假如约9分钟后发送方TCP一直收不到应答,则返回错误信息,以后读写调用全部会犯错返回。read()调用会
42、返回超时错误或主机不可达错误。c) 接收方宕机后重启。图27 接收方宕机重启造成通信异常假如接收方宕机后重启,则接收方TCP不保留原来连接信息。接收方宕机后,假如发送方没有发送数据,则发送方不会知道接收方已宕机。在接收方重起后,发送方向接收方发送数据,则接收方TCP会向发送方TCP发送RST段,发送方随即读写调用全部会犯错,read()调用会返回连接重置错误信息。d) 假如发送方通信进程终止,则接收方read()调用会返回0。e) 假如发送方宕机或网络中止,接收方收不到任何通知。4.3.4.7.2 通信异常处理通信异常处理,此处假设发送方为入网机构,接收方为银联处理中心。4.3.4.7.2.1
43、 连接中止处理发送方发送交易报文或空闲测试报文犯错,说明连接发生中止,则关闭该连接,并主动向接收方重新提议连接请求。接收方收到对方重新连接请求,接收该请求并关闭原来连接。4.3.4.7.2.2 接收方接收进程异常终止处理接收方接收进程意外退出会使发送方发送进程返回错误。发送方应关闭当地socket,重新向接收方提议连接请求。4.3.4.7.2.3 发送方发送进程异常终止处理发送方发送进程异常终止,接收方read()调用会返回0。接收方应关闭当地socket,等候接收发送方重新建立连接请求。4.3.4.7.2.4 接收方宕机处理假如接收方宕机且不能立即重起时,发送方在未超时前不会取得任何异常 通
44、知,这种情况和连接中止情况类似,按连接中止异常情况处理。假如接收方通信主机在发送方超时前重起,发送方TCP会收到接收方TCP返回RST段,发送方写调用将返回犯错信息。此时,发送方关闭当地socket,并向接收方请求重新建立连接。4.3.4.7.2.5 发送方宕机处理接收方不能获知发送方已宕机。假如发送方在5分钟之内重新提议连接请求,接收方收到连接请求后重新建立连接,在正当性检验经过以后,关闭原来连接并建立新连接。4.3.5 文件传输控制协议这里只包含利用流传输文件控制,FTP提议参考标准FTP协议。4.3.5.1 报文格式利用流传输传送文件报文格式和联机交易使用报文格式类似,由四字节报文长度和
45、报文数据组成。报文数据格式可参见文件接口规范说明。4.3.5.2 建立连接银联处理中心和入网机构之间文件传输采取全双工socket连接,能够同时存在多条连接。文件收发双方应支持多条连接并发,具体条数由收发双方依据实际需要协商确定。银联处理中心支持对每个文件接收机构线路数参数化配置,最少2条,最多40条。通常而言,多为2条每条连接每次只能传输一个文件。一个文件传输结束以后,需要断开这个双工长连接。需要再次传输文件时,再重建一个双工长连接。假如是银联处理中心向入网机构发送文件,则银联处理中心作为用户方向入网机构提议连接请求,入网机构作为服务方监听银联处理中心连接请求。反之,假如是入网机构向银联处理
46、中心发送文件,则入网机构作为用户方向银联处理中心提议连接请求,银联处理中心作为服务方监听入网机构连接请求。4.3.5.3 关闭连接文件发送方完成发送后,调用close()主动关闭连接。文件接收方等候read()调用返回0后,调用close()关闭连接。4.3.5.4 报文发送和接收报文发送一方发送报文数据,调用write()返回后,准备下一笔报文数据发送。报文接收一方调用read()接收报文,当有报文数据抵达后读调用返回。4.3.5.5 流量控制为预防入网机构短时间内收发大量文件而造成拥塞,银联处理中心提供流量控制功效。可在发送m个数据包后暂停n秒。m和n均可依据入网机构不一样要求分别配置,且
47、n可正确到微秒级。参考文件1VISA 国际信用卡企业:V.I.P. System Documentation INTL2VISA国际信用卡企业:Visa Smart Debit/Visa Smart Credit System Technical Manual,.43MASTERCARD国际信用卡企业:Member Publication,.64 ISO 8583Financial transaction card originated messages-Interchange message specifications(5First edition -06-15)5中国银联股份:中国银联信息交换处理中心系统业务需求
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100