IP Library Granted Patent US 12,321,985
Granted Patent B2
US 12,321,985 · App. 18/131,625 · Granted Jun 3, 2025

Communications protocol based message identification transmission

Inventors: Kyle Kavanagh (Chicago, IL); José Antonio Acuña-Rohter (Des Plaines, IL)
Assignee: Chicago Mercantile Exchange Inc.
G06Q40/04H04L5/0055H04L69/16H04L69/163H04L69/326
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,321,985
App. No.
18/131,625
Granted
Jun 3, 2025
Kind
B2
Abstract

A data transaction processing system receives electronic data transaction request messages from client computers over a data communication network and augments each message with hardware level data, and generates a monotonically increasing identification number for each electronic data transaction request message based on the hardware level data. The data transaction processing system transmits the identification number to the client computer utilizing transport layer protocols.

Claims (62)

1. A computer implemented method comprising:

receiving, by a network interface from a message source remote from the network interface, via a network coupled therebetween, an electronic message data segment comprising one or more electronic data transaction request messages arranged in a sequential plurality of ordinal positions from a first position to a last position within the electronic message data segment, each data transaction request message associated with one of the plurality of ordinal positions of the electronic message data segment;

generating, by the network interface, a hardware based identification number based on (i) a hardware timestamp data associated with the electronic message data segment and (ii) the ordinal position associated with each electronic data transaction request message within the electronic message data segment;

augmenting, by the network interface, each electronic data transaction request message with the generated hardware based identification number;

communicating, by the network interface, each augmented electronic data transaction request message to a destination application to be processed thereby and a data transaction result message comprising a result thereof transmitted to the message source;

substantially immediately, in response to receipt of the electronic message data segment, before any of the electronic data transaction request messages corresponding to the electronic message data segment are processed by the destination application, augmenting, by the network interface, a transport layer acknowledgement message generated based on a communications protocol acknowledging receipt of the electronic message data segment to include the generated hardware based identification number associated with only one of the electronic data transaction request messages associated with the electronic message data segment; and

communicating, by the network interface, the augmented transport layer acknowledgement message to the message source associated with the electronic message data segment prior to transmission of the data transaction result message comprising the result of the processing thereof by the destination application.

2. The computer implemented method of claim 1 , wherein the hardware timestamp data includes data indicative of a timestamp denoting a time at which the electronic message data segment was received by the network interface.

3. The computer implemented method of claim 1 , wherein the hardware timestamp data is added to an optional data header of the transport layer acknowledgement message.

4. The computer implemented method of claim 1 , wherein the electronic message data segment comprises a format for transmission using a Transmission Control Protocol (TCP).

5. The computer implemented method of claim 1 , wherein the processing includes attempting to match, by the destination application, the electronic data transaction request message with at least one previously received but unsatisfied electronic data transaction request message for a transaction which is counter thereto.

6. The computer implemented method of claim 5 , further comprising:

receiving, by the network interface, another electronic message data segment including another electronic data transaction request message including an identification number associated with one of the electronic data transaction request messages previously received by the network interface; and

modifying, by the destination application, a previously received electronic data transaction request message based on the other electronic data transaction request message.

7. The computer implemented method of claim 1 , further comprising:

receiving, by the message source, an augmented transport layer acknowledgement message acknowledging receipt of another electronic message data segment, the augmented transport layer acknowledgement message including an identification number for one of the electronic data transaction request messages associated with the other electronic message data segment; and

generating, by the message source, an identification number for another of the electronic data transaction request messages associated with the other electronic message data segment based on the identification number of the one of the electronic data transaction request messages.

8. The computer implemented method of claim 1 , wherein augmenting the transport layer acknowledgement message acknowledging receipt of an electronic message data segment comprises including, in the transport layer acknowledgement message, the generated hardware based identification number associated with the electronic data transaction request message associated with the last ordinal position within the electronic message data segment.

9. The computer implemented method of claim 1 , wherein the data transaction result message includes the generated hardware based identification number.

10. The computer implemented method of claim 1 , wherein each electronic data transaction request message in the electronic message data segment includes an instruction to perform a transaction on a data object, a quantity, and a value.

11. The computer implemented method of claim 10 , wherein the electronic message data segment comprises a financial message, and the message source comprises a market participant.

12. The computer implemented method of claim 11 , wherein the destination application comprises one of an order entry gateway application for use with an exchange operational to match trades using the financial message or a match engine module including a transaction processor configured to match trades using the financial message.

13. A computer system comprising:

a network interface configured to:

