IP Library › Granted Patent US 12,238,003
Granted Patent B2
US 12,238,003 · App. 18/161,578 · Granted Feb 25, 2025

Systems, apparatuses and methods for cooperating routers

Inventor: Sergey Ignatchenko (Innsbruck, AT)
Assignee: Six Impossible Things Before Breakfast Limited
H04L45/74H04L43/0852H04L43/10H04L45/121H04L45/72H04L47/2416H04L47/32H04L69/16
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,238,003
App. No.
18/161,578
Granted
Feb 25, 2025
Kind
B2
Abstract

Methods and systems are provided for cooperating routers in communication networks. The cooperating routers conduct a handshake to exchange information with respect to “cooperation types” which they are capable of performing and/or are configured to perform. In an exemplary “emergency connection” cooperation type, one cooperating router may use the ISP connection of another cooperating router to send and receive packets. In an exemplary “bandwidth sharing” cooperation type, one cooperating router may make excess bandwidth available for use by other cooperating routers. In an exemplary “latency optimization” cooperation type, one cooperating router may use another cooperating router to transmit duplicates of packets or to implement suppression techniques.

Claims (49)

1. A method of managing packets, the method comprising:

maintaining, by a first routing device, a communication session with a target device, wherein the first routing device receives packets from a source device via a first interface and transmits the packets to the target device via a second interface;

detecting, by the first routing device, a problem with a connection between the first routing device and the target device;

transmitting, by the first routing device, an emergency connection message to a second routing device via a third interface in response to detecting the problem with the connection between the first routing device and the target device;

receiving, by the first routing device, an emergency connection acknowledgement message from the second routing device; and

transmitting, by the first routing device, one or more packets received from the source device to the second routing device via the third interface in response to detecting the problem with the connection between the first routing device and the target device and receipt of the emergency connection acknowledgement message from the second routing device, wherein the second routing device transmits the one or more packets to the target device.

2. The method of claim 1 , further comprising:

determining, by the first routing device, that the problem with the connection between the first routing device and the target device has been resolved;

transmitting, by the first routing device, an emergency connection termination message to the second routing device via the third interface in response to determining that the problem with the connection between the first routing device and the target device has been resolved;

receiving, by the first routing device, an emergency connection termination acknowledgement message from the second routing device; and

resuming transmitting, by the first routing device, the packets received from the source device to the target device via the second interface in response to receipt of the emergency connection termination acknowledgement message from the second routing device.

3. The method of claim 1 , wherein the communication session is one selected from the group comprising: a TCP session, a UDP session, and a latency-critical session.

4. The method of claim 1 , wherein detecting the problem with the connection between the first routing device and the target device comprises detecting that an incoming packet has not been received over the second interface for a predetermined or configurable amount of time.

5. The method of claim 1 , wherein detecting the problem with the connection between the first routing device and the target device comprises transmitting a ping message via the second interface and determining that a response to the ping message has not been received.

6. The method of claim 1 , wherein the packets received from the source device via the first device comprise latency-critical packets.

7. The method of claim 1 , further comprising transmitting, by the first routing device, a session termination message to the target device via the second interface in response to receipt of the emergency connection acknowledgement message from the second routing device.

8. The method of claim 1 , wherein each of the packets received from the source device via the first interface comprises a plurality of fields, and wherein the method further comprises:

identifying, by the first routing device, a source address field in the plurality of fields of at least one packet of the packets received from the source device via the first interface; and

changing, by the first routing device, a content of the source address field of the at least one packet to reflect an address of the first routing device.

9. The method of claim 1 , wherein each of the packets received from the source device via the first interface comprises a plurality of fields, and wherein the method further comprises:

identifying, by the first routing device, a source port field in the plurality of fields of at least one packet of the packets received from the source device via the first interface; and

changing, by the first routing device, a content of the source port field of the at least one packet to reflect a port of the first routing device.

10. The method of claim 1 , wherein detecting the problem with the connection between the first routing device and the target device comprises receiving a notification over the second interface indicating that a packet was not received by the target device.

11. A routing device comprising:

a first interface configured to receive packets from a source device;

a second interface configured to transmit the packets to a target device; and

a processor configured to:

maintain a communication session with the target device;

