IP Library Granted Patent US 8,266,294
Granted Patent B2
US 8,266,294 · App. 10/639,727 · Granted Sep 11, 2012

Routing hints

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,266,294
App. No.
10/639,727
Granted
Sep 11, 2012
Kind
B2
Abstract

A first exemplary media implementation includes processor-executable instructions that direct a device to perform actions including: creating a session identifier using a host identifier; and formulating a host session initiation message with the created session identifier. A first exemplary device implementation includes: at least one processor; and one or more media including processor-executable instructions that direct the device to perform actions including: formulating a host session message with a session identifier that is created responsive to a host identifier; and sending the formulated host session message that includes the session identifier from the device. A second exemplary media implementation includes a data structure that has a message including a session identifier field, at least part of the session identifier field including a host identifier. A second exemplary device implementation includes: a host identifier; and a session identifier creator that is adapted to create a session identifier using the host identifier.

Claims (132)

1. One or more processor-accessible recording media comprising processor-executable instructions stored thereon that, when executed, direct a host device to perform operations comprising:

receiving, by the host device, a request from a client for a content;

creating, by the host device, a session identifier using a host identifier, the host identifier being unique to the host across a plurality of hosts belonging to a cluster of hosts and the host identifier not being unique as to another host belonging to another cluster of hosts, wherein the creating comprises creating the session identifier by including the host identifier as part of the created session identifier;

formulating, by the host device, a host session initiation message with the created session identifier, wherein the host device is a source of the content requested by the client;

storing the host identifier at the host device, and wherein the host identifier is divided and dispersed across a first field of the session identifier by the host device when creating the session identifier;

establishing, by the host device, the corresponding session to which the created session identifier is assigned, wherein a type of the corresponding session to which the created session identifier is assigned comprises one of a Secure Sockets Layer (SSL) session; a Transport Layer Security (TLS) session, a secure internet protocol (IPSec) session; a hyper text transfer protocol cookie-based session, a point-to-point tunneling protocol (PPTP) session, an IPSec/layer-2 tunneling protocol (L2TP) session, a proprietary session, a terminal server session, or an administrator-defined session; and

establishing, by the host device, at least one layer comprising at least two of the types of sessions;

populating a second field of the session identifier with a value increasing uniqueness for the session identifier, the session identifier comprising the first field and the populated second field; and

formulating a host session initiation message to include the first field and the populated second field for a given session, wherein a content of the first field and a content of the populated second particular field is returned unaltered in a client session continuation message for the given session.

2. The one or more processor-accessible recording media as recited in claim 1 , wherein operations further comprise:

sending the formulated host session initiation message that includes the created session identifier.

3. The one or more processor-accessible recording media as recited in claim 2 , wherein the sending comprises:

sending the formulated host session initiation message that includes the created session identifier towards a client.

4. The one or more processor-accessible recording media as recited in claim 2 , wherein the sending comprises:

sending the formulated host session initiation message that includes the created session identifier towards a client via a network gateway.

5. The one or more processor-accessible recording media as recited in claim 1 , wherein operations further comprise:

receiving a client session message; and

determining if the received client session message includes a received session identifier.

6. The one or more processor-accessible recording media as recited in claim 5 , wherein operations further comprise:

if the received client session message is determined to not include a received session identifier, performing the actions of creating and formulating.

7. The one or more processor-accessible recording media as recited in claim 5 , wherein operations further comprise:

if the received client session message is determined to include a received session identifier, then performing actions of:

formulating a host session continuation message with the received session identifier; and

sending the formulated host session continuation message that includes the received session identifier.

8. The one or more processor-accessible recording media as recited in claim 5 , wherein the operations further comprise, if the received client session message is determined to include a received session identifier, then:

formulating a host session continuation message with the received session identifier; and

sending the host session continuation message that includes the received session identifier from the device.

9. The one or more processor-accessible recording media as recited in claim 1 , wherein the formulating comprises:

inserting the created session identifier into a session identifier field of a host session message to generate the formulated host session initiation message.

10. The one or more processor-accessible recording media as recited in claim 9 , wherein the formulating further comprises:

populating a plurality of other fields of the host session message to generate the formulated host session initiation message.