receive, from a message source remote from the network interface via a network coupled therebetween, an electronic message data segment comprising one or more electronic data transaction request messages arranged in a sequential plurality of ordinal positions from a first position to a last position within the electronic message data segment, each data transaction request message associated with one of the plurality of ordinal positions of the electronic message data segment;

generate a hardware based identification number based on (i) a hardware timestamp data associated with the electronic message data segment and (ii) the ordinal position associated with each electronic data transaction request message within the electronic message data segment;

augment each electronic data transaction request message with the generated hardware based identification number; and

communicate the augmented electronic data transaction request message to a destination application to be processed thereby and a data transaction result message comprising a result thereof transmitted to the message source; and

substantially immediately, in response to receipt of the electronic message data segment, before any of the electronic data transaction request messages corresponding to the electronic message data segment are processed by the destination application, augment a transport layer acknowledgement message generated based on a communications protocol acknowledging receipt of the electronic message data segment to include the generated hardware based identification number associated with only one of the electronic data transaction request messages associated with the electronic message data segment; and

communicate the augmented transport layer acknowledgement message to the message source associated with the electronic message data segment prior to the transmission of the data transaction result message comprising the result of the processing thereof by the destination application.

14. The computer system of claim 13 , wherein the hardware timestamp data includes data indicative of a timestamp denoting a time at which the electronic message data segment was received by the network interface.

15. The computer system of claim 13 , wherein the hardware timestamp data is added to an optional data header of the transport layer acknowledgement message.

16. The computer system of claim 13 , wherein the electronic message data segment comprises a format for transmission using a Transmission Control Protocol (TCP).

17. The computer system of claim 13 , wherein the processing by the destination application includes attempting to match the electronic data transaction request message with at least one previously received but unsatisfied electronic data transaction request message for a transaction which is counter thereto.

18. The computer system of claim 17 , wherein the network interface is further configured to:

receive another electronic message data segment including another electronic data transaction request message including an identification number associated with one of the electronic data transaction request messages previously received by the network interface; and

modify the previously received electronic data transaction request message based on the other electronic data transaction request message.

19. The computer system of claim 13 ,

wherein the computer system includes the message source,

wherein the message source is configured to:

receive an augmented transport layer acknowledgement message acknowledging receipt of the electronic message data segment, the augmented transport layer acknowledgement message including an identification number for one of the electronic data transaction request messages associated with the electronic message data segment; and

generate an identification number for another of the electronic data transaction request messages associated with the electronic message data segment based on the identification number of the one of the electronic data transaction request messages.

20. The computer system of claim 13 , wherein augmenting the transport layer acknowledgement message acknowledging receipt of an electronic message data segment comprises including, in the transport layer acknowledgement message, the generated hardware based identification number associated with the electronic data transaction request message associated with the last ordinal position within the electronic message data segment.

21. The computer system of claim 13 , wherein the data transaction result message includes the generated hardware based identification number.

22. The computer system of claim 13 , wherein each electronic data transaction request message includes an instruction to perform a transaction on a data object, a quantity, and a value.

23. The computer system of claim 22 , wherein the electronic message data segment comprises a financial message, and the message source comprises a market participant.

24. The computer system of claim 23 , wherein the destination application comprises one of an order entry gateway application for use with an exchange operational to match trades using the financial message or a match engine module including a transaction processor configured to match trades using the financial message.

25. A network interface comprising:

a processor and a non-transitory memory coupled therewith;

a first non-transitory logic stored in the non-transitory memory and configured to be executed by the processor to cause the network interface to receive, from a message source via a network coupled therebetween, an electronic message data segment comprising one or more electronic data transaction request messages arranged in a sequential plurality of ordinal positions from a first position to a last position within the electronic message data segment, each data transaction request message associated with one of the plurality of ordinal positions of the electronic message data segment;

a second non-transitory logic stored in the non-transitory memory and configured to be executed by the processor to cause the network interface to generate, in response to receipt of the electronic message data segment, for each electronic data transaction request message comprised thereby, a hardware based identification number based on (i) a hardware timestamp data associated with the electronic message data segment and (ii) the ordinal position associated with each electronic data transaction request message within the electronic message data segment;

a third non-transitory logic stored in the non-transitory the memory and configured to be executed by the processor to cause the network interface to augment each electronic data transaction request message with the generated hardware based identification number;

a fourth non-transitory logic stored in the non-transitory memory and configured to be executed by the processor to cause the network interface to communicate the augmented electronic data transaction request message to a destination application to be processed thereby and a data transaction result message comprising a result thereof transmitted to the message source;