detect a problem with a connection between the routing device and the target device;

transmit an emergency connection message to a second routing device via a third interface of the routing device in response to the detection of the problem with the connection between the routing device and the target device;

receive an emergency connection acknowledgement message from the second routing device; and

transmit one or more packets received from the source device to the second routing device via the third interface in response to the detection of the problem with the connection between the first routing device and the target device and receipt of the emergency connection acknowledgement message from the second routing device, wherein the second routing device transmits the one or more packets to the target device.

12. The routing device of claim 11 , wherein the processor is further configured to:

determine that the problem with the connection between the routing device and the target device has been resolved;

transmit an emergency connection termination message to the second routing device via the third interface in response to determining that the problem with the connection between the routing device and the target device has been resolved;

receive from the second routing device an emergency connection termination acknowledgement message; and

resume transmitting the packets received from the source device to the target device via the second interface in response to receipt of the emergency connection termination acknowledgement message from the second routing device.

13. The routing device of claim 11 , wherein the communication session is one selected from the group comprising: a TCP session, a UDP session, and a latency-critical session.

14. The routing device of claim 11 , wherein to detect the problem with the connection between the routing device and the target device, the processor is further configured to detect that the routing device has not received an incoming packet over the second interface for a predetermined or configurable amount of time.

15. The routing device of claim 11 , wherein to detect the problem with the connection between the routing device and the target device, the processor is further configured to transmit a ping message via the second interface and determine that a response to the ping message has not been received.

16. The routing device of claim 11 , wherein the packets received from the source device via the first device comprise latency-critical packets.

17. The routing device of claim 11 , wherein the processor is further configured to transmit a session termination message to the target device via the second interface in response to receipt of the emergency connection acknowledgement message from the second routing device.

18. The routing device of claim 11 , wherein each of the packets received from the source device via the first interface comprises a plurality of fields, and wherein the processor is further configured to:

identify a source address field in the plurality of fields of at least one packet of the packets received from the source device via the first interface; and

change a content of the source address field of the at least one packet to reflect an address of the routing device.

19. The routing device of claim 11 , wherein each of the packets received from the source device via the first interface comprises a plurality of fields, and wherein the processor is further configured to:

identify a source port field in the plurality of fields of at least one packet of the packets received from the source device via the first interface; and

change a content of the source port field of the at least one packet to reflect a port of the routing device.

