- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FIX 6.0协议介绍 朱立 上海证券交易所 技术规划与服务部, 上海 200120 Email: lzhu@ 摘要:FIX协议(及由此衍生的STEP协议)已在国内证券业界获得了广泛应用。 FIX协议本身并不完美,尤其是在当前全球证券业界极力追求降低交易时延的风潮下,FIX协议在性能方面的问题显得尤为突出。FIX标准化组织当前正致力于制订可用于高性能数据传输的FIX 6.0,本文拟对此协议的必威体育精装版状况作一介绍。 关键词:FIX,会话层协议,编码 1 引言 FIX(Financial?Information?eXchange)协议最初是由多个致力于提升其相互间交易流程效率的金融机构和经纪商于1992年共同发起。这些企业把他们及他们的行业视为一个整体,认为能够从对交易指示,交易指令及交易执行的高效电子数据交换的驱动中获利。引入TI(ransport Independence?)框架IX会话层应用层协议应用层协议消息可以通过任意合适的传输技术进行传送,FIX应用层消息的可选传输协议之一 图1 FIX 6协议栈的逻辑分层 FIX 6并不覆盖全部七层协议,事实上它只对应用层、表示层和会话层分别进行了规范。虽然规范之间彼此独立,但又能通过组合来满足用户需求,深得协议分层的三昧。 FIX 6的一个特点是对应用层和表示层进行了明确区分,本质是将信息和信息编码进行区分。因此,FIX 6的应用层并不就是传统的tag=value文本,而是对每条业务消息的逻辑格式。与之相应地,FIX 6允许应用层消息采用各种可能的编码方案,只要通信双方彼此认可。FIX高性能工作组还为此专门成立了三个子工作组,各自设计(或移植)了一套FIX应用层编码规范,分别是SBE(Simple Binary Encoding)、GPB(Google Protocol Buffer)和ASN.1(Abstract Syntax Notation One)。 由于某些编码方案本身不具备标识消息边界的作用,或者出于在一次通信过程中对不同消息采用不同编码方式的需要,FIX 6中加入了一个可选的消息分帧协议,称为SOF(Simple Open Framing)。SOF协议也构成了表示层的一部分。 FIX 6的会话层协议(FIXP)可谓推倒重来,完全废除了传统的设计。和FIX 6的应用层一样,FIXP也只定义了消息的逻辑格式,本身并未预设任何编码方式。FIXP的主要功能是处理登录、登出、心跳交换等等功能,并允许选用不同级别的传输服务。 FIXP消息最终必须体现为具体的编码,因此也有其自身的表示层。另一方面,出于提升编解码性能的考虑,FIX 6并不将上层应用层信息编码打包后嵌入特定会话层消息内部(隧道方式)进行传输,而是将编码后的应用层消息和会话层消息首尾相接地串行传送。如果采用隧道方式,要提取应用层消息就必须经历两次解码操作,这样做有悖协议设计的初衷。因其采用串行传送方式,虽然协议的逻辑分层仍如图1所示,但在具体实现上则是将FIXP提升到和应用层相同的层面予以处理,称之为“代理”(delegation)。 图2 FIX协议栈的实现分层 3 FIX 6表示层 3.1 简单二进制编码(SBE) 高性能的表示层编码是FIX 6降低时延的重要因素。由于FIX 6的表示层允许采用各种编码方案,因此HPWG工作组设立了三个子工作组分头设计方案。其中,GPB子工作组制订了如何用google的GPB对FIX应用层进行编码的规范,ASN.1子工作组则考虑如何用ISO/ITU-T的ASN.1?解决同样的问题,SBE子工作组则完全自行设计方案。三种方案各有特色,但总体思路多有相同之处,故此这里只对SBE进行简单分析介绍。 SBE的设计目标可以总结为:针对高性能交易系统,为编解码的低延时而优化,同时将带宽占用保持在合理的低水平。 FIX 的tag/value编码方式浪费了带宽,同时使得对于特定字段的直接访问变得困难。另一方面,文本格式的编码方式增加了字符串和本地二进制表示方式间的来回转换,这些都极大制约了对于消息的高性能解析及访问。SBE反其道而行之,同时也注意避免了FAST编码方式中对性能提升的制约因素,因此达到了极高的编解码及字段操纵性能。 和FAST类似,SBE在两个层面规定了编码规范,其一是字段编码,其二是消息结构。字段编码解决的是如何将FIX语义类型映射为实际传送的二进制数据,消息结构解决的是如何将多个经过编码的字段组合成一条完整的二进制消息。 每条FIX应用报文的具体编码用一个XML格式的模板表示,模板通过带外方式在通信双方间预先交换,类似FAST编码的实践。为了使得接收方能够选用正确的模板进行解码,发送方发送的消息需要加上SBE标准头后才能发送,标准头中申明了模板编
文档评论(0)