云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 轻量级STEP会话层接口规范1.00

轻量级STEP会话层接口规范1.00

  • 62 次阅读
  • 3 次下载
  • 2025/5/7 8:06:09

Version1.00

轻量级STEP会话层接口规范 2015-08-28

附 录 F (计算校验和) 计算校验和

以下为计算校验和的代码段:

char *GenerateCheckSum( char *buf, long bufLen ) {

static char tmpBuf[ 4 ];

}

for( idx = 0L, cks = 0; idx < bufLen; cks += (unsigned int)buf[ idx++ ] ); sprintf( tmpBuf, “d”, (unsigned int)( cks % 256 ) ); return( tmpBuf ); long idx; unsigned int cks;

第32页共38页

Version1.00

轻量级STEP会话层接口规范 2015-08-28

附 录 G (状态转换参考图) LFIXT会话协议状态转换参考图

初始状态CONNECTED计数超标-------------断开连接TCP连接建立------------------------初始化序号。如果是客户端,额外发送LOGON。启动一次性LOGON超时等待时钟计数未超标-------------需要发送 APP_MSG ------------------------发送 APP_MSG,重置心跳发送时钟收到 Heart_Beat ------------------重置心跳接收时钟,接收超时计数归0收到 APP_MSG ------------------------重置心跳接收时钟和计数,把消息投递给应用层WAIT_FOR_LOGONLOGON 等待超时-----------------断开连接心跳接收时钟超时 -----------------------增加接收超时计数收到 LOGON-------------HAS_LOGONLOGON认证失败-----------------发送 LOGOUT, 断开连接LOGON 认证成功-----------------------如果是服务端,额外发送 LOGON。启动心跳发送时钟,启动心跳接收时钟收到 LOGOUT ---------------------发送 LOGOUT ,断开连接收到 TEST_REQUEST ------------------------发送HEART_BEAT, 重置心跳发送时钟,重置心跳接收时钟和计数心跳发送时钟超时 ----------------------发送 HEART_BEAT,重收到 RESEND_REQUEST 置心跳发送时钟------------------------发送SEQRESET_RESET,重置心跳接收时钟和计数,重置心跳发送时钟收到 SEQRESET_RESET ------------------------调整序号,重置心跳接收时钟和计数WITHOUT_LOGOUT接到应用层指示需主动发起LOGOUT---------------------------发送 LOGOUT, 启动L一次性OGOUT超时等待时钟,重置心跳发送时钟网络IO异常,报文解析异常--------------断开连接收到 SEQRESET_GAPFILL ------------------------调整序号,重置心跳接收时钟和计数收到 REJECT ------------------------记录日志,调整序号,重置心跳接收时钟和计数心跳接收超时, 收到不可忽略且非预期的管理报文-------------------------------------------发送LOGOUT, 断开连接WAIT_FOR_LOGOUT收到 LOGOUT、LOGOUT等待超时 ---------------------------断开连接需要主动重置会话-----------------------发送 LOGON(RESET)。启动一次性LOGON超时等待时钟报文解析成功但格式不对------------------------发送REJECT, 记录日志LOGON(RESET) 等待超时-----------------断开连接WAIT_FOR_RESET收到 LOGON(RESET)------------------------收到其他消息-------------简单忽略收到 LOGON(RESET)-------------LOGON(RESET) 认证成功-----------------------如果出发状态不是WAIT_FOR_RESET:发送LOGON(RESET)。重置序号和时钟LOGON(RESET)认证失败-----------------发送 LOGOUT, 断开连接

此图可以作为LFIX引擎实现的参考,但不能替代真实LFIX引擎开发的设计文档。若和正文有不一致,一律以协议正文为准。

第33页共38页

Version1.00

轻量级STEP会话层接口规范 2015-08-28

附 录 H (实现参考) LFIXT会话协议实现参考

本参考若和协议正文不一致,一律以协议正文为准。

本参考按所收到的不同消息分别说明所需进行的最基本校验,以及在通过完整校验后的最基本处理。所谓“最基本校验”和“最基本处理”,并不意味着仅仅实现这些内容就足以构成一个正确的LFIXT引擎,而是说任何正确的LFIXT引擎都必须覆盖这些校验和处理。因此它们是正确的LFIXT引擎的必要但不充分条件。

根据标准FIX协议正文,有些管理消息的PossDupFlag不可以是Y,但同时也规定了接收方要能够容忍对方错误地发出此种消息,但收到此种消息时只将其用于序号处理,而不管消息本身的类型和内容。本参考中,对于标注了“PossDupFlag不能是Y”的入向消息,如果真的收到了PossDupFlag被设置为Y的此类消息,约定先在内部将其转换为一条PossDupFlag是Y的SeqReset-GapFill入向消息后,再按SeqReset-GapFill消息进行处理。

除了已知的若干种特别情形以外,一律不允许入向消息的MsgSeqNum出现跳空缺口,而是必须连续递增。

1. Logon消息

收到消息类型:Logon LFIX引擎可以发出:是 消息的最基本校验:

PossDupFlag不能是Y

如果是带RESET的LOGON消息—— ResetSeqNumFlag =Y 不需要校验MsgSeqNum是否出现逆转 否则

如果该消息是LOGON的发起消息,必须MsgSeqNum = 1, NextExpectedMsgSeqNum = 1

如果该消息是LOGON的响应消息,必须MsgSeqNum = 1, NextExpectedMsgSeqNum = 2

第34页共38页

Version1.00 轻量级STEP会话层接口规范 2015-08-28

也不需要校验MsgSeqNum是否出现逆转,因为作为TCP建立后收到的第接收方的NxtIn = 1, NxtOut = 1, 因此MsgSeqNum

一个消息,

消息的最基本处理:

如果是带RESET的LOGON消息,处理方式见正文。

对于其他LOGON消息,令NxtOut = NextExpectedMsgSeqNum, NxtIn =

MsgSeqNum + 1

2. Heartbeat消息

收到消息类型:Heartbeat LFIX引擎可以发出:是 消息的最基本校验:

PossDupFlag不能是Y

MsgSeqNum <> NxtIn 意味着严重错误 NxtIn = MsgSeqNum + 1 清接收超时计时器和计数

3. TestRequest消息

消息的最基本处理:

收到消息类型:TestRequest LFIX引擎可以发出:否 消息的最基本校验: PossDupFlag不能是Y

MsgSeqNum <> NxtIn 意味着严重错误 消息的最基本处理: NxtIn = MsgSeqNum + 1

回送Heartbeat消息,清发送超时计时器和计数,清发送超时计时器,

4. ResendRequest消息

收到消息类型:ResendRequest LFIX引擎可以发出:否

第35页共38页

搜索更多关于: 轻量级STEP会话层接口规范1.00 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Version1.00 轻量级STEP会话层接口规范 2015-08-28 附 录 F (计算校验和) 计算校验和 以下为计算校验和的代码段: char *GenerateCheckSum( char *buf, long bufLen ) { static char tmpBuf[ 4 ]; } for( idx = 0L, cks = 0; idx < bufLen; cks += (unsigned int)buf[ idx++ ] ); sprintf( tmpBuf, “d”, (unsigned int)( cks % 256 ) ); return( tmpBuf ); long idx; unsigned int cks; 第32页共3

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com