20. The routing device of claim 11 , wherein to detect the problem with the connection between the routing device and the target device, the processor is further configured to receive a notification over the second interface indicating that a packet was not received by the target device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2023
From: IGNATCHENKO, SERGEY
To: OLOGN TECHNOLOGIES AG
Reel/Frame 062538/0125 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2023
From: OLOGN TECHNOLOGIES AG
To: SIX IMPOSSIBLE THINGS BEFORE BREAKFAST LIMITED
Reel/Frame 062538/0128 →
Continuity (8)
Division 15809896 · Nov 10, 2017
Continuation In Part 15640565 · Jul 2, 2017
Provisional Application 62526116 · Jun 28, 2017
Provisional Application 62421193 · Nov 11, 2016
Provisional Application 62421104 · Nov 11, 2016
Provisional Application 62376073 · Aug 17, 2016
Provisional Application 62358341 · Jul 5, 2016
Related Publication 20230171191A1 · Jun 1, 2023
References Cited (59)
US 7224693B1 · Zhou et al. · 2007 [cited by applicant]
US 7266686B1 · Monteiro et al. · 2007 [cited by applicant]
US 8351445B1 · Kaniz et al. · 2013 [cited by applicant]
US 10791052B2 · Ignatchenko · 2020 [cited by applicant]
US 10841222B2 · Ignatchenko · 2020 [cited by applicant]
US 10841223B2 · Ignatchenko · 2020 [cited by applicant]
US 10841224B2 · Ignatchenko · 2020 [cited by applicant]
US 20010012294A1 · Kadambi et al. · 2001 [cited by applicant]
US 20020063916A1 · Chiu · 2002 [cited by examiner]
US 20030081605A1 · Egevang · 2003 [cited by applicant]
US 20030128746A1 · Lener et al. · 2003 [cited by applicant]
US 20050122966A1 · Bowes · 2005 [cited by applicant]
US 20060133364A1 · Venkatsubra · 2006 [cited by applicant]
US 20070177594A1 · Kompella · 2007 [cited by examiner]
US 20080074996A1 · Fourcand · 2008 [cited by applicant]
US 20080243990A1 · Mallik · 2008 [cited by examiner]
US 20090019505A1 · Gopalakrishnan et al. · 2009 [cited by applicant]
US 20100061272A1 · Veillette · 2010 [cited by applicant]
US 20100202378A1 · Youn · 2010 [cited by examiner]
US 20100226243A1 · Lee et al. · 2010 [cited by applicant]
US 20100226247A1 · Plamondon · 2010 [cited by applicant]
US 20110093540A1 · Eisenberg et al. · 2011 [cited by applicant]
US 20130016724A1 · Thaler · 2013 [cited by applicant]
US 20130201316A1 · Binder et al. · 2013 [cited by applicant]
US 20130205040A1 · Naor et al. · 2013 [cited by applicant]
US 20140047266A1 · Borthakur et al. · 2014 [cited by applicant]
US 20140050150A1 · Conte · 2014 [cited by applicant]
US 20140068357A1 · Georges et al. · 2014 [cited by applicant]
US 20140086256A1 · Raniere · 2014 [cited by applicant]
US 20140101331A1 · Bartlett · 2014 [cited by applicant]
US 20140164640A1 · Ye et al. · 2014 [cited by applicant]
US 20140314401A1 · Fujimori · 2014 [cited by examiner]
US 20140376427A1 · Hui et al. · 2014 [cited by applicant]
US 20150085657A1 · Hoehne · 2015 [cited by examiner]
US 20150295752A1 · Yamashita et al. · 2015 [cited by applicant]
US 20150373162A1 · Mosko et al. · 2015 [cited by applicant]
US 20160112308A1 · Ficara et al. · 2016 [cited by applicant]
US 20170346709A1 · Menon · 2017 [cited by examiner]
US 20180048567A1 · Ignatchenko · 2018 [cited by applicant]
US 20180123958A1 · Ignatchenko · 2018 [cited by applicant]
US 20180139131A1 · Ignatchenko · 2018 [cited by applicant]
US 20180176133A1 · Ignatchenko · 2018 [cited by applicant]
US 20180234341A1 · Ignatchenko · 2018 [cited by applicant]
US 20210058325A1 · Ignatchenko · 2021 [cited by applicant]
US 20210067446A1 · Ignatchenko · 2021 [cited by applicant]
US 20210067447A1 · Ignatchenko · 2021 [cited by applicant]
US 20210135989A1 · Ignatchenko · 2021 [cited by applicant]
US 20210135990A1 · Ignatchenko · 2021 [cited by applicant]
EP 2849397A1 · 2015 [cited by applicant]
WO WO0141380A2 · 2001 [cited by applicant]
WO WO2009005162A2 · 2009 [cited by applicant]
Boulanger et al., “Comparing interest management algorithms for massively multiplayer games,” Netgames '06 Proceedings of 5 [cited by applicant]
Ignatchenko, S., “An Algorithm for Online Data Compression,” C/C++ Users Journal, vol. 6, No. 10, Oct. 1998. [cited by applicant]
International Search Report and Written Opinion issued Feb. 5, 2018 in International Patent Application No. PCT/IB2017/000972. [cited by applicant]
International Search Report and Written Opinion issued Feb. 8, 2018 in International Patent Application No. PCT/IB2017/057061. [cited by applicant]
Jin et al., “P-Code: A New RAID-6 Code With Optimal Properties,” Proceedings of the 23 [cited by applicant]
Plank et al., “Minimum density RAID-6 codes,” ACM Transactions on Storage (TOS), vol. 6, Issue 4, Article No. 16, May 2011. [cited by applicant]
Plank, J.S., “The Raid-6 Liber8Tion Code,” International Journal of High Performance Computing Applications, vol. 23, Issue 3, Aug. 2009. [cited by applicant]
Extended European Search Report issued Jan. 17, 2023 in European Appln. 22198038.6. [cited by applicant]
Cited By (1)
US 12,641,113