个人读后小结:

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等硬件加速技术来加速协议处理;

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

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

  1. EA周报 | 阿里港交所上市筹集资金可达200亿美元;预测华为自主系统“鸿蒙”手机10月上市;上海证券交易所科创板正式开板...

    EA周报 2019年6月14日 每周星期五7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 热点大事件 受美国禁令影响,华为笔记本电脑暂停交付,将无限期推迟新品发布 外媒The ...

  2. 原上海证券交易所总工程师白硕先生受邀担任Hashgard战略顾问

    点击上方"蓝色字"可关注我们! 作者:Hashgard 今天,区块链作为公认的第二代价值互联网,其应用中最具代表性的数字资产获得了前所未有的关注.去年,在比特币屡创新高的带动下,数 ...

  3. 华为完成拉美铜网宽带G.fast技术部署测试

    1/11/2016,英国大东通信巴拿马分公司日前与华为公司发布消息称,覆盖拉丁美洲地区的最快铜缆宽带服务系统成功完成初次测试. 作为巴拿马地区领先的移动宽带服务提供商,大东通信巴拿马分公司也是当地最大 ...

  4. 上海证券交易所国债买断式回购交易实施细则

    上海证券交易所国债买断式回购交易实施细则 第一条 为促进国债市场健康.稳定发展,规范国债买断式回购交易行为,防范市场风险,维护参与者的合法权益,根据财政部.中国人民银行.证监会<关于开展国债买断 ...

  5. 手把手教你用Python网络爬虫实现上海证券交易所定期报告pdf文件下载(附代码)...

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 青山隐隐水迢迢, 秋尽江南草未凋. ...

  6. 上海证券交易所股票期权组合策略业务指引及其影响

    为规范股票期权组合策略交易业务,提高资金使用效率,降低期权交易成本,维护期权交易秩序,上海证券交易所和中国证券登记结算有限责任公司共同制定了<上海证券交易所.中国证券登记结算有限责任公司股票期权 ...

  7. 规则_上海证券交易所_债券ETF业务指南(适用单市场ETF)

    一.产品概要 本指南只针对采用现券申赎的单市场债券ETF. 现券申赎是指申购赎回篮子中全部为本所上市交易债券,其运作模式与单市场股票ETF类似. 单市场债券ETF是指跟踪沪市债券指数的ETF,或虽然跟 ...

  8. 中金公司在上海证券交易所主板挂牌上市,募资总额131.98亿元

    中国国际金融股份有限公司(中金公司,股票代码:03908.HK,601995.SH)宣布在上海证券交易所主板挂牌上市,股票简称为"中金公司",股票代码为"601995&q ...

  9. 上海证券交易所开放api 查询证券编码及基本上市信息

    证券交易上海证券开放api  上海证券交易所开放api调用代码,可输入一个或多个证券交易代码,获取证券ID,证券在数据结构中的一个唯一识别的编码:同时可以获取输入证券的基本上市信息,如交易市场,上市状 ...

最新文章

  1. 独家 | 手把手教你用R语言做回归后的残差分析(附代码)
  2. Python学习笔记:Web后端开发一览
  3. C#模板设计模式使用和学习心得
  4. AI算法工程师必备技术,快快积累!
  5. Maven项目中:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create conn
  6. 怎么确保网站的可用性
  7. 你了解的继承方式html,法定继承、遗嘱继承、遗赠,这三种房产过户方式你了解多少?...
  8. fcpx视觉特效插件包 - FxFactory for Mac 支持M1芯片
  9. 在线邮箱订阅反馈html5模板
  10. Ajax进入ERROR的部分条件总结
  11. clocks_per_sec 时间不正确_壁挂炉不用了怎么关?壁挂炉正确的关闭方法
  12. 两栏布局的5中实现方式
  13. Android中一个有趣的crash的日志分析
  14. python编译器哪个最好用_python编写器哪个好用?
  15. Kubernetes CKA认证运维工程师笔记-Kubernetes故障排查
  16. 无法加载文件C:\Users\TANG\AppData\Roaming\npm\nrm.ps1,因为在此系统上禁止运行脚本
  17. linux运行pppd,linux pppd 连接成功 还是 没有网
  18. HTML<a>,<img>标签介绍及用法
  19. linux权限管理详解
  20. 图神经网络对抗攻击的研究学习(一)

热门文章

  1. 香蕉派W2(2)---编译官方Linux-BPI内核
  2. python末尾加空格,如何在后面添加空格字符串.标点符号在Python中?
  3. 魔方与通行证:腾讯的AI是怎么in All的?
  4. Android数据存储几种方式用法总结
  5. 消除计算机上的静电有哪些方法,怎么消除电脑显示屏静电问题 电脑静电如何消除...
  6. 41.从入门到精通:格式化日期 获取某月日历 Time 模块 日历(Calendar)模块 其他相关模块和函数
  7. Jsoup 借用彼岸大图壁纸
  8. GIS数据漫谈(五)— 地理坐标系统
  9. 测试人生 | 从外包菜鸟到测试开发,薪资一年翻三倍,连自己都不敢信!
  10. 对于技术指标的选股和择时的探讨