|
High Performance Interface WG
< Previous Next >
Need for BodyLength on FIX messages over TCP Sockets
Mahesh Kumaraguru <> 30 Dec 2010 6:46PM ET TCP Socket based communications allows only to send packets of data between applications. When a Java application opens a socket and starts reading the input stream, how can the application know how much to read for the current FIX message ? If both BodyLength and Checksum are removed, then how to breakup a stream of bytes into a series of messages? In message oriented middleware, the middleware delivers seperate messages to the application and hence a message BodyLength serves no useful purpose.
My guess is that BodyLength would be required on all FIX messaging over stream oriented network communication protocols which are not message based. The SocketReader reads the BodyLength field and then reads BodyLength bytes to complete the current message.
As per present FIX spec, a FIX Engine would also check
1. The last field at the end of BodyLength bytes is CheckSum field
2. The value of the CheckSum field in the message matches the values of checksum as calculated from the bytes of the message.
If either of the above two checks fail, the received bytes are declared garbled and discarded.
Since FIX has weak CheckSum, I agree CheckSum might have lost its utility and hence deprecated.
> Alex,
>
> I totally agree with your technical point, but let's avoid personal judgement regarding current proposals or about decisions made long ago under different circumstances.
>
> Consider that Ethernet keeps length and check values, and no one calls its designers 'moronic'. Agreed that we don't need to duplicate message integrity guaranteed by an underlying transport.
>
> Let's think of this effort in terms of continuous improvement.
>
> Don
>
> > finally somebody stated the obvios - the message length and check sum are arguably the worst/completely unnecessary "features" of Fix protocol for financial communications. First is just plain stupid - reading from a socket and parsing it byte by byte to figure out a length , while excluding the end of the message - only a business type person could come up with something moronic like that. Second is completely unnecessary for communications going over private networks over TCP(!!!!!!) protocol.
> >
> > Alex
> >
> > > Hi All,
> > >
> > > As discussed during last meeting.
> > > Please find hereafter some ideas for the working group.
> > >
> > > http://www.slideshare.net/GeorgesGomes/ullink-analysis-and-proposal-for-fix-hft-december-2010
> > >
> > > Feel free to comment on this forum thread.
> > >
> > > Kind regards
> > > Merry Christmas
> > > Georges
Need for BodyLength on FIX messages over TCP Sockets Mahesh Kumaraguru 30 Dec 2010 6:46PM ET |