IP Library › Granted Patent US 12,647,208
Granted Patent B2
US 12,647,208 · App. 18/818,262 · Granted Jun 2, 2026

Systems and methods of low latency data communication for physical link layer reliability

Inventors: Anthony D. Amicangioli (Newton, MA); B. Joshua Rosen (Westford, MA)
Assignee: Hyannis Port Research, Inc.
H04L1/08
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,647,208
App. No.
18/818,262
Granted
Jun 2, 2026
Kind
B2
Abstract

Systems and methods are disclosed herein that provide low latency data communication with improved physical link layer reliability through repeated physical layer retransmission of data over a data connection whenever the connection is idle (i.e., no new data to send). In some embodiments, the transmission of administrative control symbols (e.g., “idles,” “commas”, etc.) can be suppressed or otherwise reduced to allow some of the available connection bandwidth to be used for data redundancy and fault tolerance through the repeated retransmission of data as described in more detail below. Accordingly, instead of executing time-consuming error correcting routines, a receive node can discard the erroneous data frame and process at least one repeat frame that carries the same data payload. Sequence numbers and/or other repeat indicators can be used to distinguish original frames from repeat frames and/or for identifying which frames carry the same data payload.

Claims (64)

1 . A method of data communication, comprising at a transmit node:

transmitting an original frame that encapsulates a data payload to a receive node; and

transmitting one or more repeat frames that encapsulate the same data payload as the original frame to the receive node when a data connection between the transmit node and the receive node is idle,

each of the original frame and the one or more repeat frames-including a repeat indicator for identifying the one or more repeat frames as encapsulating the same data payload as the original frame, wherein the repeat indicator is a sequence number that is identical in the original frame and the one or more repeat frames.

2 . The method of claim 1 , further comprising at the receive node:

receiving the original frame that encapsulates the data payload;

obtaining the repeat indicator from the original frame;

discarding the original frame;

receiving at least one of the one or more repeat frames at the receive node;

obtaining the repeat indicator from the received repeat frame;

determining whether the repeat indicator of the received repeat frame is the same as the repeat indicator of the discarded original frame; and

extracting the data payload from the received repeat frame in response to determining that the repeat indicator of the received repeat frame is the same as the repeat indicator of the discarded original frame.

3 . The method of claim 2 , further comprising at the receive node:

transmitting a positive acknowledgement to the transmit node, the positive acknowledgement indicating that the data payload encapsulated in either the original frame or at least one of the one or more repeat frames is successfully received.

4 . The method of claim 1 , further comprising at the transmit node:

stopping transmission of the one or more repeat frames in response to receiving a positive acknowledgement from the receive node, the positive acknowledgement indicating that the data payload from either the original frame or at least one of the one or more repeat frames is successfully received at the receive node.

5 . The method of claim 1 , further comprising at the transmit node:

transmitting a plurality of original frames to the receive node, wherein the data payload encapsulated in each original frame differs from the data payload encapsulated in the other original frames;

transmitting a plurality of repeat frames when a data connection between the transmit node and the receive node is idle, wherein the data payload encapsulated in each repeat frame is the same as the data payload of a respective one of the plurality of original frames, wherein the repeat indicator of each repeat frame is identical to the repeat indicator included in the respective one of the plurality of original frames.

6 . The method of claim 5 , wherein the plurality of repeat frames are transmitted in a round-robin order.

7 . The method of claim 1 , wherein the repeat indicator is included in a frame header of the original frame and each of the one or more repeat frames.

8 . The method of claim 7 , wherein the repeat indicator replaces at least a portion of a preamble in the frame header.

9 . The method of claim 7 , wherein the repeat indicator replaces at least a portion of a node address in the frame header.

10 . The method of claim 9 , wherein the node address in the frame header is any of the transmit node address and the receive node address.

11 . The method of claim 1 , wherein the data payload is an Internet Protocol (IP) data packet and the repeat indicator is included in an Internet Protocol Identification (IP_ID) field of the IP data packet.

12 . The method of claim 1 , further comprising:

incrementing the sequence number for a new data payload;

transmitting the new data payload in another original frame and one or more repeat frames associated with the other original frame, each including the incremented sequence number for the new data payload.

13 . The method of claim 12 , further comprising:

interrupting transmission of any of the one or more repeat frames that encapsulates the data payload of the original frame to transmit the other original frame that encapsulates the new data payload.

14 . The method of claim 1 , wherein the data payload is an Internet Protocol (IP) data packet.

15 . The method of claim 1 , wherein each of the original frame and the one or more repeat frames is an Ethernet frame, an InfiniBand frame, a USB frame, a PCI-e frame, or an HDMI frame.

16 . A data communication system, comprising:

a transmit node having a processor that executes a transmit engine;

