IP Library Granted Patent US 9,826,068
Granted Patent B2
US 9,826,068 · App. 14/331,993 · Granted Nov 21, 2017

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 9,826,068
App. No.
14/331,993
Granted
Nov 21, 2017
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 (98)

1. A method comprising:

generating a data packet comprising:

an IP header,

a destination options extension header (DOEH) comprising:

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

a second data field indicating a length of a DOEH payload field; and

the DOEH payload field, wherein the DOEH payload field comprises a third data field indicating a client identifier and a fourth data field indicating a server identifier, and

an IP payload; and

sending the data packet to another node in a data network.

2. The method 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 method 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 an IPv6 address of the server.

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

5. The method of claim 1 , wherein the another node comprises a next hop in the data network.

6. The method of claim 1 , wherein the another node comprises a load balancer configured to determine a destination server from a group of available servers, based on the DOEH payload field.

7. The method of claim 6 , wherein the load balancer is configured to determine the destination server by:

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

selecting the destination server based on a load balancing algorithm when no server information is present in the fourth data field.

8. The method of claim 1 , further comprising associating a secure hypertext transfer protocol (HTTPS) packet with a previously received hypertext transfer protocol (HTTP) packet based on the DOEH.

9. The method of claim 1 , wherein the data packet is an IPv6 data packet.

10. A method comprising:

associating, by a node in an Internet Protocol (IP) data network, a secure hypertext transfer protocol (HTTPS) packet with a previously received hypertext transfer protocol (HTTP) packet based on a destination options extension header (DOEH) of an Internet Protocol (IP) data packet, wherein the IP data packet comprises:

an IP header;

the DOEH, wherein the DOEH comprises:

a first data field indicating the DOEH as conforming to a predefined option usable with session persistence,

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

the DOEH payload field comprising a third data field indicating a client identifier and a fourth data field indicating a server identifier, and

an IP payload;

determining, based on the associating, that the HTTPS packet is associated with a same session as the HTTP packet; and

sending the data packet to another node.

11. The method of claim 10 , wherein the IP data packet is an IPv6 data packet.

12. The method of claim 10 , 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.

13. The method of claim 10 , 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 a client, and wherein the fourth data field is 128 bits storing an IPv6 address of a server.

14. The method of claim 10 , 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.

15. The method of claim 10 , wherein the another node comprises a next hop in the IP data network.

16. The method of claim 10 , wherein the another node comprises a load balancer configured to determine a destination server from a group of available servers, based on the DOEH payload field.

17. The method of claim 16 , wherein the load balancer is configured to determine the destination server by:

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

selecting the destination server based on a load balancing algorithm when no server information is present in the fourth data field.

18. A method comprising:

associating, by a node in an Internet Protocol (IP) data network, a secure hypertext transfer protocol (HTTPS) packet with a previously received hypertext transfer protocol (HTTP) packet based on a destination options extension header (DOEH) of an Internet Protocol (IP) data packet that comprises the DOEH and an IP header;

determining, based on the associating, that the HTTPS packet is associated with a same session as the previously received HTTP packet; and

sending the HTTPS data packet to another node.

19. The method of claim 18 , wherein the DOEH comprises:

a first data field indicating the DOEH as conforming to a predefined option usable with session persistence,

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

the DOEH payload field comprising a third data field indicating a client identifier and a fourth data field indicating a server identifier.

20. The method of claim 19 , wherein the IP data packet is an IPv6 data packet.

21. An apparatus comprising:

one or more processors; and

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

generate a data packet comprising:

an IP header,

a destination options extension header (DOEH) comprising:

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

a second data field indicating a length of a DOEH payload field; and

the DOEH payload field, wherein the DOEH payload field comprises a third data field indicating a client identifier and a fourth data field indicating a server identifier, and

an IP payload; and

send the data packet to another node in a data network.

22. The apparatus 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 apparatus of claim 22 , wherein a value of the third data field is determined by the client and remains fixed during the session.

24. The apparatus of claim 22 , wherein a value of the fourth data field is determined by the server and remains fixed during the session.

25. The apparatus of claim 21 , wherein the another comprises a next hop in the data network.

26. The apparatus of claim 21 , wherein the another node comprises a load balancer configured to determine, based on the DOEH payload field of the data packet, a destination server from a group of servers.

27. The apparatus of claim 21 , wherein the instructions, when executed by the one or more processors, further cause the apparatus to:

receive a secure hypertext transfer protocol (HTTPS) packet; and

associate, based on a DOEH of the HTTPS packet, the HTTPS packet with a previously received hypertext transfer protocol (HTTP) packet.

28. The apparatus of claim 21 , wherein the data packet is an IPv6 data packet.

29. An apparatus comprising:

one or more processors; and

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

associate, by a node in an Internet Protocol (IP) data network, a secure hypertext transfer protocol (HTTPS) packet with a previously received hypertext transfer protocol (HTTP) packet based on a destination options extension header (DOEH) of the HTTPS packet, wherein the HTTPS packet comprises:

an IP header;

the DOEH, wherein the DOEH comprises:

a first data field indicating the DOEH as conforming to a predefined option usable with session persistence,

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

the DOEH payload field comprising a third data field indicating a client identifier and a fourth data field indicating a server identifier, and

an IP payload;

determine, based on the associating, that the HTTPS packet is associated with a same session as the HTTP packet; and

send the HTTPS packet to another node.

30. The apparatus of claim 29 , 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.

31. The apparatus of claim 29 , wherein the another node comprises a next hop in the IP data network.

32. The apparatus of claim 29 , wherein the another node comprises a load balancer configured to determine, based on the DOEH payload field, a destination server from a group of servers.

33. A system comprising:

a first node configured to:

generate a secure hypertext transfer protocol (HTTPS) packet comprising:

an Internet Protocol (IP) header,

a destination options extension header (DOEH) comprising:

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

a second data field indicating a length of a DOEH payload field; and

the DOEH payload field, wherein the DOEH payload field comprises a third data field indicating a client identifier and a fourth data field indicating a server identifier, and

an IP payload; and

send the HTTPS packet to a second node in an IP data network; and

the second node, wherein the second node is configured to:

associate, based on the DOEH of the HTTPS packet, the HTTPS packet with a previously received hypertext transfer protocol (HTTP) packet; and

process, based on the associating and using a same session as the previously received HTTP packet, the HTTPS packet.

34. The system of claim 33 , wherein the second node comprises a next hop in the IP data network.

35. The system of claim 33 , wherein the second node is further configured to:

determine, based on the DOEH of the HTTPS packet, a destination server from a group of available servers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 4, 2014
From: LIU, CHIA J.
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 034095/0444 →
Continuity (2)
Continuation 13407167 · Feb 28, 2012
Related Publication 20150043583A1 · Feb 12, 2015