a fifth non-transitory logic stored in the non-transitory memory and configured to be executed by the processor to cause the network interface to substantially immediately, in response to receipt of the electronic message data segment, before any of the electronic data transaction request messages corresponding to the electronic message data segment are processed by the destination application, augment, for the received electronic message data segment, a transport layer acknowledgement message generated based on a communications protocol acknowledging receipt of the electronic message data segment to include the generated hardware based identification number associated with only one of the electronic data transaction request messages associated with the electronic message data segment; and

a sixth non-transitory logic stored in the non-transitory memory and configured to be executed by the processor to cause the network interface to communicate the augmented transport layer acknowledgement message to the message source associated with the electronic message data segment prior to the transmission of the data transaction result message comprising the result of the processing thereof by the destination application.

26. A system comprising:

means for receiving, from a message source via a network coupled therebetween, an electronic message data segment comprising one or more electronic data transaction request messages arranged in a sequential plurality of ordinal positions from a first position to a last position within the electronic message data segment, each data transaction request message associated with one of the plurality of ordinal positions of the electronic message data segment;

means for generating a hardware based identification number based on (i) a hardware timestamp data associated with the electronic message data segment and (ii) the ordinal position associated with each electronic data transaction request message within the electronic message data segment;

means for augmenting each electronic data transaction request message with the generated hardware based identification number; and

means for communicating the augmented electronic data transaction request message to a destination application to be processed thereby and a data transaction result message comprising a result thereof transmitted to the message source; and

means for, substantially immediately, in response to receipt of the electronic message data segment, before any of the electronic data transaction request messages corresponding to the electronic message data segment are processed by the destination application, augmenting a transport layer acknowledgement message generated based on a communications protocol acknowledging receipt of the electronic message data segment to include the generated hardware based identification number associated with only one of the electronic data transaction request messages associated with the electronic message data segment; and

means for communicating the augmented transport layer acknowledgement message to the message source associated with the electronic message data segment prior to the transmission of the data transaction result message comprising the result of the processing thereof by the destination application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 6, 2023
From: KAVANAGH, KYLE; ACUÑA-ROHTER, JOSÉ ANTONIO
To: CHICAGO MERCANTILE EXCHANGE INC.
Reel/Frame 063246/0837 →
Continuity (2)
Continuation 15470333 · Mar 27, 2017
Related Publication 20230245228A1 · Aug 3, 2023
References Cited (22)
US 5619650A · Bach et al. · 1997 [cited by applicant]
US 7039610B2 · Morano et al. · 2006 [cited by applicant]
US 7831491B2 · Newell et al. · 2010 [cited by applicant]
US 7853499B2 · Czupek et al. · 2010 [cited by applicant]
US 20050096999A1 · Newell et al. · 2005 [cited by applicant]
US 20050203826A1 · Farrell et al. · 2005 [cited by applicant]
US 20140006243A1 · Boudreault et al. · 2014 [cited by applicant]
US 20140180905A1 · Parsons · 2014 [cited by examiner]
US 20140310149A1 · Singh · 2014 [cited by applicant]
US 20150073962A1 · Bixby et al. · 2015 [cited by applicant]
US 20150127513A1 · Studnitzer et al. · 2015 [cited by applicant]
US 20150127516A1 · Studnitzer et al. · 2015 [cited by applicant]
US 20150161727A1 · Callaway et al. · 2015 [cited by applicant]
US 20150178831A1 · Bonig et al. · 2015 [cited by applicant]
US 20170103115A1 · Golubovsky · 2017 [cited by examiner]
US 20170103460A1 · Golubovsky · 2017 [cited by examiner]
WO 2016179488A1 · 2016 [cited by applicant]
“Piggybacking Data on TCP ACK”, Perl Monks, Jun. 16, 2011, 4 pages, http://www.perlmonks.org/?node_id=910004. [cited by applicant]
Extended European Search Report, from Application No. 18720415, Nov. 12, 2021, EP. [cited by applicant]
Hao Shang et al., “Making Better Use of All Those TCP ACK Packets”, Computer Science Technical Report Series, Worcester Polytechnic Institute, Jul. 2005, 10 pages. [cited by applicant]
International Search Report and Written Opinion, from PCT/US2018/23952, Jul. 6, 2018, WO. [cited by applicant]
Lockwood, et al., “A Low-Latency Library in FPGA Hardware for High-Frequency Trading (HFT)”, 2012 IEEE 20th Annual Symposium on High-Performance Interconnects, 2012, pp. 9-16. [cited by applicant]