Market data over UDP

Imported from previous forum

[ original email was from Gary Shaw - gshaw@nymex.com ]
If I implement FAST over UDP how will a recipient interpret a delta, increment or a copy if they connect after the market data transmission has started?

If you use an unreliable transport like UDP you should avoid dependencies between packets. The easiest way to ensure that packets are independent units is to put a reset message at the start of each packet. The FAST Session Control Protocol defines such a message: Reset. It uses the predefined template identifier 120 and has no content. So the full reset message will take up just two bytes: presence map + TID: c0 f8.

By adding the reset message to each packet, a late joiner will miss no state as far as FAST goes.

/David

If I implement FAST over UDP how will a recipient interpret a delta,
increment or a copy if they connect after the market data transmission
has started?

[ original email was from Gary Shaw - gshaw@nymex.com ]
Thank you for the response, but I am still unclear as to how this would work. Our problem is that we might send an initial price for an issue, followed by a series of deltas as the price changes over time. If a market data recipient does not connect until an hour, say, after the market opens then the first message they receive will be a delta value relative to an unknown. If I understand your solution correctly, every packet would begin with the actual price, therefore we would lose some of the benefit of using FAST.

Also, can you direct me to whatever document defines the reset massage. Thanks.

If you use an unreliable transport like UDP you should avoid
dependencies between packets. The easiest way to ensure that packets are
independent units is to put a reset message at the start of each packet.
The FAST Session Control Protocol defines such a message: Reset. It uses
the predefined template identifier 120 and has no content. So the full
reset message will take up just two bytes: presence map + TID: c0 f8.

By adding the reset message to each packet, a late joiner will miss no
state as far as FAST goes.

/David

If I implement FAST over UDP how will a recipient interpret a delta,
increment or a copy if they connect after the market data transmission
has started?

You have understood the proposed solution correctly.

This is a cost that you have to take in order to be
able to support packet loss and late joiners.

For a definition of the reset message, please refer to:
http://www.fixprotocol.org/fastspec
→ FAST Session Control Protocol

/Rolf

Thank you for the response, but I am still unclear as to how this would
work. Our problem is that we might send an initial price for an issue,
followed by a series of deltas as the price changes over time. If a
market data recipient does not connect until an hour, say, after the
market opens then the first message they receive will be a delta value
relative to an unknown. If I understand your solution correctly, every
packet would begin with the actual price, therefore we would lose some
of the benefit of using FAST.

Also, can you direct me to whatever document defines the reset
massage. Thanks.

If you use an unreliable transport like UDP you should avoid
dependencies between packets. The easiest way to ensure that packets
are independent units is to put a reset message at the start of each
packet. The FAST Session Control Protocol defines such a message:
Reset. It uses the predefined template identifier 120 and has no
content. So the full reset message will take up just two bytes:
presence map + TID: c0 f8.

By adding the reset message to each packet, a late joiner will miss no
state as far as FAST goes.

/David

If I implement FAST over UDP how will a recipient interpret a delta,
increment or a copy if they connect after the market data
transmission has started?