FAST技术及在上海证券交易所的应用 - 转载

11 篇文章 4 订阅

个人读后小结:

FAST协议也是一套自身比较完整的协议,包括协议层和会话层,目前国内交易所使用FAST协议,主要还是在STEP协议的内部使用FAST的压缩算法,将STEP消息体(具体一点对于L2行情来说,就是tag96的内容)压缩。

FAST采用了多种压缩数据的方法:

1. 利用先后发送的消息间的字段数据的规律和相互联系来降低冗余度。定义了copy、delta、default、increment、constant、tail等运算符来对字段进行优化运算。

2. “隐示标签”:通过模版规定了字段的顺序、结构,以及各字段的标签(tag),使得对于“tag=value<SOH>”的FIX/STEP基本字段格式,无需再对“tag=”部分进行传送。

3. “停止位”编码:将字段值编码为停止位编码实体(SBE),使得字段的长度可自描述,省去对<SOH>的字段分隔符的传送。

4. 按照数据类型将消息内容编码为二进制表示方式,提高了单位数据的有效信息量。

 

转自https://istock.ssetech.com.cn/wiki/doku.php?id=service:techmag:201012_001:08

 

内容摘要

给出FAST技术的定义,介绍了FAST技术起源、发展、基本思想及技术特点,阐述了FAST的工作机制以及字段编码、传送编码、隐式标签、停止位编码、二进制编码、模版等关键的FAST概念,介绍了FAST会话协议及扩展协议的主要内容,对FAST技术在上海证券交易所的应用情况进行了简介,指出FAST技术的下一步研究方向。

一、引言

FAST(FIX Adapted for Streaming, 适流FIX或面向流的FIX) 技术是指由FAST编/解码规范1.1FAST会话协议SCP以及FAST扩展协议1.2等协议构成的FAST协议族所共同定义的一种面向消息流的压缩、编码和传输方法。其基本思想利用消息流中先后传送的消息之间字段数据的逻辑联系来减少需要传送的数据内容,并针对不同字段类型进行高效的二进制编码以使实际传送的数据大小得到进一步降低
FAST具备如下优点:

  • 压缩率高: 对FIX、TXT、DBF等常用数据格式的压缩率可以达到70%以上,对XML格式的压缩则可达90%以上;

  • 专门针对高速、低带宽地传输实时消息流所设计,时空开销小;

  • 编、解码的处理速度高,一般只需要数个微秒就可完成对一条实时消息的处理;

  • 由权威的FPL组织提出,是对行业事实标准FIX协议优化和改进的一种国际标准,代表着行业技术的一种发展趋势;

  • 也适用于压缩文件等静态数据;

  • 简单易懂,实现起来相对容易。

二、FAST技术起源与发展现状

近年来,国际资本市场得到快速发展,资本流动性增大,随之带来与日俱增的交易量。其中,程序化交易、算法交易、高频交易等计算机化交易模式已逐渐成为市场新宠,其交易量已占到欧美市场总交易量的一半以上从而超过传统的手工交易模式而成为主流。在亚洲等新兴市场,计算机化交易也呈现出快速增长的势头。相应地,与交易相关的消息的数量呈现出激增的态势—事实上,通信带宽、延迟方面的问题已成为近年来证券交易行业发展面临的最大技术挑战之一。
面对挑战,全球主要交易所和金融企业联盟组织FPL(FIX Protocol Limited)在2004年专门成立了市场技术优化工作组(MDOWG),针对已成为行业事实标准的FIX协议进行优化和改进,力图使得FIX消息的传输更快、占用带宽更小、更适于低延迟地分发海量的市场数据。由此,MDOWG 于2005年首次提出了FIX协议的优化协议—FAST。

图1 表示相同数据内容时不同格式的数据尺寸比较(KB)