11. The one or more processor-accessible recording media as recited in claim 1 , wherein the host identifier comprises a device identifier.

12. The one or more processor-accessible recording media as recited in claim 11 , wherein the device identifier comprises at least one of a network address and a key that maps to the network address.

13. The one or more processor-accessible recording media as recited in claim 1 , wherein the host identifier comprises a device identifier and an application identifier.

14. The one or more processor-accessible recording media as recited in claim 1 , wherein the host identifier comprises a key that maps to a network address and an application identifier.

15. The one or more processor-accessible recording media as recited in claim 1 , wherein the computer-executable instructions comprise a server program.

16. The one or more processor-accessible recording media as recited in claim 1 , wherein the computer-executable instructions comprise an operating system program.

17. The one or more processor-accessible recording media as recited in claim 1 , wherein a code included in the session identifier signifies a host participant and a client participant to a given session, wherein the client participant is associated with a plurality of client device identifiers, and the code facilitates the client participant accessing the given session from a corresponding plurality of client devices.

18. The one or more processor-accessible recording media as recited in claim 1 , wherein the creating the session identifier further comprises using at least one value of the following: a randomly selected value, a value from an incrementing counter, a security-related value, or a hashed value.

19. The one or more processor-accessible recording media as recited in claim 1 , wherein the operations further comprise sending the host session initiation message that includes the created session identifier towards a client via a network gateway and over an intranet to which the host device is connected.

20. The one or more processor-accessible recording media as recited in claim 1 , wherein the operations further comprise:

receiving a session message that includes the created session identifier from the client;

resuming the corresponding session to which the created and received session identifier is assigned;

formulating a session message that includes the created and received session identifier in response to the received session message that includes the created session identifier; and

sending the session message that includes the created and received session identifier toward the client via the network gateway to indicate that the corresponding session may be continued.

21. The one or more processor-accessible recording media as recited in claim 1 , wherein the operations further comprise:

populating a session identifier field with a code signifying the host device and a client participant to a session, wherein the client participant is associated with a plurality of client device identifiers and the code facilitates the client participant accessing the session from a corresponding plurality of client devices; and

formulating a host session message from the host device to include the populated session identifier field, wherein the code is capable of communicating information to devices other than the host device and the plurality of client devices.

22. The one or more processor-accessible recording media as recited in claim 1 , wherein session affinity is preserved without a table comprising an entry for each session.

23. The one or more processor-accessible recording media as recited in claim 1 , wherein the operations are employed for routing hints.

24. The one or more processor-accessible recording media as recited in claim 1 , further comprising instructions for populating a session identifier field with a code signifying the host participant and a client participant to a session, wherein the client participant is associated with a plurality of client device identifiers, and the code facilitates the client participant accessing the session from a corresponding plurality of client devices.

25. A method comprising:

creating, by a host device, a session identifier using a host identifier from the host device, the host identifier being unique to the host across a plurality of hosts belonging to a cluster of hosts and the host identifier not being unique as to another host belonging to another cluster of hosts;

formulating, by the host device, a host session initiation message with the created session identifier, wherein the host device is a source of a content requested by a client;

storing the host identifier at the host device, and wherein the host identifier is divided and dispersed across a first field of the session identifier by the host device when creating the session identifier;

establishing, by the host device, the corresponding session to which the created session identifier is assigned, wherein a type of the corresponding session to which the created session identifier is assigned comprises one of a Secure Sockets Layer (SSL) session; a Transport Layer Security (TLS) session, a secure internet protocol (IPSec) session; a hyper text transfer protocol cookie-based session, a point-to-point tunneling protocol (PPTP) session, an IPSec/layer-2 tunneling protocol (L2TP) session, a proprietary session, a terminal server session, or an administrator-defined session;

establishing, by the host device, at least one layer comprising at least two of the types of sessions;

populating a second field of the session identifier with a value increasing uniqueness for the session identifier, the session identifier comprising the first field and the populated second field; and

formulating a host session initiation message to include the first field and the populated second field for a given session, wherein a content of the first field and a content of the populated second particular field is returned unaltered in a client session continuation message for the given session.

