IP Library Granted Patent US 8,819,275
Granted Patent B2
US 8,819,275 · App. 13/407,167 · Granted Aug 26, 2014

Load balancing and session persistence in packet networks

Inventor: Chia J. Liu (Marlton, NJ)
Assignee: Comcast Cable Communications, LLC
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 8,819,275
App. No.
13/407,167
Granted
Aug 26, 2014
Kind
B2
Abstract

Methods and systems for performing load balancing and session persistence in IP (e.g., IPv6) networks are described herein. Some aspects relate to a destination options extension header that may be defined as a load balancing session persistence option (LBSPO) for storing a client identifier and a server identifier for each of a client and a server during a session. Packets sent between the client and the server may include the LBSPO with the client and server identifiers. A load balancer with a virtual IP address of a target application can perform session persistence and assign a destination server to a client based on a preexisting session between the server and the client, as determined by the LBSPO information. While a target VIP node may process data packets based on the LBSPO information, once established, the LBSPO information may remain unchanged for the duration of the session.

Claims (69)

1. A non-transitory computer readable medium having a data structure stored thereon, the data structure comprising:

an IP header;

a destination options extension header (DOEH) comprising:

a first data field identifying the DOEH as conforming to a predefined option usable for load balancing and session persistence,

a second data field identifying a length of a DOEH payload field, and

the DOEH payload field, wherein the DOEH payload field comprises third and fourth data fields, wherein the third data field stores a client identifier, and the fourth data field stores a server identifier; and

an IP payload.

2. The computer readable medium of claim 1 , wherein the client identifier is an address of a client, and wherein the server identifier is an address of a server assigned to a session with the client.

3. The computer readable medium of claim 2 , wherein the first data field is 8 bits storing a binary value of 1, wherein the second data field is 8 bits storing a binary value of 4, wherein the third data field is 128 bits storing an IPv6 address of the client, and wherein the fourth data field is 128 bits storing the IPv6 address of the server.

4. The computer readable medium of claim 1 , wherein a value of the third data field, once established by a client, remains fixed within a same session, and wherein a value of the fourth data field, once established by a server, remains fixed within the same session.

5. An apparatus, comprising:

a processor, and

memory storing computer executable instructions that, when executed by the processor, cause the apparatus to perform:

receiving an Internet Protocol (IP) data packet comprising:

an IP header;

a destination options extension header (DOEH) comprising:

a first data field identifying the DOEH as conforming to a predefined option usable with load balancing,

a second data field identifying a length of a DOEH payload field, and

the DOEH payload field, wherein the DOEH payload field comprises third and fourth data fields, wherein the third data field stores a client identifier, and the fourth data field stores a server identifier; and

an IP payload; and

processing the IP data packet based on the IP header without allowing modification to the DOEH.

6. The apparatus of claim 5 , wherein the client identifier is an address of a client, and wherein the server identifier is an address of a server assigned to a session with the client.

7. The apparatus of claim 6 , wherein the first data field is 8 bits storing a binary value of 1, wherein the second data field is 8 bits storing a binary value of 4, wherein the third data field is 128 bits storing an IPv6 address of the client, and wherein the fourth data field is 128 bits storing an IPv6 address of the server.

8. The apparatus of claim 5 , wherein a value of the third data field, once established by a client, remains fixed during a same session with the server, and wherein a value of the fourth data field, once established by a server, remains fixed during the session.

9. The apparatus of claim 5 , wherein processing the IP data packet comprises forwarding the data packet to a next hop in a data network.

10. The apparatus of claim 5 , wherein processing the IP data packet comprises selecting a server from a group of available servers based on the DOEH payload field.

11. The apparatus of claim 10 , wherein selecting the server comprises:

when server information is present in the fourth data field, selecting the server identified in the fourth data field; and

when no server information is present in the fourth data field, selecting the server based on a load balancing algorithm and the client identifier.

12. The apparatus of claim 5 , wherein processing the data packet comprises associating a secure hypertext transfer protocol (HTTPS) packet with a previously received HTTP packet based on the DOEH.

13. A method comprising:

Receiving, at an intermediary node of an Internet Protocol (IP) data network, an IP data packet comprising:

an IP header;

a destination options extension header (DOEH) comprising:

a first data field identifying the DOEH as conforming to a predefined option usable with load balancing,

a second data field identifying a length of a DOEH payload field,

the DOEH payload field comprising third and fourth data fields, wherein the third data field stores a client identifier, and the fourth data field stores a server identifier; and

an IP payload; and

processing the IP data packet at the intermediary node based on the IP header without allowing modification to the DOEH; and

sending the IP data packet by the intermediary node to either of a next hop node or a destination server, based on the processing of the data packet.

14. The method of claim 13 , wherein the client identifier is an address of the client, and wherein the server identifier is an address of a server assigned to a session with the client.

15. The method of claim 13 , wherein the first data field is 8 bits storing a binary value of 1, wherein the second data field is 8 bits storing a binary value of 4, wherein the third data field is 128 bits storing an IPv6 address of the client, and wherein the fourth data field is 128 bits storing an IPv6 address of the server.

16. The method of claim 13 , wherein a value of the third data field, once established by a client, remains fixed during a same session, and wherein a value of the fourth data field, once established by a server, remains fixed during the same session.

17. The method of claim 13 , wherein the intermediary node is a router, and the sending comprises sending the IP data packet to the next hop node.

18. The method of claim 13 , wherein the intermediary node is a load balancer, and processing the IP data packet comprises selecting a destination server from a group of available servers, based on the DOEH payload field.

19. The method of claim 18 , wherein selecting the destination server comprises:

determining whether or not server information is present in the fourth data field;

if server information is present in the fourth data field, selecting the destination server identified in the fourth data field; and

if server information is not present in the fourth data field, selecting the destination server based on a load balancing algorithm.

20. The method of claim 18 , wherein the IP data packet is a secure hypertext transfer protocol (HTTPS) packet, and wherein processing the data packet comprises associating the IP data packet with a previously received HTTP IP data packet, based on the destination options extension header.

21. One or more computer readable storage media comprising computer executable instructions that, when executed by a device, configure the device to perform:

receiving an Internet Protocol (IP) data packet, the IP data packet comprising:

an IP header;

a destination options extension header (DOEH) comprising:

a first data field identifying the DOEH as conforming to a predefined option usable with load balancing,

a second data field identifying a length of a DOEH payload field, and

the DOEH payload field, wherein the DOEH payload field comprises third and fourth data fields, wherein the third data field stores a client identifier, and the fourth data field stores a server identifier; and

an IP payload; and

processing the IP data packet based on the IP header without allowing modification to the DOEH.

22. The computer readable storage media of claim 21 , wherein the client identifier is an address of a client, and wherein the server identifier is an address of a server assigned to a session with the client.

23. The computer readable storage media of claim 22 , wherein the first data field is 8 bits storing a binary value of 1, wherein the second data field is 8 bits storing a binary value of 4, wherein the third data field is 128 bits storing an IPv6 address of the client, and wherein the fourth data field is 128 bits storing an IPv6 address of the server.

24. The computer readable storage media of claim 21 , wherein a value of the third data field, once established by a client, remains fixed during a same session with the server, and wherein a value of the fourth data field, once established by a server, remains fixed during the session.

25. The computer readable storage media of claim 21 , wherein processing the IP data packet comprises forwarding the data packet to a next hop in a data network.

26. The computer readable storage media of claim 21 , wherein processing the IP data packet comprises selecting a server from a group of available servers based on the DOEH payload field.

27. The computer readable storage media of claim 26 , wherein selecting the server comprises:

determining whether or not server information is present in the fourth data field;

if server information is present in the fourth data field, selecting the server identified in the fourth data field; and

if server information is not present in the fourth data field, selecting the server based on a load balancing algorithm and the client identifier.

28. The computer readable storage media of claim 21 , wherein processing the data packet comprises associating an HTTPS packet with a previously received HTTP packet based on the DOEH.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 29, 2012
From: LIU, CHIA J.
To: COMCAST CABLE COMMUNICATIONS, LLC.
Reel/Frame 027784/0640 →
Continuity (1)
Related Publication 20130227165A1 · Aug 29, 2013