压缩率高、处理开销小、简单实用、应用面广,加之可以与FIX“无缝连接”等优点,使得FAST在推出之后很快被一些主要的证券或期货交易所、经纪商等业内单位所采用,应用到对实时要求高、带宽资源较为宝贵的行情、报单、成交等应用系统或场景中。事实上,以CME、NYSE、ARCA、BATS、SIAC、BOVESPA为代表的主要交易所,以及以ICAP为代表的大型证券经纪商都开始在各自的行情或股票交易指令等消息交换系统中采用了FAST。与此同时,更多的金融企业正计划采用或部分采用FAST来改进各自的相关信息交换系统。可以说,作为对FIX协议优化和改进而提出的一种国际性标准,FAST代表了行业内标准化、低延迟信息交换技术的一种发展趋势。
随着FAST技术影响力的提高和应用范围的逐渐扩大,各软件供应商、各应用单位都陆续开展了对FAST以及相关技术的研究,并开始研制自己的FAST协议引擎,以QuickFast、OpenFast为代表的一些基于Java或C++的FAST协议引擎被公开。
2009年在FAST1.1的基础上,FPL进一步推出了最新的FAST扩展协议1.2。FAST1.2在减少消息尺寸、降低延迟上作了进一步增强,使得协议效率得到了更进一步的提高。

三、FAST技术工作机制及相关概念解析

3.1 FAST协议层次

 

图2 FAST协议层次

从网络层次结构的角度而言,FAST通常工作在传输层协议和FIX层次之间。对于发送方,FAST协议层负责将FIX的应用消息和/或会话消息转化为二进制的FAST消息,然后调用FAST会话层,再由FAST会话层进一步调用传输层进行发送。接收方的情况与此相反。根据需要,在会话层和传输之间可调用其他压缩或加密方法对待发送的FAST消息进行进一步的处理。
FAST的兼容性很好,根据具体的网络特点和具体实现,FAST可以工作在不同的传输层协议之上,同时也可根据实际需求修改或替换FAST会话层,使得FAST的使用更贴合实际应用需求。值得注意的是,除了可以直接用于压缩FIX和我国的STEP等协议格式的实时消息,FAST也可用于对结构化的DBF、TXT等静态数据格式进行压缩编解码

3.2 FAST工作框架

 

图3 FAST的工作框架

FAST编码方法通过两个层面上的处理降低数据流的大小首先,通过“域/字段编码”的处理使得可以利用流中先后数据的相关性消除冗余数据。其次,对剩余数据进行传输编码,利用“隐式标签”,可自描述长度的“停止位编码”、二进制编码等手段来降低物理空间占用。

 

图4 FAST域/字段编码

FAST字段编码利用先后发送的消息间的字段数据的规律和相互联系来降低冗余度。为此,FAST定义了拷贝(copy)、差值(delta)、缺省(default)、递增(increment)、常值(constant)、换尾(tail)等逻辑运算符(operator)来对字段进行优化运算。

 

图5 FAST隐式标签

FAST隐式标签技术针对FIX/STEP消息的格式引入。FAST通过一种称为“模版”的控制结构规定了字段的顺序、结构,以及各字段的标签(tag),这使得对于“tag=value<SOH>”的FIX/STEP基本字段格式,无需再对“tag=”部分进行传送。

 

图6 FAST停止位编码

进一步地,FAST传输编码利用“停止位”编码的方法将字段值编码为停止位编码实体(SBE),这使得字段的长度可自描述,省去对<SOH>的字段分隔符的传送。

 

图7 FAST二进制编码

最后,在将剩余数据串行化为二进制编码的过程中,FAST传输编码按照数据类型将ASCII表示的整数等数字类型编码为二进制表示方式,提高了单位数据的有效信息量。

3.3 FAST模版

 

图8 FAST模式示例

如前所述,FAST的消息编码依据称为 “模版”的控制结构来进行。模版通过规定字段的顺序和结构、字段的逻辑运算、及其字段二进制编码的表示方式来控制对数据流的编码。字典是与模式相对应的一种有状态结构,由于FAST是一种消息上下文相关的技术,所以字典被用以保存前一个包含该字段的应用消息的该字段的应用值,也即字段的前值(previous value)。字典对字段前值的维护有着十分重要的意义,因为前述对字段进行的优化运算均依赖于收发双方能够维护一致的前值和字段状态。如果采用TCP等可靠的传输层,则这种依赖不会造成问题,因为消息不会丢失。但是,如果使用UDP等不可靠的传输层,则需要特别考虑对数据包间的相互依赖性。

3.4 FAST会话

为确保FAST编解码双方模版状态的一致性,FPL推出了FAST SCP协议来支持模版交互和FAST会话。

 

图9 FAST会话过程示例