26. The method as recited in claim 25 , further comprising:

sending the formulated host session initiation message towards a client.

27. The method as recited in claim 25 , wherein the method is implemented by one or more processor-accessible storage media.

28. The method as recited in claim 25 , wherein the creating the session identifier further comprises using the host identifier and at least one value of the following: a randomly selected value, a value from an incrementing counter, a security-related value, and a hashed value.

29. The method as recited in claim 25 , wherein the operations further comprise sending the formulated host session initiation message that includes the created session identifier towards a client via a network gateway and over an intranet to which the device is connected.

30. The method as recited in claim 25 , further comprising:

receiving a client session message;

determining if the received client session message includes a received session identifier;

if the received client session message is determined to include the received session identifier, then:

formulating a host session continuation message with the received session identifier; and

sending the host session continuation message that includes the received session identifier from the device.

31. The method as recited in claim 25 , further comprising:

receiving a session message that includes the created session identifier from the client;

resuming the corresponding session to which the created and received session identifier is assigned;

formulating a session message that includes the created and received session identifier in response to the received session message that includes the created session identifier; and

sending the session message that includes the created and received session identifier toward the client via the network gateway to indicate that the corresponding session may be continued.

32. The method as recited in claim 25 , further comprising:

populating a session identifier field with a code signifying the host device and a client participant to a session, wherein the client participant is associated with a plurality of client device identifiers, and the code facilitates the client participant accessing the session from a corresponding plurality of client devices; and

formulating a host session message from the host device to include the populated session identifier field, wherein the code is capable of communicating information to devices other than the host device and the plurality of client devices.

33. The method as recited in claim 25 , wherein session affinity is preserved without a table comprising an entry for each session.

34. The method as recited in claim 25 , wherein the method is employed for routing hints.

35. The method as recited in claim 25 , wherein a code included in the session identifier signifies a host participant and a client participant to a given session, wherein the client participant is associated with a plurality of client device identifiers, and the code facilitates the client participant accessing the given session from a corresponding plurality of client devices.

36. A host device comprising:

at least one processor; and

one or more media including processor-executable instructions that, when executed by the at least one processor, direct the host device to perform operations comprising:

receiving, by the host device, a request from a client for a content;

creating, by the host device, a session identifier using a host identifier, the host identifier being unique to the host across a plurality of hosts belonging to a cluster of hosts and the host identifier not being unique as to another host belonging to another cluster of hosts, wherein the creating comprises creating the session identifier by including the host identifier as part of the created session identifier;

formulating, by the host device, a host session initiation message with the created session identifier, wherein the host device is a source of the content requested by the client;

storing the host identifier at the host device, and wherein the host identifier is divided and dispersed across a first field of the session identifier by the host device when creating the session identifier;

establishing, by the host device, the corresponding session to which the created session identifier is assigned, wherein a type of the corresponding session to which the created session identifier is assigned comprises one of a Secure Sockets Layer (SSL) session; a Transport Layer Security (TLS) session, a secure internet protocol (IPSec) session; a hyper text transfer protocol cookie-based session, a point-to-point tunneling protocol (PPTP) session, an IPSec/layer-2 tunneling protocol (L2TP) session, a proprietary session, a terminal server session, or an administrator-defined session;

establishing, by the host device, at least one layer comprising at least two of the types of sessions;

populating a second field of the session identifier with a value increasing uniqueness for the session identifier, the session identifier comprising the first field and the populated second field; and

formulating a host session initiation message to include the first field and the populated second field for a given session, wherein a content of the first field and a content of the populated second particular field is returned unaltered in a client session continuation message for the given session.

37. The host device as recited in claim 36 , wherein the operations further comprise:

creating the session identifier using the host identifier and at least one of the following values: a randomly selected value, a value from an incrementing counter, a security-related value, or a hashed value; and

sending, by the host device, the host session initiation message that includes the session identifier from the host device, wherein the host identifier is associated with the host device.

38. The host device as recited in claim 36 , wherein the operations further comprise sending the host session initiation message that includes the created session identifier.

39. The host device as recited in claim 36 , wherein the operations further comprise sending, by the host device, the host session initiation message that comprises a host session continuation message.

