预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

FinancialInformationExchange(FIX)金融信息交换协议FinancialInformationeXchange(FIX)金融信息交换协议的制定是由多个致力于提升其相互间交易流程效率的金融机构和经纪商于1992年共同发起。这些企业把他们及他们的行业视为一个整体,认为能够从对交易指示,交易指令及交易执行的高效电子数据交换中获利。FIX由此诞生,它是不受某个商业机构控制的开放消息标准,一个能够被调整组建适用于任何一个企业的商务需求的协议。FIX协议是一个消息标准,促进与安全交易相关的信息交换,在希望进行自动通信的交易方之间进行使用。该消息协议将支持各种商务功能。FIX最早用于支持美国国内的委托人之间基于直接信息流转的证券交易。随着协议本身的发展,增加了大量的支持多边界交易的、衍生工具及其它产品的数据域。FIX协议包含2个层次:会话层和应用层。会话层与数据的通信相关;而应用层定义了商务相关数据内容。2006年10月,FPL(FIXProtocolLimited)发布了FIX5.0。FIX5.0引入TI(thetransportindependence)传输无关框架。TI将FIX会话层从应用层协议中分离出来。在TI框架下,应用层协议消息可以通过任意合适的传输技术进行传送,在这里,FIX会话层协议是FIX应用层消息的可选传输传输协议之一。FIX是用来做什么的?架构图FIX协议存在2种语法格式:1“标记=值”语法格式2“FIXML语法”语法格式同一个商业信息流适用于任何一种语法会话层消息:Heartbeat心跳消息管理TestRequest网路测试请求ResendRequest重传请求Reject驳回(会话级)SequenceReset序列号复位Logout注销Logon登录验证FIX会话即一个在连接双方用带有连续序列号的有序消息双向传输流。FIX会话连接由3部分组成:logon登录,消息传输,和logout注销。一般建议每24小时重新建立一次会话,同时在新的会话中设置在Logon消息中的ResetSeqNumFlag建立一套新的序列号。BodyLength:为数据体长度,如:“abcd”长度为4校验和计算:一个FIX消息校验和通过计算从开头标志8到标志10前一个字符的每个字节和得到。然后,校验和被转换为模256的数字用于传送和比较。Logon消息认证一个连接到一个远程系统的用户。Logon消息必须是应用程序用于请求初始化一个FIX会话的第一个消息。HeartBtInt(108)域用于申明产生心跳消息的时间间隔,连接双方使用形同的HeartBtInt值。其值应被双方企业一致同意,由Logon消息发起者初始化,并被Logon接收者回应。当接收到Logon消息,会话接收者将认证参与者的连接请求,并发出一个Logon消息确认连接请求被接受。这个确认Logon消息也能用于发起者验证连接已经与对端正确建立。在接收到Logon消息后会话接收者必须立即准备好开始处理消息。会话发起者可以选择在收到Logon确认消息前传输FIX消息,但推荐在收到返回的Logon消息后,完成加密秘要协商后进行正常的消息传输。确认Logon消息可以用于加密秘要协商。如果一个会话密钥被认为是弱秘要,一个推荐的新的更加强状的会话秘要将在Logon消息中返回。这仅在加密协议允许秘要协商时有效。Logon消息能用于确定支持的消息最大长度MaxMessageSize(能用于控制将大消息进行分节的规则)。也能用于确定双方接收和发送所支持的消息的类型MsgType。心跳消息监控通信链路的状态,用于识别一连串消息中最后没有收到的消息。当如果一个FIX连接的任何一方在超过HeartBtInt规定的时间间隔后没有收到任何数据,将发送一个Hearbeat消息。当如果一个FIX连接的任何一方在超过HeartBtInt规定的时间间隔加上一些传输时间后没有收到任何数据,将发送一个TestRequest测试请求消息。如果在超过HeartBtInt规定的时间间隔加上一些传输时间后仍然没有收到Heartbeat消息,那么应视为连接断开并应采取纠错处理。如果HearBtInt设置为0,则不会产生常规的Heartbeat消息。注意,一个测试请求消息能够不间隔HeartBtInt的值被发送,用于强制请求一个Heartbeat消息。Heartbeat消息作为测试请求消息的响应,必须包含在请求测试消息中的TestReqID值,用于验证Heartbeat消息是测试请求消息的响应而不是常规超时的响应。测试请求消息强制对方发送一个Heartbeat消息。测试请求消息检查序列号或验证通信线路状态。对端应用程序响应