BS ISO 3531-2:2022
$215.11
Financial services. Financial information eXchange session layer – FIX session layer
Published By | Publication Date | Number of Pages |
BSI | 2022 | 92 |
PDF Catalog
PDF Pages | PDF Title |
---|---|
2 | undefined |
5 | Table of Contents |
8 | Foreword |
9 | Introduction |
11 | 1 Scope 2 Normative references 3 Terms and definitions |
14 | 4 FIX session 4.1 General |
15 | Figure 1 — Conceptual view of FIX session layer 4.2 Sequence numbers |
16 | 4.3 Identifying the FIX session 4.3.1 General 4.3.2 The FIX session profile Table 1 — The FIX session profiles 4.3.3 Identification of FIX session peers |
17 | 4.3.4 Validation of SendingTime(52) 4.3.5 Additional fields available for peer identification 4.4 Establishing a FIX connection 4.4.1 Transport layer requirements |
18 | 4.4.2 Using the TestMessageIndicator(464) to explicitly identify testing 4.4.3 Application layer encryption 4.4.4 Heartbeat interval 4.4.5 Heartbeat interval determination |
19 | 4.4.5.1 Acceptor requires a specific heartbeat interval 4.4.5.2 Acceptor requires initiator specify a value within a heartbeat interval range 4.4.5.3 Acceptor accepts the initiator specified heartbeat interval 4.4.6 Maximum message size 4.4.7 Specifying application version |
20 | 4.4.8 Specifying supported message types 4.4.9 Identification of application system and FIX session processor3F 4.4.10 Responding to a request to establish a FIX session Table 2 — Fields in the Logon(35=A) message used for authentication |
22 | Figure 2 — FIX connection establishment |
23 | 4.4.11 Initial synchronization of messages in a FIX connection 4.4.12 Synchronization after successful logon |
24 | Figure 3 — ResendRequest(35=2) sent by acceptor after Logon(35=A) acknowledgement |
25 | Figure 4 — ResendRequest(35=2) sent by initiator after Logon(35=A) acknowledgement |
26 | Figure 5 — ResendRequest(35=2) sent by initiator and acceptor after Logon(35=A) acknowledgement |
27 | 4.5 Extended features for FIX session and FIX connection initiation 4.5.1 Using NextExpectedMsgSeqNum(789) to synchronize a FIX session |
28 | Figure 6 — Using NextExpectedMsgSeqNum(789) to synchronize the session during the logon process |
29 | 4.5.2 Using ResetSeqNumFlag(141) to reset FIX session for 24 h connectivity 4.5.3 Using ResetSeqNumFlag(141) to reset FIX session during FIX connection establishment6F 4.5.4 Using initiator state to restore acceptor session state7F |
30 | 4.6 Message exchange during a FIX connection |
31 | 4.6.1 FIX connection keep alive (heartbeat) 4.6.2 Garbled message processing 4.6.3 Missing sequence number 4.6.4 Rejecting invalid messages |
32 | Figure 7 — Session layer reject using Reject(35=3) due to invalid message received 4.6.5 Test Request Processing |
33 | Figure 8 — Issuing a TestRequest(35=1) to determine if peer is still responsive 4.7 FIX connection termination |
34 | 4.7.1 Normal logout processing Figure 9 — Successful Logout scenario |
35 | 4.7.2 Logout without acknowledgement from peer Figure 10 — Logout(35=5) acknowledgement not received |
36 | 4.7.3 Logout with retransmission of missed messages Figure 11 — Processing of ResendRequest(35=2) messages before Logout(35=5) acknowledgement |
37 | 4.7.4 When to terminate a FIX connection by terminating the transport layer connection instead of sending a Logout(35 = 5) 4.8 Extended features for FIX connection Termination 4.8.1 Using NextExpectedMsgSeqNum(789) when terminating FIX connection due to invalid MsgSeqNum(34)9F |
38 | 4.9 Message recovery 4.9.1 Ordered message processing 4.9.2 Request retransmission of messages |
39 | Figure 12 — Using ResendRequest(35=2) message to request missed message and subsequent messages |
40 | Figure 13 — Using ResendRequest(35=2) message to request only the missed message |
41 | 4.9.3 Responding to a ResendRequest(35 = 2) message Figure 14 — ResendRequest(35=2) with Gap Fill processing |
42 | 4.9.4 Possible duplicates 4.9.5 Gap fill process |
43 | 4.9.5.1 Example using SequenceReset(35 = 4) to gap fill over multiple messages |
44 | Figure 15 — Example using the SequenceReset(35=4) to gap fill over multiple messages. 4.9.6 Sequence reset |
45 | Figure 16 — Performing a sequence reset instead of gap fill in response to a ResendRequest(35=2) 4.9.7 Processing inbound possible duplicate messages (PossDup(43) set to “Y”) 4.9.8 Processing gaps when receiving FIX session layer messages |
46 | Table 3 — Response by message type 4.10 Resending an unacknowledged application message |
47 | Figure 17 — Application layer resend using PossResend(97) 4.10.1 The difference between application layer resend and session layer retransmission |
48 | Figure 18 — The difference between application layer resend and session layer retransmission 4.11 FIX session state matrix |
50 | 4.11.1 FIX logon process state transition diagram |
51 | 4.11.2 FIX logout process state transition diagram |
52 | 5 FIX session profiles 5.1 FIX.4.2 session profile 5.1.1 Profile identification 5.1.2 Application version identification |
53 | 5.2 FIX4 session profile 5.2.1 Profile identification 5.2.2 Application version identification 5.3 FIXT session profile 5.3.1 Profile identification 5.3.2 Multiple application version support over a single FIXT session 5.3.3 Session default application version identification |
54 | 5.3.4 Message type default application version 5.3.5 Explicit application version per message Table 4 — Application version precedence 5.3.6 Use of extension packs |
55 | Table 5 — Extension pack precedence 5.3.7 Use of a custom application version Table 6 — Custom application version precedence 5.4 Lightweight FIXT (LFIXT session profile) |
56 | 5.4.1 Profile identification 5.4.2 Application version identification 5.4.3 LFIXT transport layer requirements 5.4.4 LFIXT compatible mode Figure 19 — FIXT peer connected to LFIXT peer operating under compatible mode Table 7 — Session layer messages when peer uses LFIXT session profile under compatible mode |
57 | 5.4.5 LFIXT succinct mode Figure 20 — LFIXT peer connected to LFIXT peer operating under succinct mode Table 8 — Session layer messages when peer uses LFIXT session profile under succinct mode 5.4.6 LFIXT and FIXT operating mode interoperability Table 9 — Interoperability between LFIXT and FIXT peers by operating mode |
58 | 5.4.7 Validation of message sequence numbers 5.4.8 Application layer recovery 5.4.9 LFIXT initiator connects to LFIXT acceptor Table 10 — LFIXT Logon(35=A) initiator |
59 | Figure 21 — LFIXT logon process |
60 | 5.4.10 FIXT initiator connects to LFIXT acceptor (compatible mode) Table 11 — FIXT Logon(35=A) initiator |
61 | Figure 22 — FIXT initiator connecting to LFIXT acceptor in compatible mode logon |
62 | Figure 23 — LFIXT initiator connecting to FIXT acceptor in compatible mode logon |
63 | 5.4.11 Receipt of ResendRequest(35 = 2) message from a FIXT peer |
64 | Figure 24 — LFIXT resetting sequence numbers in LFIXT compatible mode |
65 | 5.4.12 Processing invalid messages 6 FIX message routing 6.1 Message routing details – one firm-to-one firm (point-to-point) Table 12 — Message routing example, single session between two firms 6.2 Message routing details – third party message routing |
66 | Figure 25 — Message routing example, single session between multiple firms 7 Transmitting alternatively encoded messages over a FIX session |
67 | 7.1 Use of Attachment group 8 Components 8.1 AttachmentGrp |
68 | 8.2 AttachmentKeywordGrp 8.3 HopGrp |
69 | 8.4 MsgTypeGrp 8.5 StandardHeader |
71 | 8.6 StandardTrailer 9 Messages 9.1 Heartbeat message |
72 | 9.2 TestRequest message 9.3 ResendRequest message 9.4 Reject message |
73 | 9.5 SequenceReset message 9.6 Logout message |
74 | 9.7 Logon message |
76 | 9.8 XMLnonFIX message 10 Fields |
82 | 11 Code sets 11.1 ApplLevelRecoveryIndicatorCodeSet |
83 | 11.2 ApplVerIDCodeSet 11.3 AttachmentEncodingTypeCodeSet |
84 | 11.4 EncryptMethodCodeSet 11.5 GapFillFlagCodeSet 11.6 MsgDirectionCodeSet |
85 | 11.7 MsgTypeCodeSet 11.8 PossDupFlagCodeSet 11.9 PossResendCodeSet |
86 | 11.10 ResetSeqNumFlagCodeSet 11.11 SessionRejectReasonCodeSet |
87 | 11.12 SessionStatusCodeSet 11.13 TestMessageIndicatorCodeSet |
88 | Bibliography |