JR T 0066.1-2019 《银行间市场业务数据交换协议第1部分:语法、结构与会话层》.pdf
《JR T 0066.1-2019 《银行间市场业务数据交换协议第1部分:语法、结构与会话层》.pdf》由会员分享,可在线阅读,更多相关《JR T 0066.1-2019 《银行间市场业务数据交换协议第1部分:语法、结构与会话层》.pdf(41页珍藏版)》请在麦多课文档分享上搜索。
1、ICS 35.240.40 A 11 JR 中华人民共和国金融行业标准 JR/T 0066.12019 代替JR/T 00662011 银行间市场业务数据交换协议 第1部分:语法、结构与会话层 Interbank market information exchange protocol Part 1:Syntax, structure and session layer 2019 - 01 - 08发布 2019 - 01 - 08实施 中国人民银行 发布 JR/T 0066.12019 目 次 前言 . II 1 范围 . 1 2 规范性引用文件 . 1 3 术语和定义 . 1 4 报文语法
2、与结构 . 2 5 会话传输 . 14 6 会话管理 . 15 7 会话类报文与组件 . 24 附录A(规范性附录) 域字典 . 32 参考文献 . 37 I JR/T 0066.12019 前 言 JR/T 0066银行间市场业务数据交换协议分成3部分: 第1部分:语法、结构与会话层; 第2部分:应用层; 第3部分:适流表示层。 本部分为JR/T 0066的第1部分。 本部分依据GB/T 1.12009给出的规则起草。 本部分代替JR/T 0066 2011银行间市场业务数据交换协议的协议语法结构、会话机制和会话 层消息相关内容,未被代替的内容纳入JR/T 0066的第2部分。本部分与JR/
3、T 00662011的替代部分相 比,除编辑性修改外主要技术变化如下: 增加了规范性引用文件(见章节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)。 本部分由中国外汇交易中心暨全国银行间同业
4、拆借中心提出。 本部分由全国金融标准化技术委员会(SAC/TC 180)归口。 本部分负责起草单位:中国外汇交易中心暨全国银行间同业拆借中心。 本部分参与起草单位:中国人民银行科技司。 本部分主要起草人:许再越、姚前、杨富玉、朱荣、叶胜国、姜才康、王成勇、胡剑、李正、陈彬、 胡卫平、沈峻、崔嵬、郦永达、余波、曲维民、孙小林、沈薇薇、茅廷、杨帆、夏志江、孙英昊、包晓 晶、赵俊锋、卢艳民、崔奇、邓钢轶、严璐祎、沈叶。 JR/T 0066于2011年6月2日首次发布,本次为第一次修订。 II JR/T 0066.12019 银行间市场业务数据交换协议 第1部分:语法、结构与会话层 1 范围 JR/T
5、 0066的本部分规定了银行间市场参与方之间进行银行间交易所需的会话层通讯协议 (Interbank Market Information Exchange Protocol Transport,简称IMIXT),包括报文语法与结 构、会话可靠传输规范、会话管理规范、会话类报文与组件等。 本部分适用于银行间市场参与方之间的基础会话通讯数据交换。本部分应用于银行间市场机构间的 业务数据交换协议(Interbank Market Information Exchange Protocol,简称IMIX)报文传输交互, 银行间市场机构包括且不限于中介服务机构、会员机构、使用本部分的其他机构等。 2
6、规范性引用文件 下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅注日期的版本适用于本文件。 凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。 GB/T 2659 世界各国和地区名称代码 GB/T 12406 表示货币和资金的代码 JR/T 0066.22019 银行间市场业务数据交换协议 第2部分:应用层 3 术语和定义 下列术语和定义适用于本文件。 3.1 域界定符 field separator 报文中所有的域都有一个分隔符来界定分隔。 注:分隔符为ASCII码0 x01,JR/T 0066中域界定符以表示。 3.2 重复组 repeating group
7、 由重复次数和若干组同类数据组成的域集合。 3.3 组件 component 会话报文和应用报文中,按照一定业务逻辑组成的域集合。 3.4 报文序号 message sequence number 1 JR/T 0066.12019 报文传输过程中,用于监测报文传输连续性的数值。 注:通过该数值判断交换数据是否丢失。 3.5 心跳 heart beat 报文发起方和接收方在报文交换空闲期,通过产生规律性心跳报文保持通讯连接的场景。 3.6 重复发送 possible duplicate 因响应一个重发请求或者不确定对方是否收到已发报文,导致重复发送报文的场景。 注:该场景下的报文应设置“可能重
8、复标志”(PossDupFlag =Y)。 3.7 重新发送 possible resend 因发送方或接收方应用需要,由报文发送方重新生成报文并发送的场景。 注:该场景下的报文应设置“可能重发标志”(PossResend=Y)。 3.8 序号重设 sequence reset 发送方用于设置预期报文序号的报文。序号重设报文有两种模式:序号重设-缺口填补 (SeqReset -Gap Fill)、序号重设-重置(SeqReset-Reset)。 注:序号重设-重置(SeqReset -Reset)仅在灾难恢复情况下使用。 3.9 有效IMIX报文 valid IMIX message 按照IM
9、IX协议正确生成的报文。 3.10 发起方 initiator 登录报文的发送方。 3.11 接收方 acceptor 登录报文的接收方。 3.12 区块链 blockchain 一种在对等网络环境下,通过透明和可信规则,构建不可伪造、不可篡改和可追溯的块链式数据结 构,实现和管理事务处理的模式。 4 报文语法与结构 4.1 数据类型 2 JR/T 0066.12019 4.1.1 说明 数据类型用于定义数据域的取值类型,JR/T 0066使用的数据类型由几个基本的数据类型(整数、 浮点数、字符、字符串、数据)和在此基础上扩展的数据类型组成。除“数据”数据类型外,其他数据 类型均以ASCII码
10、字符串表示。 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
11、 含有可选的小数部分,可表示正负(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 除界定符外所有字母字符和标点字符,区
12、分字母大小写。 字符类型的扩展定义是布尔 Boolean:该域取值有两个字符(“Y” =True/Yes,“N” =False/No)。 4.1.5 字符串 String 除界定符外由数字、字母、符号组成的一串字符,区分字母大小写。 字符串类型的扩展定义: a) 多元值字符串 MultipleValueString:用空格分隔(例如10243=D2 M3 Y3); b) 国家 Country:取值范围见GB/T 2659(例如470=CHN); c) 字符串货币类型 Currency:取值范围见GB/T 12406(例如15=CNY); d) 交易所或市场编号 Exchange:字符串(例如1
13、301=2); e) 年月 M onth-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
14、:格式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); 3 JR/T 0066.12019 h) 本地市场日期 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 数据 Da
15、ta 无格式和内容限制的原始数据,包含长度域和数据域两个部分,数据域数据可包含域界定符SOH、 特殊符号等,长度域指明数据域的字节数(注意:该字节数的计算不计域界定符SOH)。 示例:1401为长度域,1402为数据域。 数据样例:1401=5 1402=XX =X 4.2 域 4.2.1 域的定义 域是基本的数据元素。传输过程中,域由域号、等号、域值组成,即域号=域值。域字典部分详细 定义了本部分所涉及到的所有域的数据类型和取值范围,见附录A。 4.2.2 域的使用 在报文中,域的使用有三种方式:必需的、非必需的、条件限制选择(即根据其他相关域的存在与 否或取值来决定)。 条件限制选择域的示
16、例见表1。当628、629、630存在取值时,则627应有值;当628、629、630不存 在取值时,则627也可为空。627即为条件限制选择域。 表1 条件限制选择域的示例 域号/嵌套组件名 域名 必需域 627 NoHops - 628 HopCompID Y - 629 HopSendingTime - 630 HopRefID 4.2.3 自定义域 如JR/T 0066中定义的域无法满足使用,可扩展定义新的域,即自定义域。 JR/T 0066使用者之间可自行约定自定义域,自定义域的域号不应与JR/T 0066中定义的域号重复, 且应大于10000。 4.2.4 域界定 报文中所有的域(
17、包含data类型数据域)都有一个分隔符来界定分隔,该分隔符就是ASCII码0 x01 (以表示)。 任何报文应由多个“域号=值”的基本结构组成,用域界定符分隔。报文组成结构见图1。 4 JR/T 0066.12019 域号=域值域号=域值 图1 报文组成结构 4.3 IMIX报文组成规则 报文由报文头、报文体和报文尾组成。每个组成部分都由一系列“域号=值”组成,应遵循以下规 则: a) 开始部分应是报文头,随后是报文体,最后是报文尾; b) 报文头的前3个域的次序不应改变:起始串(Tag#8)、报文体长度(Tag#9)、报文类型(Tag#35); c) 报文尾的最后一个域应是校验和域(Tag#
18、10); d) 重复组中,域出现的顺序应遵循该重复组在报文或组件中定义时的次序; e) 除重复组域外,任一域号在一条报文内只能出现一次,否则视为错误。 报文格式示例见图2。 图2 报文格式示例 4.4 重复组 重复组是由重复次数和若干组同类数据组成的域集合。 重复组内,同类数据域集合的第一个域是必需的。如果域名起始为“No”字符、用于指明重复次数 的域的域值大于0,则该域后所列的第一个域为必需域。 重复组示例见表1。628为必需域,根据628判断新的628、629、630组成的域集合的开始。 JR/T 0066通过缩进的符号“- ”对报文定义内的重复组进行标注。重复组可嵌入其他重复组。JR/T
19、 0066通过重复组结构中增加被嵌套的重复组名称,对被嵌套的重复组进行标注。 4.5 安全与加密 由于报文可能在公共网络或不安全的网络上传输交换,因此对相关的敏感数据宜进行加密处理。具 体加密的方法由连接双方达成的协议而定,同时加密方法应符合国家密码管理机构的规定。报文内除某 些需要公开识别的域以明文传输外,其他任何域都可加密放置在密文数据域(SecureData)内。这些被 8=IMIX1.09=xxx35=849=CFETS56=29000881100000000000057=MHBJ.D EALERMHBJ34=1352=20070913-10:20:59347=UTF-811=MHBJ
20、_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=200611 241028438547.522=548=AUDUSD=CFHA55=AUD.USD453=2448=1190 00043010000000000452=I14802=3523=CCCB.DEALERCCCB803=101523= CCCB803=
21、102523=ChangshaCityCommercialBank803=5448=290008811000000 000000452=I13802=3523=MHBJ.DEALERMHBJ803=101523=MHBJ80 3=102523=Mizuho Corporate Bank Beijing803=510=XXX 5 JR/T 0066.12019 加密的域也可同时保留明文的表示方式。如果报文的重复组内有部分数据需要加密,则应对整个重复组 加密。本部分还提供一些域用以支持数字签名、密钥交换和正文加密等安全技术。 加密方案有三种: a) 将安全敏感的域加密后移至SecureData域;
22、 b) 将所有可加密的域加密后移至SecureData域; c) 将所有可加密的域加密后移至SecureData域,同时这些域以明文在报文中重复出现。 4.6 数据完整性 数据的完整性通过两个方法保证:报文体长度以及校验和的验证。 报文体长度以BodyLength域来表示,其值是计算出的报文长度域后面的字符数,包含紧靠校验和域 “10=”之前的域界定符。校验和是把每个字符的二进制值从报文开头“8= ”中的“8”开始相加, 一直加到紧靠在校验和域“10= ”之前的域界定符,然后取按256取模得到的结果。校验和域位于报文的 最末,校验和的计算是在加密之后进行的。为便于传输,校验和应按可打印字符进行
23、发送,所以应转换 为以ASCII码编码的3个值。 示例:如果校验和计算出来是274,则按256取模就得到18,即(256+18)mod 256=18。这个值将会以|10=018|传输, 其中“10=”是校验和域的标志。 产生校验和域的一个示范代码片段见图3。 图3 校验和域示范代码片段 4.7 IMIX报文结构 对于每一条IMIX报文,它的报文结构分解见图4。 char *GenerateCheckSum(char *buf, long bufLen) static char tmpBuf4; long idx; unsigned int cks; for( idx = 0L, cks = 0
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行间市场业务数据交换协议 第1部分:语法、结构与会话层 JR 0066.1-2019 银行间市场业务数据交换协议 第1部分:语法、结构与会话层 0066.1 2019 银行间 市场 业务 数据
