JR-T 0066.1—2019 银行间市场业务数据交换协议 第 1 部分:语法、结构与会话层.pdf
- 文档编号:14660563
- 上传时间:2023-06-25
- 格式:PDF
- 页数:41
- 大小:604.89KB
JR-T 0066.1—2019 银行间市场业务数据交换协议 第 1 部分:语法、结构与会话层.pdf
《JR-T 0066.1—2019 银行间市场业务数据交换协议 第 1 部分:语法、结构与会话层.pdf》由会员分享,可在线阅读,更多相关《JR-T 0066.1—2019 银行间市场业务数据交换协议 第 1 部分:语法、结构与会话层.pdf(41页珍藏版)》请在冰点文库上搜索。
ICS35.240.40A11JR中华人民共和国金融行业标准JR/T0066.12019代替JR/T00662011银行间市场业务数据交换协议第1部分:
语法、结构与会话层InterbankmarketinformationexchangeprotocolPart1:
Syntax,structureandsessionlayer2019-01-08发布2019-01-08实施中国人民银行发布JR/T0066.12019目次前言.II1范围.12规范性引用文件.13术语和定义.14报文语法与结构.25会话传输.146会话管理.157会话类报文与组件.24附录A(规范性附录)域字典.32参考文献.37IJR/T0066.12019前言JR/T0066银行间市场业务数据交换协议分成3部分:
第1部分:
语法、结构与会话层;第2部分:
应用层;第3部分:
适流表示层。
本部分为JR/T0066的第1部分。
本部分依据GB/T1.12009给出的规则起草。
本部分代替JR/T00662011银行间市场业务数据交换协议的协议语法结构、会话机制和会话层消息相关内容,未被代替的内容纳入JR/T0066的第2部分。
本部分与JR/T00662011的替代部分相比,除编辑性修改外主要技术变化如下:
增加了规范性引用文件(见章节2);修改和新增了部分术语和定义(见章节3,2011版的章节2);修改了报文语法与结构的内容(见章节4,2011版的第4章节和5.1、5.2、5.3);修改了会话传输的内容(见章节5,2011版的章节3.1、3.2、3.3、3.4、3.5、3.6和3.7);修改了会话管理的内容(见章节6,2011版的3.8和3.9);修改了会话类报文与组件的内容(见章节7,2011版的5.4);增加了区块链扩展应用以适应国际技术发展(见4.7和7.2.2)。
本部分由中国外汇交易中心暨全国银行间同业拆借中心提出。
本部分由全国金融标准化技术委员会(SAC/TC180)归口。
本部分负责起草单位:
中国外汇交易中心暨全国银行间同业拆借中心。
本部分参与起草单位:
中国人民银行科技司。
本部分主要起草人:
许再越、姚前、杨富玉、朱荣、叶胜国、姜才康、王成勇、胡剑、李正、陈彬、胡卫平、沈峻、崔嵬、郦永达、余波、曲维民、孙小林、沈薇薇、茅廷、杨帆、夏志江、孙英昊、包晓晶、赵俊锋、卢艳民、崔奇、邓钢轶、严璐祎、沈叶。
JR/T0066于2011年6月2日首次发布,本次为第一次修订。
IIJR/T0066.12019银行间市场业务数据交换协议第1部分:
语法、结构与会话层1范围JR/T0066的本部分规定了银行间市场参与方之间进行银行间交易所需的会话层通讯协议(InterbankMarketInformationExchangeProtocolTransport,简称IMIXT),包括报文语法与结构、会话可靠传输规范、会话管理规范、会话类报文与组件等。
本部分适用于银行间市场参与方之间的基础会话通讯数据交换。
本部分应用于银行间市场机构间的业务数据交换协议(InterbankMarketInformationExchangeProtocol,简称IMIX)报文传输交互,银行间市场机构包括且不限于中介服务机构、会员机构、使用本部分的其他机构等。
2规范性引用文件下列文件对于本文件的应用是必不可少的。
凡是注日期的引用文件,仅注日期的版本适用于本文件。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T2659世界各国和地区名称代码GB/T12406表示货币和资金的代码JR/T0066.22019银行间市场业务数据交换协议第2部分:
应用层3术语和定义下列术语和定义适用于本文件。
3.1域界定符fieldseparator报文中所有的域都有一个分隔符来界定分隔。
注:
分隔符为ASCII码0x01,JR/T0066中域界定符以表示。
3.2重复组repeatinggroup由重复次数和若干组同类数据组成的域集合。
3.3组件component会话报文和应用报文中,按照一定业务逻辑组成的域集合。
3.4报文序号messagesequencenumber1JR/T0066.12019报文传输过程中,用于监测报文传输连续性的数值。
注:
通过该数值判断交换数据是否丢失。
3.5心跳heartbeat报文发起方和接收方在报文交换空闲期,通过产生规律性心跳报文保持通讯连接的场景。
3.6重复发送possibleduplicate因响应一个重发请求或者不确定对方是否收到已发报文,导致重复发送报文的场景。
注:
该场景下的报文应设置“可能重复标志”(PossDupFlag=Y)。
3.7重新发送possibleresend因发送方或接收方应用需要,由报文发送方重新生成报文并发送的场景。
注:
该场景下的报文应设置“可能重发标志”(PossResend=Y)。
3.8序号重设sequencereset发送方用于设置预期报文序号的报文。
序号重设报文有两种模式:
序号重设-缺口填补(SeqReset-GapFill)、序号重设-重置(SeqReset-Reset)。
注:
序号重设-重置(SeqReset-Reset)仅在灾难恢复情况下使用。
3.9有效IMIX报文validIMIXmessage按照IMIX协议正确生成的报文。
3.10发起方initiator登录报文的发送方。
3.11接收方acceptor登录报文的接收方。
3.12区块链blockchain一种在对等网络环境下,通过透明和可信规则,构建不可伪造、不可篡改和可追溯的块链式数据结构,实现和管理事务处理的模式。
4报文语法与结构4.1数据类型2JR/T0066.120194.1.1说明数据类型用于定义数据域的取值类型,JR/T0066使用的数据类型由几个基本的数据类型(整数、浮点数、字符、字符串、数据)和在此基础上扩展的数据类型组成。
除“数据”数据类型外,其他数据类型均以ASCII码字符串表示。
4.1.2整数int无逗号和小数位的数值,可表示正负(ASCII码字符“-”,“0”至“9”组成)。
符号占据一个字符位置。
前置字符可置零(例如“00023”=“23”)。
整数类型的扩展定义:
a)长度Length:
以整数表示字节为单位的数据长度,正数;b)重复数NumInGroup:
以整数表示重复组的个数,正数;c)报文序号SeqNum:
以整数表示报文序号,正数;d)域号TagNum:
以整数表示的域号(或称Tag),正数,首位不能为零;e)月日期号DayOfMonth:
以整数表示的月份中第几天,取值1至31。
4.1.3浮点数float含有可选的小数部分,可表示正负(ASCII码字符“-”,“0”至“9”和“.”组成)。
前置字符可置零(例如“0023”=“23”),小数部分后置字符可置零(例如“23.0”=“23.0000”=“23”)。
浮点数类型的扩展定义:
a)量Qty:
股份数量、资产数量等,可有小数部分;b)价格Price:
小数位数可变;c)价格偏移量PriceOffset:
代表价格偏移量的浮点域;d)金额Amt:
典型的价格与数量相乘结果,如成交金额;e)百分比Percentage:
小数表示方法,例如.05代表5%。
4.1.4字符char除界定符外所有字母字符和标点字符,区分字母大小写。
字符类型的扩展定义是布尔Boolean:
该域取值有两个字符(“Y”=True/Yes,“N”=False/No)。
4.1.5字符串String除界定符外由数字、字母、符号组成的一串字符,区分字母大小写。
字符串类型的扩展定义:
a)多元值字符串MultipleValueString:
用空格分隔(例如10243=D2M3Y3);b)国家Country:
取值范围见GB/T2659(例如470=CHN);c)字符串货币类型Currency:
取值范围见GB/T12406(例如15=CNY);d)交易所或市场编号Exchange:
字符串(例如1301=2);e)年月Month-year:
格式YYYYMM,YYYY=0000-9999,MM=01-12(例如200=201710);f)国际标准时时间戳UTCTimestamp:
格式YYYYMMDD-HH:
MM:
SS(秒)或YYYYMMDD-HH:
MM:
SS.sss(毫秒),YYYY=0000-9999,MM=01-12,DD=01-31,HH=00-23,MM=00-59,SS=00-59(秒),sss=000-999(毫秒)(例如60=20171012-11:
40:
00或20171012-11:
40:
00.123);g)国际标准时时间UTCTimeOnly:
格式HH:
MM:
SS或HH:
MM:
SS.sss,HH=00-23,MM=00-59,SS=00-59(秒),sss=000-999(毫秒)(例如10318=11:
40:
00或11:
40:
00.123);3JR/T0066.12019h)本地市场日期LocalMktDate:
格式YYYYMMDD,YYYY=0000-9999,MM=01-12,DD=01-31(例如916=20171012);i)国际标准时日期UTCDate:
格式YYYYMMDD,YYYY=0000-9999,MM=01-12,DD=01-31(例如75=20171012)。
4.1.6数据Data无格式和内容限制的原始数据,包含长度域和数据域两个部分,数据域数据可包含域界定符SOH、特殊符号等,长度域指明数据域的字节数(注意:
该字节数的计算不计域界定符SOH)。
示例:
1401为长度域,1402为数据域。
数据样例:
1401=51402=XX=X4.2域4.2.1域的定义域是基本的数据元素。
传输过程中,域由域号、等号、域值组成,即域号=域值。
域字典部分详细定义了本部分所涉及到的所有域的数据类型和取值范围,见附录A。
4.2.2域的使用在报文中,域的使用有三种方式:
必需的、非必需的、条件限制选择(即根据其他相关域的存在与否或取值来决定)。
条件限制选择域的示例见表1。
当628、629、630存在取值时,则627应有值;当628、629、630不存在取值时,则627也可为空。
627即为条件限制选择域。
表1条件限制选择域的示例域号/嵌套组件名域名必需域627NoHops-628HopCompIDY-629HopSendingTime-630HopRefID4.2.3自定义域如JR/T0066中定义的域无法满足使用,可扩展定义新的域,即自定义域。
JR/T0066使用者之间可自行约定自定义域,自定义域的域号不应与JR/T0066中定义的域号重复,且应大于10000。
4.2.4域界定报文中所有的域(包含data类型数据域)都有一个分隔符来界定分隔,该分隔符就是ASCII码0x01(以表示)。
任何报文应由多个“域号=值”的基本结构组成,用域界定符分隔。
报文组成结构见图1。
4JR/T0066.12019域号=域值域号=域值图1报文组成结构4.3IMIX报文组成规则报文由报文头、报文体和报文尾组成。
每个组成部分都由一系列“域号=值”组成,应遵循以下规则:
a)开始部分应是报文头,随后是报文体,最后是报文尾;b)报文头的前3个域的次序不应改变:
起始串(Tag#8)、报文体长度(Tag#9)、报文类型(Tag#35);c)报文尾的最后一个域应是校验和域(Tag#10);d)重复组中,域出现的顺序应遵循该重复组在报文或组件中定义时的次序;e)除重复组域外,任一域号在一条报文内只能出现一次,否则视为错误。
报文格式示例见图2。
图2报文格式示例4.4重复组重复组是由重复次数和若干组同类数据组成的域集合。
重复组内,同类数据域集合的第一个域是必需的。
如果域名起始为“No”字符、用于指明重复次数的域的域值大于0,则该域后所列的第一个域为必需域。
重复组示例见表1。
628为必需域,根据628判断新的628、629、630组成的域集合的开始。
JR/T0066通过缩进的符号“-”对报文定义内的重复组进行标注。
重复组可嵌入其他重复组。
JR/T0066通过重复组结构中增加被嵌套的重复组名称,对被嵌套的重复组进行标注。
4.5安全与加密由于报文可能在公共网络或不安全的网络上传输交换,因此对相关的敏感数据宜进行加密处理。
具体加密的方法由连接双方达成的协议而定,同时加密方法应符合国家密码管理机构的规定。
报文内除某些需要公开识别的域以明文传输外,其他任何域都可加密放置在密文数据域(SecureData)内。
这些被8=IMIX1.09=xxx35=849=CFETS56=29000881100000000000057=MHBJ.DEALERMHBJ34=1352=20070913-10:
20:
59347=UTF-811=MHBJ_ORDER_00215=AUD17=5.1.329331=0.77132=5000054=160=20061122-10:
21:
3463=064=2006112475=20061122120=AUD150=F194=0.7711056=3855010176=1210038=2210042=MT10317=510315=210296=200611241028438547.522=548=AUDUSD=CFHA55=AUD.USD453=2448=119000043010000000000452=I14802=3523=CCCB.DEALERCCCB803=101523=CCCB803=102523=ChangshaCityCommercialBank803=5448=290008811000000000000452=I13802=3523=MHBJ.DEALERMHBJ803=101523=MHBJ803=102523=MizuhoCorporateBankBeijing803=510=XXX5JR/T0066.12019加密的域也可同时保留明文的表示方式。
如果报文的重复组内有部分数据需要加密,则应对整个重复组加密。
本部分还提供一些域用以支持数字签名、密钥交换和正文加密等安全技术。
加密方案有三种:
a)将安全敏感的域加密后移至SecureData域;b)将所有可加密的域加密后移至SecureData域;c)将所有可加密的域加密后移至SecureData域,同时这些域以明文在报文中重复出现。
4.6数据完整性数据的完整性通过两个方法保证:
报文体长度以及校验和的验证。
报文体长度以BodyLength域来表示,其值是计算出的报文长度域后面的字符数,包含紧靠校验和域“10=”之前的域界定符。
校验和是把每个字符的二进制值从报文开头“8=”中的“8”开始相加,一直加到紧靠在校验和域“10=”之前的域界定符,然后取按256取模得到的结果。
校验和域位于报文的最末,校验和的计算是在加密之后进行的。
为便于传输,校验和应按可打印字符进行发送,所以应转换为以ASCII码编码的3个值。
示例:
如果校验和计算出来是274,则按256取模就得到18,即(256+18)mod256=18。
这个值将会以|10=018|传输,其中“10=”是校验和域的标志。
产生校验和域的一个示范代码片段见图3。
图3校验和域示范代码片段4.7IMIX报文结构对于每一条IMIX报文,它的报文结构分解见图4。
char*GenerateCheckSum(char*buf,longbufLen)staticchartmpBuf4;longidx;unsignedintcks;for(idx=0L,cks=0;idxbufLen;cks+=(unsignedint)bufidx+);sprintf(tmpBuf,“%03d”,(unsignedint)(cks%256);return(tmpBuf);6JR/T0066.12019IMIXMessageIMIX报文Header标准报文头Trailer标准报文尾Body报文体域8域9域35域Component组件RepeatingGroup重复组域10GroupBlock1组块1域域域域域GroupBlock2组块2域域GroupBlock3组块3域域说明:
域表示某个域;重复组表示重复组,可由多个重复组块组成;组块表示重复组中每块重复部分,也是由域块组成;组件表示多个域的集合,这些域所代表的含义之间具有关联性。
图4IMIX报文结构面向区块链技术运作的数据整体结构见图5。
7JR/T0066.12019区块链区块链报文头报文头负载体负载体区块头区块头区块体区块体版本版本前区块头哈希前区块头哈希默克尔根哈希默克尔根哈希Time时间戳Time时间戳Bits当前目标HASH值Bits当前目标HASH值Nonce随机数Nonce随机数魔数魔数命令名命令名负载大小负载大小校验码校验码图5区块链整体结构区块链整体结构包括报文头和负载体。
不同的负载体类型可满足各类场景传输的需求,如获取区块、获取数据、交易单等。
图5为传输区块头和交易单的区块时的区块链整体结构。
当负载体无数据定义时,可仅传输报文头。
根据区块链的数据结构定义,其数据类型和组织方式并未超出现有IMIX体系范畴。
按照图4给出的IMIX报文结构,应用区块链技术的IMIX报文结构见图6。
8JR/T0066.12019负载体组件区块链报文头组件IMIXBlockHeader标准报文头Trailer标准报文尾Body报文体域8域9负载大小区块头组件域10版本前区块头哈希魔数默克尔根哈希校验码命令名区块体域35说明:
域表示某个域;组件表示多个域的集合,这些域所代表的含义之间具有关联性。
图6应用区块链技术的IMIX报文结构图6为传输区块头和交易单区块时的IMIX报文结构。
根据具体场景应用需求,可使用不同负载体类型的组件。
IMIX协议中,固定分配2000021000域号段用于区块链数据内容的表达。
4.8标准报文头9JR/T0066.120194.8.1概述每个会话报文或应用报文都有一个报文头,该报文头指明报文类型、报文体长度、发送目的地、报文序号、发送起始点和发送时间。
4.8.2标准报文头格式标准报文头见表2。
表2标准报文头域号/嵌套组件名域名必需域备注8BeginStringY起始串定义报文的协议版本(不应加密,报文的第一个域)。
9BodyLengthY报文体长度(不应加密,应是报文的第二个域)。
34MsgSeqNumY报文序号(可加密)。
35MsgTypeY报文类型(不应加密,应是报文的第三个域)。
43PossDupFlag可能重复标志,重复发送时,作此标记(可加密)。
49SenderCompIDY发送方标识符(不应加密)。
50SenderSubID发送方子标识符(可加密)。
52SendingTimeY发送时间(可加密)。
56TargetCompIDY接收方标识符(不应加密)。
57TargetSubID接收方子标识符(可加密)。
90SecureDataLen用于标识报文加密部分的长度时必需(不应加密)。
91SecureData报文体加密时必需。
紧跟在SercureDataLen域之后。
97PossResend可能重发标志(可加密)。
115OnBehalfOfCompID最初发送方标识符(可加密),用于经第三方发送。
116OnBehalfOfSubID最初发送方子标识符(可加密)。
122OrigSendingTime原始发送时间(可加密)。
128DeliverToCompID最终接收方标识符(可加密),用于经第三方发送。
129DeliverToSubID最终接收方子标识符(可加密)。
142SenderLocationID发送方的LocationID(如:
地理位置和(或)席位(desk)(可加密)。
143TargetLocationID接收方LocationID(如:
地理位置和(或)席位(desk)(可加密)。
145DeliverToLocationID最终接收方的LocationID(如:
地理位置和(或)席位(desk)(可加密)。
212XmlDataLen当标识XmlData报文体长度时必需(可加密)。
213XmlData包含XML格式的报文块(如IMIXML);总紧跟在XmlDataLen(可加密)之后。
347MessageEncoding在报文的“Encode”域中使用的报文编码格式(非ASCII编码),使用编码域时必需。
369LastMsgSeqNumProcessed最后处理报文序号(可加密)。
1128ApplVerID使用SP标识方法标明应用版本,ApplVerID用于一个特定报文的场景。
10JR/T0066.12019域号/嵌套组件名域名必需域备注1129CstmApplVerID用于支持客户共同协商认可的功能。
1156AppIExtID组件为历史跳跃信息重复组,记录报文经第三方发送的历史。
每次经第三方发送为一个跳跃,仅当OnBehalfOfCompID使用时有效,主要用于跟踪报文的路径。
注意:
一些市场条例或者对手方可能要求追踪hops报文。
4.8.3标准报文头在报文传输的应用4.8.3.1点对点传输表3和表4展示了在两个市场参与方之间的单个点对点IMIX会话中如何使用SenderCompID、TargetCompID、SenderSubID、TargetSubID域。
SenderSubID为SenderCompID的子机构,TargetSubID为TargetCompID的子机构。
两个主机构之间的单个点对点IMIX会话传输示例见表3。
假设A为卖方主机构,B为买方主机构。
表3点对点传输示例表(主机构之间)SenderSubIDSenderCompIDTartgetCompIDTargetSubIDA到BABB到ABA两个子机构之间的单个点对点IMIX会话传输示例见表4。
假设A1为卖方子机构,A为卖方主机构,B1为买方子机构,B为买方主机构。
表4点对点传输示例表(子机构之间)SenderSubIDSenderCompIDTartgetCompIDTargetSubIDA1到B1A1ABB1B1到A1B1BAA14.8.3.2报文转发由于两端之间的报文通过第三方进行转发,第三方可与其他第三方连接,在报文发起方和最终的接收方间形成多点的链条。
SenderCompID、SenderSubID、TargetCompID、TargetSubID、DeliverToCompID、DeliverToSubID、OnBehalfOfCompID和OnBehalfOfSubID域用于报文路由。
这些域的使用方法见表5,其中A为卖方,B和C为买方,Q为第三方。
表5报文转发示例表SenderCompIDOnBehalfOfCompIDTargetCompIDDeliverToCompIDHopCompIDHopSendingTime从A通过Q到B1A到QAQB2Q
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JR-T 0066.12019 银行间市场业务数据交换协议 部分:语法、结构与会话层 JR 0066.1 2019 银行间 市场 业务 数据 交换 协议 部分 语法 结构 会话层
链接地址:https://www.bingdoc.com/p-14660563.html