FAST会话工作在传输层之上,具体可采用TCP、UDP或其他协议作为传输层协议。FAST会话层定了Hello、Reset和Alert三个消息用来对FAST编码消息的传输进行控制。FAST会话发起方通过发送Hello消息来发起FAST会话。Hello消息中包含了发送者的名称和FAST的版本。对于每个不可分割的消息序列的传输过程,通常会以一个Reset消息,或任一个具有重置属性的模版的消息作为开始。在收到Reset消息的时候,解码器字典的前值将会被重置。
FAST会话可以以显式或者异常的两种方式结束。通常情况下,通过发送一个Alert消息来显式地结束一次FAST会话,以其他方式结束的情况的均为异常方式的结束。

3.5 FAST扩展协议1.2

在FAST最初推出的正式版本FAST1.1中,除字节向量外的协议数据类型均使用SBE来编码,其最小编码单位为字节。为达到更高的压缩率,FPL在最新的FAST扩展版本中增加了短整型、枚举、集合、布尔、位元组、时间戳等数据类型。其中,短整型用来描述那些表示范围占用空间不超过1个字节的字段,枚举和布尔类型均使用占最少比特的无符号整数来编码,位元组用来将这些最大占用空间不超过1字节的数据类型字段填充到同一个SBE中。扩展FAST对字段数据类型的增强使得编码可以达到比FAST1.1更优的压缩效果—甚至只需用一个字节就可以表示多个异构字段的数据。

四、FAST技术在上海证券交易所的应用

 

图10 上海证券交易所历年成交股数(百万)

上海证券交易所是国内最早开始证券行业技术标准化研究的单位之一。上交所最早于2001年就开始对于FIX协议的研究,并于2004年会同证监会、上海期货交易所、深交所,以及其他证券期货相关单位共同起草了中国第一个完全兼容FIX协议的证券交易数据交换标准—STEP。近几年国内资本市场加速增长,沪、深两市的成交量和行情数据不断创出新高,程序化交易等新型业务的需求初现端倪,市场参与方对更快的交易及行情的需求也加大,兼容FIX格式的STEP标准使用起来在速度和消息尺寸上都显得难以为继。因此,在FPL推出FAST后不久,上交所立刻开展了对FAST技术及应用的研究,并很快有了初步应用实例。上交所现有的Level-2行情系统就部分采用了FAST技术来优化实时消息的传输,在优化消息尺寸、节省带宽、降低行情延迟等方面都获得了良好的实际应用效果
对于现有的公共行情(Level-1)系统,行情在发送过程中需要收齐所有产品的所有字段信息才进行发送,而且行情在发送路径中,需要经过多次“落地”为文件,这对传输延迟造成了较大影响。此外,在通过单向卫星这种高延迟、不可靠的介质传送行情文件时,如果文件分段丢失,则会引起文件分段或整个文件的重传,从而大大影响了行情发送的速度。为优化对公共行情的发送,上交所技术部门正在研发功能上完全兼容Level-1的FAST行情系统,FAST行情系统将全面采用FAST技术来升级公共行情的分发,行情不再通过文件而是通过更快速的实时消息,利用单向卫星、地面网络等多种网络同时进行发送,确保用户能够更快、更便捷地获得市场行情,行情延迟将仅为原来的十分之一。同时FAST行情的消息协议将采用标准的STEP/FAST的方式,使得行情系统更加开放、灵活,与国际通行的FIX标准实现“无缝接轨”。
未来,上交所还将研究FAST技术在公告、文件发送、报单、成交等信息传输以及证券数据压缩等方面的应用。

五、结论

FAST是由全球主要交易所和金融企业联盟组织FPL针对行业事实标准的FIX所提出的一种面向消息流的压缩、编码和传输方法,它具备如下优点:压缩率高,数据尺寸仅为DBF格式的约四分之一;专门针对高速、低带宽传输实时消息流所设计;面向国际化、标准化,可与FIX“无缝连接”,其应用逐渐成为一种趋势;编、解码的处理速度很快,为微秒级;规范简单易懂,实现容易;兼容性强,还可用于静态数据的压缩等。 FAST适用于对实时性、自动化要求较高或带宽资源较稀缺的金融、证券、新闻等行业应用,不仅可以用于实时行情,也可用于报单、成交、公告、文件、数据存档及备份等证券相关应用。
FAST技术进一步的研究方向包括:

  • 模版的自动化生成方法;

  • 利用GPU、FPGA等硬件加速技术来加速协议处理;

  • 传输服务质量;进一步借鉴通用压缩方法改进压缩算法;可用性机制。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值