IP Library Granted Patent US 11,438,446
Granted Patent B2
US 11,438,446 · App. 16/815,643 · Granted Sep 6, 2022

Load balancing and session persistence in packet networks

Inventor: Chia J. Liu (Marlton, NJ)
Assignee: Comcast Cable Communications, LLC
H04L69/22H04L45/74H04L67/1027H04L69/16H04L69/161H04L61/6009H04L61/6013
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,438,446
App. No.
16/815,643
Granted
Sep 6, 2022
Kind
B2
Abstract

A node may generate a data packet comprising an Internet Protocol (IP) header and a destination options extension header (DOEH). The DOEH may comprise one or more data fields and an IP payload. The node may send the data packet to another node in a data network.

Claims (101)

1. A method comprising:

receiving, by a computing device, a first packet comprising an extension header, wherein the extension header comprises:

a client field comprising an address of a client device; and

a server field;

determining, based on one or more load balancing criteria, a server from a plurality of servers;

modifying, by the computing device and prior to sending the first packet to the server, the extension header to form a modified extension header, wherein the modified extension header comprises:

the client field comprising the address of the client device; and

a modified server field comprising an address of the server;

receiving, from the server, a second packet comprising the modified extension header;

determining, based on the second packet comprising the modified extension header, that the second packet is associated with a same session as the first packet; and

sending, to the client device or a proxy server, the second packet.

2. The method of claim 1 , wherein at least one of the extension header or the modified extension header is a destination options extension header (DOEH).

3. The method of claim 1 , further comprising:

prior to the determining the server:

determining whether the server field, of the extension header, is null.

4. The method of claim 1 , wherein the first packet is a Hyper Text Transfer Protocol (HTTP) packet, and the second packet is a Hyper Text Transfer Protocol Secure (HTTPS) packet.

5. The method of claim 1 , wherein the sending the second packet comprises sending the second packet without modifying the modified extension header.

6. The method of claim 1 , further comprising:

receiving a third packet comprising the modified extension header;

determining, based on the third packet comprising the modified extension header, that the third packet is associated with the same session as the first packet; and

sending, based on a determination that the third packet is associated with the same session as the first packet and to the server, the third packet without modifying the modified extension header.

7. An apparatus comprising:

one or more processors; and

memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

receive a first packet comprising an extension header, wherein the extension header comprises:

a client field comprising an address of a client device; and

a server field;

determine, based on one or more load balancing criteria, a server from a plurality of servers;

modify, prior to sending the first packet to the server, the extension header to form a modified extension header, wherein the modified extension header comprises:

 the client field comprising the address of the client device; and

 a modified server field comprising an address of the server;

receive, from the server, a second packet comprising the modified extension header;

determine, based on the second packet comprising the modified extension header, that the second packet is associated with a same session as the first packet; and

send, to the client device or a proxy server, the second packet.

8. The apparatus of claim 7 , wherein at least one of the extension header or the modified extension header is a destination options extension header (DOEH).

9. The apparatus of claim 7 , the memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

prior to determining the server:

determine whether the server field, of the extension header, is null.

10. The apparatus of claim 7 , wherein the first packet is a Hyper Text Transfer Protocol (HTTP) packet, and the second packet is a Hyper Text Transfer Protocol Secure (HTTPS) packet.

11. The apparatus of claim 7 , the memory storing instructions that, when executed by the one or more processors, cause the apparatus to send the second packet by sending the second packet without modifying the modified extension header.

12. The apparatus of claim 7 , the memory storing instructions that, when executed by the one or more processors, cause the apparatus to:

receive a third packet comprising the modified extension header;

determine, based on the third packet comprising the modified extension header, that the third packet is associated with the same session as the first packet and the second packet; and

send, based on a determination that the third packet is associated with the same session as the first packet and to the server, the third packet without modifying the modified extension header.

13. A system comprising:

a server; and

a computing device;

wherein the computing device comprises:

one or more processors; and