the transmit engine being executed to encapsulate a data payload in an original frame, transmit the original frame from the transmit node over a data connection, and further transmit one or more repeat frames that encapsulate the same data payload as the original frame when the data connection is idle,

each of the original frame and the one or more repeat frames including a repeat indicator for identifying the one or more repeat frames as encapsulating the same data payload as the original frame, wherein the repeat indicator is a sequence number that is identical in the original frame and the one or more repeat frames.

17 . The data communication system of claim 16 , wherein the transmit engine of the transmit node includes a media access control (MAC) component and a physical code sublayer (PCS) component.

18 . The data communication system of claim 16 , further comprising:

a receive node having a processor that executes a receive engine, the receive engine being executed to

receive the original frame that encapsulates the data payload,

obtain the repeat indicator from the original frame,

discard the original frame,

receive at least one of the one or more repeat frames at the receive node,

obtain the repeat indicator from the received repeat frame,

determine whether the repeat indicator of the received repeat frame is the same as the repeat indicator of the discarded original frame, and

extract the data payload from the received repeat frame in response to determining that the repeat indicator of the received repeat frame is the same as the repeat indicator of the discarded original frame.

19 . The data communication system of claim 18 , wherein the receive engine of the receive node includes a physical code sublayer (PCS) component and a media access control (MAC) component.

20 . The data communication system of claim 16 , wherein the transmit engine of the transmit node suppresses transmission of an idle pattern to transmit the one or more repeat frames.

21 . The data communication system of claim 16 , wherein the transmit engine of the transmit node is further executed to:

transmit a plurality of original frames over the data connection, wherein the data payload encapsulated in each original frame differs from the data payload encapsulated in the other original frames; and

transmit a plurality of repeat frames over the data connection when the data connection is idle, wherein the data payload encapsulated in each repeat frame is the same as the data payload of a respective one of the plurality of original frames, wherein the repeat indicator of each repeat frame is identical to the repeat indicator included in the respective one of the plurality of original frames.

22 . An electronic trading system, comprising:

a transmit node having a processor that executes a transmit engine;

the transmit engine being executed to encapsulate a market order in an original frame, transmit the original frame from the transmit node over a data connection, and further transmit one or more repeat frames that encapsulate the same market order as the original frame when the data connection is idle,

each of the original frame and the one or more repeat frames including a repeat indicator for identifying the one or more repeat frames as encapsulating the same market order as the original frame, wherein the repeat indicator is a sequence number that is identical in the original frame and the one or more repeat frames.

23 . The electronic trading system of claim 22 , further comprising:

a receive node having a processor that executes a receive engine, the receive engine being executed to

receive the original frame that encapsulates the market order,

obtain the repeat indicator from the original frame,

discard the original frame in response to detecting an error in the original frame,

receive at least one of the one or more repeat frames at the receive node,

obtain the repeat indicator from the received repeat frame,

determine whether the repeat indicator of the received repeat frame is the same as the repeat indicator of the discarded original frame, and

