Packet Header
Each packet has a packet header appearing once at the beginning of the packet. The packet header has the following structure:
| Field Name | Type | Length (Bytes) | Comments |
|---|---|---|---|
| Version | uInt32 | 1 | The version associated with the contents and format of this header. Currently, this will be a constant value of 1. |
| Length | uInt32 | 2 | Length of the packet including this length field and the version. Note this is a 2 byte length. |
| Sending Time | uInt64 | 8 | The time this packet was sent. It applies to all messages in this packet. |
| Number of messages | uInt32 | 1 | The number of messages in this packet. |
| First Msg Seq # | uInt32 | 4 | The sequence number on the first message in this packet. |
The version of a packet indicates the format of the packet. This may be incremented in future releases to indicate a change in the format of the packet. Initially, it is set to the number 1.
The Packet Length is encoded as a 2 byte (16 bit) unsigned integer including the length of the version, the 2 byte Packet Length itself, and the remainder of the packet.
The Sending Time is the time the CBOE Streaming Market application published the packet on the feed. The sending time is the millisecond timestamp from midnight, January 1, 1970 UTC.
The "First Msg Seq #" is the sequence number of the first message of this packet, and the "Number of Messages" indicates the total number of messages contained in the packet.
For verification of data at the channel level, one could compute the expected "first msg seq #" of the next packet by adding the number of messages to the current packet’s "first msg seq #".