memory storing first instructions that, when executed by the one or more processors, cause the computing device to:

receive a first packet comprising an extension header, wherein the extension header comprises:

a client field comprising an address of a client device; and

a server field;

select, based on one or more load balancing criteria, the server from a plurality of servers;

modify, prior to sending the first packet to the server, the extension header to form a modified extension header, wherein the modified extension header comprises:

the client field comprising the address of the client device; and

a modified server field comprising an address of the server;

receive, from the server, a second packet comprising the modified extension header;

determine, based on the second packet comprising the modified extension header, that the second packet is associated with a same session as the first packet; and

send, to the client device or a proxy server, the second packet; and

wherein the server comprises:

one or more processors; and

memory storing second instructions that, when executed by the one or more processors of the server, cause the server to:

receive, from the computing device, the first packet; and

send, to the computing device, the second packet.

14. The system of claim 13 , wherein at least one of the extension header or the modified extension header is a destination options extension header (DOEH).

15. The system of claim 13 , wherein the first instructions, when executed by the one or more processors of the computing device, cause the computing device to select the server by:

determining that the server field, of the extension header, is null; and

selecting, further based on the address of the client device, of the extension header, the server.

16. The system of claim 13 , wherein the first packet is a Hyper Text Transfer Protocol (HTTP) packet and the second packet is a Hyper Text Transfer Protocol Secure (HTTPS) packet.

17. The system of claim 13 , wherein the first instructions, when executed by the one or more processors of the computing device, cause the computing device to send the second packet by sending the second packet without modifying the modified extension header.

18. The system of claim 13 , wherein the first instructions, when executed by the one or more processors of the computing device, cause the computing device to:

receive a third packet comprising the modified extension header;

determine, based on the third packet comprising the modified extension header, that the third packet is associated with the same session as the first packet and the second packet; and

send, based on a determination that the third packet is associated with the same session as the first packet and to the server, the third packet without modifying the modified extension header.

19. A system comprising:

a server; and

a computing device;

wherein the computing device comprises:

one or more processors; and

memory storing first instructions that, when executed by the one or more processors, cause the computing device to:

receive, from a client device, a first packet comprising a first header;

select, based on one or more load balancing criteria, the server from a plurality of servers;

send the first packet to the server without modifying the first header;

receive, from the server, a second packet comprising a second header, wherein the second header comprises a server identifier associated with the server;

send, to the client device, the second packet;

receive, from the client device, a third packet comprising a third header;

determine, based on the third header comprising the server identifier, that the third packet is associated with a same session as the first packet;

send, based on a determination that the third packet is associated with the same session as the first packet, the third packet to the server; and

wherein the server comprises:

one or more processors; and

memory storing second instructions that, when executed by the one or more processors of the server, cause the server to:

receive, from the computing device, the first packet;

modify, prior to sending the second packet to the computing device, the second header with the server identifier; and

receive, from the computing device, the third packet.

20. The system of claim 19 , wherein at least one of the first header, the second header or the third header is a destination options extension header (DOEH).

21. The system of claim 19 , wherein the first instructions, when executed by the one or more processors of the computing device, cause the computing device to select the server by:

determining that a data field, of the first header and configured to store the server identifier, is null.

22. The system of claim 19 , wherein the first packet is a Hyper Text Transfer Protocol (HTTP) packet; and

wherein at least one of the second packet or the third packet is a Hyper Text Transfer Protocol Secure (HTTPS) packet.

23. The system of claim 19 , wherein the first instructions, when executed by the one or more processors of the computing device, cause the computing device to determine that the third packet is associated with the same session as the first packet by determining that the first header and the third header comprise a same client identifier associated with the client device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2021
From: LIU, CHIA J.
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 054985/0747 →
Continuity (4)
Continuation 15720727 · Sep 29, 2017
Continuation 14331993 · Jul 15, 2014
Continuation 13407167 · Feb 28, 2012
Related Publication 20200228635A1 · Jul 16, 2020