金融信息交换协议(FIX)5.0 FIXT1.1(5)

原创 2007年10月06日 10:35:00
 
6 FIX 会话层测试用例和期望行为
6.1 Applicability 适用性
本文档在2002年9月20日最后被修订,当时的FIX协议的最新版本为带有20020930的扩展的FIX 4.3 。此文当适用于FIX4.X,除非特别说明。
6.2When to send a Logout vs. when to just disconnect何时发送Logout与仅断开连接
一般情况下,一个Logout消息应在关闭一个连接前发送。如果这个Logout消息是源于一个错误条件,Logout的Text域应提供错误原因的描述,为远端FIX系统提供问题诊断的操作支持。这里有2个例外,推荐不发送Logout消息:
1、在登陆阶段,如果会话发起者的SenderCompID,TargetCompID或IP其中一个无效时,推荐立即终止会话,不发送Logout消息。这个登陆尝试有可能使一个未经授权的破坏系统的未认证尝试,因此,企业不希望泄露其FIX系统的任何信息,如,哪个SenderCompID,TargetCompID是有效的,或所支持的FIX版本。
2、在登陆阶段,当一个有效的FIX会话已经被一个企业使用时,该企业的第2次连接尝试的Logon消息被接受时,推荐会话接收者立即中断该第2次连接尝试,不发送Logout消息。发送一个Logout消息将冒着妨碍和影响当前FIX连接的风险。例如:在一些FIX实现系统中,发送一个Logout消息可能会消耗一个序列号,这样将会导致在一个已经建立的FIX会话中的序列号混乱。
在其他情况下,如果发送一个Logout消息不产生风险和安全冲突,Logout消息应随同描述信息一起发送。
6.3 When to send a Session Reject vs. when to ignore the message 何时发送会话驳回与何时忽略消息
以下内容从FIX协议规范中的Reject消息定义中摘抄:
注意:接收程序应忽略任何文本混乱,不能被解析以及数据完整性检查失败的消息。处理下一个右下的FIX消息将导致检测到一个序列号间隙并产生一个重传请求消息Resend Request。这种情况下,FIX引擎应包含识别重传无限循环的逻辑。
FIX协议采取乐观的观点。它假设一个混乱的消息是由于传输中出现的错误,而不是FIX系统的问题。因此,如果发送一个重传请求消息(Resend Request),该混乱消息将被正确得重传。如果一个消息没被认为是混乱的,那么,推荐发送一个会话级驳回消息。
6.4 What constitutes a garbled message 什么样的情况认为是一个混乱消息
1.        BeginString(tag#8)不是一个消息中的第一个tag或不是8=FIXT.n.m.的格式。
2.        BogyLength(tag#9)不是一个消息中的第二个tag或没有包含正确的字节数。
3.        MsgType(tag#35)不是一个消息中的第三个tag。
4.        Checksum(tag#10)不适最后一个tag或没有包含正确的值。
如果丢失MsgSeqNum(tag#34),一个Logout消息将被发送以终止FIX连接。因为这种情况意味着一个严重的应用程序错误。
6.5 FIX Session-level State Matrix FIX会话层状态举证
Precedence
次序
State
状体
Initiator
发起者
Acceptor
接收者
Descriptioin
描述
1
断开 当天未连接
Y
Y
当前处于断开状态,当日未进行连接尝试。没有MsgSeqNum被使用(下一个当日的连接的MsgSeqNum值为1)。
2
断开 当日开始连接
Y
Y
当前处于断开状态,尝试建立当日连接,这样,MsgSeqNum开始被消耗(下一个当日连接时,MsgSeqNum将从其(last+1)开始)
3
检测到网络连接的中断
Y
Y
处于连接状态时,检测到一个网络连接中断(如TCP socket关闭)。断开网络连接并关闭该会话的配置。
4
等待连接
N
Y
会话登陆消息接收者等待对端的连接。
5
初始话(发起)连接
Y
N
会话登陆消息发起者同对端建立连接。
6
网络连接建立
Y
Y
双方建立网络连接。
7
发送Logon发起消息
Y
N
会话登陆发起者发送Logon
消息。
***异常:24小时会话
8
收到Logon发起消息
N
Y
会话登陆接收者收到对端的Logon消息
***异常:24小时会话
9
Logon发起消息响应
N
Y
会话登陆接收者使用Logon消息与对端握手,响应对端Logon消息。
10
处理ResendRequest
Y
Y
接收和响应对端发送的对消息的ResendRequeset消息,和(或)对MsgSeqNum所请求范围的SequenceReset-Gap Fill消息。修改以驳回接收到的MsgSeqNum小于LastSeqNum的Resend Request消息。
11
收到MsgSeqNum过大
Y
Y
从对端接收到过大的MsgSeqNum,将消息排队暂存,发送ResendRequest消息
12
等待/处理ResendRequest响应
Y
Y
处理请求的MsgSeqNum请求的、PossDupFlag=’Y’的消息,和/或从对端进行的SequenceRset-Gap Fill消息。将MsgSeqNu过高的接收消息排队暂存。
13
在实践间隔后未收到消息
Y
Y
没有非混乱消息在HeartBeatInt+响应时间内被接收,发送TestRequest消息。
14
等待/处理TestRequest消息响应
Y
Y
处理接收消息。当接收到非混乱消息后,复位心跳间隔时间。
15
接收Logout消息
Y
Y
从对端接收到发起注销/连接断开的Logout消息。如果MsgSeqNum过高,发送RsendRequest。如果发送,等待一定周期,以完成ResendRequest的响应处理。注意,依据Logout的原因,对端可能不能执行该请求。 发送Logout消息作为响应并等待一定时间让对端断开网络连接。注意,对端可能发送ResendRequest消息,如果Logout响应消息的MsgSeqNum过高并重新发起Logout操作。
16
发起Logout处理
Y
Y
识别优雅断开连接的条件和原因(如:日终,多个未响应的TestRequest消息发送后,MsgSeqNum过高等)。发送Logout效益给对端。等待一个时间周期以接收Logout响应。在这期间,如有可能,处理新接收的消息和/或ResendRequest。注意,一些注销/终止条件(如数据库/消息存储失败),可能要求紧接在初始沪Logout消息发送后立即止网络连接。断开该会话的网络连接并关闭该会配置。
17
活动/正常会话
Y
Y
网络连接建立后,Logon消息成果交换完成,接收和发送的MsgSeqNum都是所期望的顺序,并且Heartbeat 或其他消息在(HeartBeatInt +响应周期)内被接收。
18
等待Logon确认
Y
N
会话发起者等待会话接收者发送Logon确认消息。
6.6 FIX Logon Process State Transition Diagram     FIX登陆消息处理状态转换图
Session Initiator(e.g. buyside)Action 会话发起者(如,买方)行为
Session Acceptor(e.g. sellside)Action会话接收者(如,卖方)行为
Session Initiator(e.g.buyside)State会话发起者(如,买方)状态
Session Acceptor(e.g. sellside)State会话接收者(如,卖方)状态
开始
 
未连接-当日未连接
未连接-当日连接
等待连接
连接
 
发起连接
(可能)检测到网络连接中断
等待连接
 
接受连接
建立网络连接
建立网络连接
发起登陆
 
发送发起登陆消息Logout
建立网络连接
 
收到发起登陆消息Logout
发送发起登陆消息Logout
收到发起登陆消息Logout
 
发送发起登陆消息响应
发送发起登陆消息Logout
发起Logon的响应
 
(可能)发起 Logout处理
 
(可能)接收到的MsgSeqNum过高
 
(可能)发送ResendRequest
 
发起Logon响应
 
(可能)接收到的MsgSeqNum过高
接收发起登陆消息的响应
 
(可能)活动/正常的会话
(可能)发起 Logout处理(如,MsgSeqNum过高)
发起Logon的响应
 
(可能)发送RsendRequest
 
(可能)活动/正常的会话
(可能)接收的MsgSeqNum过高
(可能)活动/正常的会话
(可能)处理ResendRequest
 
 
活动/正常的会话
活动/正常的会话
6.7 FIX Logout Process State Transition Diagram    FIX Logout处理状态转换图
Logout Initiator: Action
Logout发起者行为ie
Logout Acceptor Action
Logout接收者行为
Logout Initiator State
Logout发起者状态
Logout Acceptor State
Logout接收者状态
开始
 
1.        活动/正常的会话
2.        没有在时间间隔内收到消息
3.        等待/处理响应TestRequest
 
 
 
 
 
 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

金融信息交换协议(FIX)5.0 FIXT1.1(5)

金融信息交换协议(FIX)5.0 FIXT1.1

金融信息交换协议(FIX)5.0 FIXT1.1(4)

金融信息交换协议(FIX)5.0 FIXT1.1

金融信息交换协议(FIX)5.0 FIXT1.1(1)

下一篇金融信息交换协议(FIX)

金融信息交换协议(FIX)5.0 FIXT1.1(6)

金融信息交换协议(FIX)5.0 FIXT1.1

金融信息交换协议(FIX)5.0 FIXT1.1(2)

下一篇金融信息交换协议(FIX)5.0 FIXT1.1

金融信息交换协议(FIX)5.0 FIXT1.1(7)

金融信息交换协议(FIX)5.0 FIXT1.1

金融信息交换协议(FIX)v5.0读书笔记(2)

金融信息交换协议(FIX)

金融信息交换协议(FIX)v5.0读书笔记(1)

金融信息交换协议(FIX)

金融信息交换协议(FIX)v5.0

1.   什么是FIX        Financial Information eXchange(FIX)金融信息交换协议的制定是由多个致力于提升其相互间交易流程效率的金融机构和经纪商于1992年共...

【FIX协议】金融信息交换协议 - 0 - 简介

什么是FIX
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)