QOS for Fix Protocol

Imported from previous forum

I am trying to understand the FIX protocol so that I can match the pattern and apply QOS policy. Looks like there is a possibilty that it can be encrypted. Does the protocol has provision where some patterns are never encrypted and are specifically designed for QOS purpose. Also I understand Fix protocol can be implemented on TCP as well as UDP.

I am trying to understand the FIX protocol so that I can match the pattern and apply QOS policy.

?Not sute what is meant by “match the pattern and apply QOS policy”. Please explain further.

Looks like there is a possibilty that it can be encrypted. Does the protocol has provision where some patterns are never encrypted and are specifically designed for QOS purpose.

FIX supports encryption. For details look thru the webpages in the following Google search results:-

http://www.google.com/search?as_epq=encrypt&as_sitesearch=fixprotocol.org

?Unclear in your question “provision where some patterns are never encrypted”. Please explain further.

Also I understand Fix protocol can be implemented on TCP as well as UDP.

[start quote from FIXML discussion forum]

http://fixprotocol.org/discuss/read/37b9f6f3

In theory, any transport mechanism, reliable or unreliable, could be used for FIX. In practice, FIX’s recovery mechanisms aren’t robust enough to maintain business connectivity over an unreliable transport mechanism like UDP or a noisy modem connection with no error correction.

So in practice, almost all FIX is run over TCP, which is a reliable transport protocol. However, nothing in the FIX spec dictates that TCP must be used.

[end quote from FIXML discussion forum]

[start quote from FIX Functionality Matrix]

http://www.fixprotocol.org/pages/1448/matrix_def.htm#_Transport_Independence_and_Application_Versioning

With FIX Version 5.0, “Transport Independence Framework” separates the FIX session layer from the application layer. … Additionally the Transport Independence framework will allow FIX application messages to be carried over other session transports such as web services and MQSeries, providing the financial community with even greater flexibility.

[end quote from FIX Functionality Matrix]

So we could do some FIXperiments on FIX over UDP :slight_smile:

Regards,
K. Mahesh
+1-203-252-4039

Hi Mahesh,

Can you please explain me a bit about the Transport Independence Framework 1.1 for Fix 5.0 I don’t belong to a technical background but am very much interested in knowing what it is and how does it differentiates from the previous fix versions.

Regards,
Sunil Singh

Hi Mahesh,

Can you please explain me a bit about the Transport Independence
Framework 1.1 for Fix 5.0 I don’t belong to a technical background but
am very much interested in knowing what it is and how does it
differentiates from the previous fix versions.

Regards, Sunil Singh

Hi Sunil,

FIX is a connectivity protocol and involves two parties - a client (Buy side) and a Server (Sell side).

FIX has two layers

Session layer (also known as Transport layer)

Application layer (also known as Business layer)

Session layer is responsible for :-

  1. Starting and ending Sessions.
  2. Delivering Application messages between the parties maintaining order of messages.
  3. Helping recover Application messages that get lost in transit.

Individual message integrity is performed using body length and checksum, presence of mandatory tags, conditionally required tags, optional tags and the permitted values in these based on message type and FIX version.

Application / Business layer consists of the messages which the Buy side and Sell side want to exchange with each other (Orders, Executions, IOI, etc…).

Please note that the Buy and Sell side are not at all interested in exchanging Session messages. To take a non-FIX but similar example - me and my pen pal “X” located in a different geographical location want to exchange letters, we are only interested in the letter(s), we are not interested in the postal cover with from and to addresses, postage stamp, postal receipt etc. But since I shall be using the postal system to send letter, I shall have to put it in a cover, paste the appropriate value of postage stamp and if I want a tracking number / confirmation of delivery, I need to take it to a post office and obtain a tracking number. This postal system in this example is “Transport”. Now let me expand this “Postal example”. Instead of only using the postal system, I decide to also try private “Courier services”. Some changes would be required - like the postage stamp is not valued by courier, cannot drop it into a post box etc.

Back to FIX. Initially when FIX was designed, thought nothing in FIX dictates that TCP be used as transport protocol, but TCP was probably the most widely used reliable transport protocol avaiable. Now as many different reliable transports are available, FIX is in the process of accomodating changes to permit FIX messages to be distilled to a form such that any transport mechanism could be used efficiently. I had posted the structure of such a distillate at

http://fixprotocol.org/discuss/read/94232f30

FIXT.1.1 permits multiple different versions of FIX messages to coexist in a single session. Upto FIX.4.4 a Single session could only have messages of the same version flowing between counterparties. With FIXT.1.1, the only requirement is that all Session messages be FIXT.1.1.

You can join the active discussion of FIX.5.0 which is the Application version complimenting FIXT.1.1 at

http://fixprotocol.org/discuss/47

http://fixprotocol.org/discuss/55

Feel free to post any more questions you have to the appropriate forum.

Regards,
K. Mahesh

Thanks for the detailed explanation Mahesh. That was indeed helpful. Btw I am now pretty much interested in seeing how the logs for a fix 5.0 session would look like. Is there any way to get some logs for the same?

Regards
Sunil Singh

Sunil,

Sorry for the late reply, I do not have any “Production” FIXT.1.1 logs. I can always generate a log for you which confirms to FIXT.1.1 / SP1 specifications using a Java program, just curious how looking at a log file changes the perspective?

Though the below is not a FIX log, its a detailed analysis of a single message flowing in the “FIX” pipe between connected counterparties :slight_smile:

http://fixprotocol.org/discuss/read/94232f30

Details of some terms in the above link are

parser

validation & verification

Framework

General definitions on the web :-

A Programming specific definition :-

Since I am a programmer in Java, FIX and EAI I associate more with the foldoc definition :slight_smile:

Hope these conceptual components convey the picture.

Please feel free to post any more questions you have.

Regards,
K. Mahesh

Thanks for the detailed explanation Mahesh. That was indeed helpful. Btw
I am now pretty much interested in seeing how the logs for a fix 5.0
session would look like. Is there any way to get some logs for the same?

Regards Sunil Singh

Thanks Mahesh

Regards
Sunil Singh