40. The host device as recited in claim 36 , wherein the operations further comprise sending, by the host device, the host session initiation message that includes the session identifier from the host device towards a client.

41. The host device as recited in claim 36 , wherein the operations further comprise sending, by the host device, the host session initiation message that includes the session identifier from the host device towards a client via a network gateway and over an intranet to which the host device is connected.

42. The host device as recited in claim 36 , wherein the operations further comprise:

receiving a client session message; and

determining if the received client session message includes a received session identifier.

43. The host device as recited in claim 42 , wherein the operations further comprise:

if the received client session message is determined to not include a received session identifier, performing the actions of creating and formulating.

44. The host device as recited in claim 42 , wherein the operations further comprise:

if the received client session message is determined to include a received session identifier, then performing actions of:

formulating a host session continuation message with the received session identifier; and

sending the host session continuation message that includes the received session identifier.

45. The host device as recited in claim 36 , wherein the formulating operation further comprises inserting the created session identifier into a session identifier field of a host session message to generate the host session initiation message.

46. The host device as recited in claim 45 , wherein the formulating further comprises populating a plurality of other fields of the host session message to generate the host session initiation message.

47. The host device as recited in claim 36 , wherein the host identifier comprises a device identifier.

48. The host device as recited in claim 47 , wherein the device identifier comprises at least one of a network address and a key that maps to the network address.

49. The host device as recited in claim 36 , wherein the host identifier comprises a device identifier and an application identifier.

50. The host device as recited in claim 36 , wherein the host identifier comprises a key that maps to a network address and an application identifier.

51. The host device as recited in claim 36 , wherein the computer-executable instructions comprise a server program.

52. The host device as recited in claim 36 , wherein the computer-executable instructions comprise an operating system program.

53. A system comprising:

at least one processor; and

one or more media including processor-executable instructions that, when executed by the at least one processor, direct the system to perform operations comprising:

receiving, by the system, a request from a device for a content;

creating, by the system, a session identifier using a host identifier, the host identifier being unique to a host across a plurality of hosts belonging to a cluster of hosts and the host identifier not being unique as to another host belonging to another cluster of hosts, wherein the creating comprises creating the session identifier by including the host identifier as part of the created session identifier;

formulating, by the system, a host session initiation message with the created session identifier, wherein the system is a source of the content requested by the device;

storing the host identifier at the host device, and wherein the host identifier is divided and dispersed across a first field of the session identifier by the host device when creating the session identifier;

establishing, by the host device, the corresponding session to which the created session identifier is assigned, wherein a type of the corresponding session to which the created session identifier is assigned comprises one of a Secure Sockets Layer (SSL) session; a Transport Layer Security (TLS) session, a secure internet protocol (IPSec) session; a hyper text transfer protocol cookie- based session, a point-to-point tunneling protocol (PPTP) session, an IPSec/layer-2 tunneling protocol (L2TP) session, a proprietary session, a terminal server session, or an administrator-defined session;

establishing, by the host device, at least one layer comprising at least two of the types of sessions;

populating a second field of the session identifier with a value increasing uniqueness for the session identifier, the session identifier comprising the first field and the populated second field; and

formulating a host session initiation message to include the first field and the populated second field for a given session, wherein a content of the first field and a content of the populated second particular field is returned unaltered in a client session continuation message for the given session.

54. The system as recited in claim 53 , wherein the host identifier comprises a device identifier and an application identifier.

55. The system as recited in claim 53 , wherein the host identifier comprises a key that maps to a network address and an application identifier.

56. The system as recited in claim 53 , wherein the operations further comprise:

populating a session identifier field with a code signifying the host participant and a client participant to a session, wherein the client participant is associated with a plurality of client device identifiers, and the code facilitates the client participant accessing the session from a corresponding plurality of client devices; and

formulating a host session message from the host device to include the populated session identifier field, wherein the code is capable of communicating information to devices other than the host device and the plurality of client devices.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2003
From: BANES, JOHN A.; JOY, JOSEPH M.; MOWERS, DAVID R.; PAYA, CEM; SUN, FENG
To: MICROSOFT CORPORATION
Reel/Frame 014399/0508 →