IP Library › Granted Patent US 11,570,116
Granted Patent B1
US 11,570,116 · App. 17/249,725 · Granted Jan 31, 2023

Estimating standby socket window size during asynchronous socket replication

Inventors: Sameer Seth (Bangalore, IN); Ananda Kumar M R (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L47/27H04L41/0668
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 11,570,116
App. No.
17/249,725
Granted
Jan 31, 2023
Kind
B1
Abstract

A secondary routing device is configured as a backup routing device for a primary routing device. The primary routing device performs asynchronous socket replication with the secondary routing device. The secondary routing device includes a transmission buffer, in memory, for storing replicated socket data transmitted between the primary routing device and the standby routing device and one or more processors implemented in circuitry and configured to execute a replication driver to: determine a threshold value; determine that an amount of data equaling or exceeding the threshold value has been read from the transmission buffer; in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer, schedule a window update for the transmission buffer at a scheduled time; and send the window update at the scheduled time.

Claims (36)

1. A method comprising:

determining, by a standby driver executed by a processor implemented in circuitry of a standby routing device, a threshold value, the standby routing device acting as a backup routing device for a primary routing device;

determining, by the standby driver, that an amount of data equaling or exceeding the threshold value has been read from a transmission buffer of the standby routing device, the transmission buffer storing replicated socket data transmitted between the primary routing device and the standby routing device;

in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer, scheduling, by the standby driver, a window update for the transmission buffer at a scheduled time; and

sending, by the standby driver, the window update at the scheduled time.

2. The method of claim 1 , wherein determining the threshold value comprises determining the threshold value according to a maximum segment size (MSS).

3. The method of claim 2 , wherein determining the threshold value comprises determining the threshold value to be the MSS.

4. The method of claim 2 , wherein determining the threshold value comprises determining the threshold value to be two times the MSS.

5. The method of claim 1 , further comprising forming the window update to include data representing a last sequence number received from the primary routing device and read from the buffer and an amount of data queued in the transmission buffer.

6. The method of claim 1 , further comprising tracking, by the standby driver, a window update timer, the window update timer representing a time at which to schedule a window update, wherein scheduling the window update in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer comprises scheduling the window update prior to expiration of the window update timer.

7. The method of claim 6 , further comprising resetting the window update timer after scheduling the window update.

8. The method of claim 1 , wherein the primary routing device and the standby routing device comprise first and second routing engines installed within a chassis of a router.

9. A secondary routing device configured as a backup routing device for a primary routing device, the secondary routing device comprising:

a memory configured to include a transmission buffer, the transmission buffer storing replicated socket data transmitted between the primary routing device and the standby routing device; and

one or more processors implemented in circuitry and configured to execute a replication driver to:

determine a threshold value;

determine that an amount of data equaling or exceeding the threshold value has been read from the transmission buffer;

in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer, schedule a window update for the transmission buffer at a scheduled time; and

send the window update at the scheduled time.

10. The secondary routing device of claim 9 , wherein the one or more processors are configured to determine the threshold value according to a maximum segment size (MSS).

11. The secondary routing device of claim 10 , wherein the threshold value comprises the MSS.

12. The secondary routing device of claim 10 , wherein the threshold value comprises two times the MSS.

13. The secondary routing device of claim 9 , wherein the one or more processors are further configured to form the window update to include data representing a last sequence number received from the primary routing device and read from the buffer and an amount of data queued in the transmission buffer.

14. The secondary routing device of claim 9 , wherein the one or more processors are further configured to track a window update timer, the window update timer representing a time at which to schedule a window update, wherein the one or more processors are configured to schedule the window update in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer and prior to expiration of the window update timer.

15. The secondary routing device of claim 14 , wherein the one or more processors are further configured to reset the window update timer after scheduling the window update.

16. A non-transitory computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a secondary routing device configured as a backup routing device for a primary routing device to execute a replication driver to:

determine a threshold value;

determine that an amount of data equaling or exceeding the threshold value has been read from a transmission buffer of the secondary routing device, the transmission buffer storing replicated socket data transmitted between the primary routing device and the standby routing device;

in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer, schedule a window update for the transmission buffer at a scheduled time; and

send the window update at the scheduled time.

17. The non-transitory computer-readable storage medium of claim 16 , wherein the instructions that cause the processor to determine the threshold value comprise instructions that cause the processor to determine the threshold value according to a maximum segment size (MSS).

18. The non-transitory computer-readable storage medium of claim 17 , wherein the threshold value comprises one of the MSS or two times the MSS.

19. The non-transitory computer-readable storage medium of claim 16 , further comprising instructions that cause the processor to form the window update to include data representing a last sequence number received from the primary routing device and read from the buffer and an amount of data queued in the transmission buffer.

20. The non-transitory computer-readable storage medium of claim 16 , further comprising instructions that cause the processor to:

track a window update timer, the window update timer representing a time at which to schedule a window update, wherein the instructions that cause the processor to schedule the window update in response to determining that the amount of data equaling or exceeding the threshold value has been read from the transmission buffer comprise instructions that cause the processor to schedule the window update prior to expiration of the window update timer; and

reset the window update timer after scheduling the window update.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2023
From: SETH, SAMEER; KUMAR M R, ANANDA
To: JUNIPER NETWORKS, INC.
Reel/Frame 063554/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2021
From: SETH, SAMEER; KUMAR M R, ANANDA
To: JUNIPER NETWORKS, INC.
Reel/Frame 055554/0880 →
Cited By (1)
US 12,289,311