How to use TCP

Imported from previous forum

[ original email was from Kevin Houstoun - kevinh@altkb.com ]
I think we should issue clear guidelines on how to implement FIX over TCP as this is still done badly by some of the vendors.

Two areas I have seen problems with,

  1. Interaction with the TCP window size. One side reports zero window as it is busy and after a few seconds, depend on heartbeat, the other side drops the session.

  2. Dropping the session, how to drop the TCP connection. Some engines drop it with a RST, as opposed to FIN and FIN ACK and this loses the TCP implementation buffer content, causing additional unnecessary message retransmissions at the FIX layer.

Some engines may be using external libraries to implement their TCP stack and so this may be outside their control but it would still be worth advising on how to do this properly for those who are not so constrained.

Cheers
Kevin