extract the market order from the received repeat frame in response to determining that the repeat indicator of the received repeat frame is the same as the repeat indicator of the discarded original frame.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 11, 2024
From: AMICANGIOLI, ANTHONY D.; ROSEN, B. JOSHUA
To: HYANNIS PORT RESEARCH, INC.
Reel/Frame 069321/0613 →
Continuity (3)
Continuation 18018788
Continuation In Part 16988043 · Aug 7, 2020
Related Publication 20250047415A1 · Feb 6, 2025
References Cited (73)
US 6697331B1 · Riihinen et al. · 2004 [cited by applicant]
US 7023833B1 · Aiello et al. · 2006 [cited by applicant]
US 7496086B2 · Eckberg · 2009 [cited by applicant]
US 7720043B2 · Meylan et al. · 2010 [cited by applicant]
US 7876740B2 · Eastwood et al. · 2011 [cited by applicant]
US 7876751B2 · Benner et al. · 2011 [cited by applicant]
US 7885296B2 · Biederman et al. · 2011 [cited by applicant]
US 8923341B2 · Barnette et al. · 2014 [cited by applicant]
US 9691102B2 · Studnitzer et al. · 2017 [cited by applicant]
US 9712606B2 · Farnlof et al. · 2017 [cited by applicant]
US 9929743B1 · Acuna-Rohter et al. · 2018 [cited by applicant]
US 10104148B2 · Yang et al. · 2018 [cited by applicant]
US 10262365B2 · Venkataraman · 2019 [cited by applicant]
US 10417709B2 · Hosman et al. · 2019 [cited by applicant]
US 10467693B2 · Studnitzer et al. · 2019 [cited by applicant]
US 10585729B2 · Vaccaro et al. · 2020 [cited by applicant]
US 10637967B2 · Bonig et al. · 2020 [cited by applicant]
US 10699336B2 · Burkhardt et al. · 2020 [cited by applicant]
US 20030065974A1 · Lam et al. · 2003 [cited by applicant]
US 20030235209A1 · Garg et al. · 2003 [cited by applicant]
US 20040027999A1 · Casaccia et al. · 2004 [cited by applicant]
US 20040246897A1 · Ma et al. · 2004 [cited by applicant]
US 20070255855A1 · Knapp et al. · 2007 [cited by applicant]
US 20080069118A1 · Monier · 2008 [cited by applicant]
US 20080084833A1 · Picard · 2008 [cited by applicant]
US 20100046368A1 · Kaempfer et al. · 2010 [cited by applicant]
US 20100318673A1 · Kemp et al. · 2010 [cited by applicant]
US 20110194409A1 · Ofelt et al. · 2011 [cited by applicant]
US 20110264577A1 · Winbom et al. · 2011 [cited by applicant]
US 20120044940A1 · Katz et al. · 2012 [cited by applicant]
US 20120093022A1 · Wang · 2012 [cited by applicant]
US 20120131221A1 · Foygel et al. · 2012 [cited by applicant]
US 20120195203A1 · Godbole et al. · 2012 [cited by applicant]
US 20120317011A1 · Duquette · 2012 [cited by applicant]
US 20150039489A1 · Rotella et al. · 2015 [cited by applicant]
US 20150081508A1 · Schwall et al. · 2015 [cited by applicant]
US 20150341422A1 · Farnlof et al. · 2015 [cited by applicant]
US 20150356679A1 · Schmitt · 2015 [cited by applicant]
US 20160119080A1 · Gineste · 2016 [cited by applicant]
US 20160294921A1 · Meng et al. · 2016 [cited by applicant]
US 20170127341A1 · Di et al. · 2017 [cited by applicant]
US 20170236203A1 · Amicangioli · 2017 [cited by applicant]
US 20180083737A1 · Mendes Da Silva et al. · 2018 [cited by applicant]
US 20180167492A1 · Bonig et al. · 2018 [cited by applicant]
US 20180248657A1 · Dayanandan · 2018 [cited by examiner]
US 20180279934A1 · Wo et al. · 2018 [cited by applicant]
US 20180359195A1 · Shah et al. · 2018 [cited by applicant]
US 20190097745A1 · Mallela et al. · 2019 [cited by applicant]
US 20190215385A1 · Ethier et al. · 2019 [cited by applicant]
US 20190222442A1 · Wei et al. · 2019 [cited by applicant]
US 20190259099A1 · Katsuyama et al. · 2019 [cited by applicant]
US 20190349309A1 · Bonig et al. · 2019 [cited by applicant]
US 20190379768A1 · Amicangioli et al. · 2019 [cited by applicant]
US 20200034929A1 · Rao et al. · 2020 [cited by applicant]
US 20200134720A1 · Katsuyama et al. · 2020 [cited by applicant]
US 20200136877A1 · Kim et al. · 2020 [cited by applicant]
US 20200167865A1 · Craig et al. · 2020 [cited by applicant]
US 20200169355A1 · Mcilroy · 2020 [cited by applicant]
US 20200187274A1 · Rune et al. · 2020 [cited by applicant]
US 20210176293A1 · Xin · 2021 [cited by applicant]
EP 1427146A1 · 2004 [cited by applicant]
JP 2019050013A · 2019 [cited by applicant]
WO 2012144999A2 · 2012 [cited by applicant]
WO 2016020727A1 · 2016 [cited by applicant]
WO 2018106350A1 · 2018 [cited by applicant]
WO WO2020092126A1 · 2020 [cited by examiner]
2016 “ICON Deterministic Packet Transport,” SEL Schweitzer Engineering Laboratories, 4 pages, 2016. [cited by applicant]
Configuring Queuing Flow Control, Cisco Nexus 5000 Series NX-OS Quality of Service Configuration Guide, Release 5.2(1)N1(1), Jan. 2018, 12 pages. [cited by applicant]
Determinism is the new latency, Arista.com, Solution Brief, Jan. 23, 2019, 3 pages. [cited by applicant]
Geng et al., Requirements of Layer 3 Deterministic Latency Service draft-geng-detnet-requirements-bounded-latency-03, Retrieved from tools.ietf.org/html/draft-geng-detnet-requirements-bounded-latency-03 on Jul. 2019, 9 … [cited by applicant]
International Preliminary Report on Patentability issued by the International Bureau of WIPO in related International Application No. PCT/US2021/044624 on Feb. 7, 2023, 8 pages. [cited by applicant]
International Search Report and Written Opinion issued by the European Patent Office (as International Searching Authority) in related International Application No. PCT/US2021/044624 on Nov. 16, 2021, 14 pages. [cited by applicant]
Qui et al., Hierarchy Virtual Queue Based Flow Control in LTE/SAE, 2010 Second International Conference on Future Networks, pp. 78-82, 2010. [cited by applicant]