Method and system for distributing load by redirecting traffic
First Claim
1. In a network communications environment comprising at least a first and a second server and a client, a method for the first server to redirect traffic among the servers, the method comprising:
- receiving a registration request from the client;
determining a server with which the client is assigned to work; and
if the client is assigned to work with the second server, then sending a request to the client redirecting the client to work with the second server.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a system for servers to redirect client requests to other servers in order to distribute client traffic among the servers. A client is assigned to a server although the client may be unaware of that assignment. When the client accesses a server, a server possibly identified to the client by a name service, the server checks the client'"'"'s assignment. If the client is not assigned to this server, then in some scenarios this server redirects the client to its assigned server. The client responds by sending its request to the assigned server. In other scenarios, the first server accessed by the client proxies the client'"'"'s traffic to the assigned server. A database is kept of client-to-server assignments. If the present load distribution is less than ideal (e.g., clients are assigned to an unavailable server), then the assignment database is updated to reflect how the load should be distributed.
68 Citations
38 Claims
-
1. In a network communications environment comprising at least a first and a second server and a client, a method for the first server to redirect traffic among the servers, the method comprising:
-
receiving a registration request from the client;
determining a server with which the client is assigned to work; and
if the client is assigned to work with the second server, then sending a request to the client redirecting the client to work with the second server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-readable medium containing computer-executable instructions for performing a method for a first server to redirect traffic, the method comprising:
-
receiving a registration request from a client;
determining a server with which the client is assigned to work; and
if the client is assigned to work with a second server, then sending a request to the client redirecting the client to work with the second server.
-
-
11. In a network communications environment comprising at least a first and a second server and a client, a method for the first server to redirect traffic among the servers, the method comprising:
-
receiving a registration request from the client;
determining a server with which the client is assigned to work;
checking a number of Via headers in the registration request; and
if the number of Via headers is one, and if the client is assigned to work with the second server, then sending a request to the client redirecting the client to work with the second server;
else if the number of Via headers is greater than one, and if the client is assigned to work with the second server, then proxying the client'"'"'s registration request to the second server. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-readable medium containing computer-executable instructions for performing a method for a first server to redirect traffic, the method comprising:
-
receiving a registration request from a client;
determining a server with which the client is assigned to work;
checking a number of Via headers in the registration request; and
if the number of Via headers is one, and if the client is assigned to work with a second server, then sending a request to the client redirecting the client to work with the second server;
else if the number of Via headers is greater than one, and if the client is assigned to work with the second server, then proxying the client'"'"'s registration request to the second server.
-
-
21. In a network communications environment comprising at least a first and a second server and a client, a method for the first server to redirect traffic among the servers, the method comprising:
-
receiving a registration request from the client;
determining a server with which the client is assigned to work; and
if the client is assigned to work with the second server, then proxying the client'"'"'s registration request to the second server. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A computer-readable medium containing computer-executable instructions for performing a method for a first server to redirect traffic, the method comprising:
-
receiving a registration request from the client;
determining a server with which the client is assigned to work; and
if the client is assigned to work with the second server, then proxying the client'"'"'s registration request to the second server.
-
-
31. A computer-readable medium containing a client-to-home-server assignment data structure, the client-to-home-server assignment data structure comprising:
-
a first data field containing data identifying a client; and
a second data field containing data identifying a home server with which the client is assigned to work. - View Dependent Claims (32)
-
-
33. In a network communications environment, a system for redirecting traffic among servers, the system comprising:
-
a home server directory service;
a client configured for requesting an identification of a home server from the home server directory service, for receiving a home server identification in response, and for sending a registration request to the identified home server;
the identified home server comprising a client-to-home-server assignment data structure, the identified home server configured for receiving the registration request from the client, for querying the client-to-home-server assignment data structure to determine a home server with which the client is assigned to work, and for sending a request to the client redirecting the client to work with the home server with which the client is assigned to work; and
the home server with which the client is assigned to work.
-
-
34. In a network communications environment, a system for redirecting traffic among servers, the system comprising:
-
a home server directory service;
a client configured for requesting an identification of a home server from the home server directory service, for receiving a home server identification in response, and for sending a registration request to the identified home server;
the identified home server comprising a client-to-home-server assignment data structure, the identified home server configured for receiving the registration request from the client, for querying the client-to-home-server assignment data structure to determine a home server with which the client is assigned to work, for checking a number of Via headers in the registration request, and, if the number of Via headers is one, for sending a request to the client redirecting the client to work with the home server with which the client is assigned to work, else if the number of Via headers is greater than one, for proxying the client'"'"'s registration request to the home server with which the client is assigned to work; and
the home server with which the client is assigned to work.
-
-
35. In a network communications environment, a system for redirecting traffic among servers, the system comprising:
-
a home server directory service;
a client configured for requesting an identification of a home server from the home server directory service, for receiving a home server identification in response, and for sending a registration request to the identified home server;
the identified home server comprising a client-to-home-server assignment data structure, the identified home server configured for receiving the registration request from the client, for querying the client-to-home-server assignment data structure to determine a home server with which the client is assigned to work, and for proxying the client'"'"'s registration request to the home server with which the client is assigned to work; and
the home server with which the client is assigned to work.
-
-
36. In a network communications environment comprising a plurality of home servers and a client-to-home-server assignment data structure, a method for changing a distribution of traffic among the home servers, the method comprising:
-
monitoring the distribution of traffic among the home servers;
determining that a change in the distribution of traffic could be beneficial;
modifying the client-to-home-server assignment data structure to reflect the change; and
invalidating subscriptions, if any, that are incompatible with the change. - View Dependent Claims (37)
-
-
38. A computer-readable medium containing computer-executable instructions for performing a method for changing a distribution of traffic among home servers in a network communications environment, the method comprising:
-
monitoring the distribution of traffic among the home servers;
determining that a change in the distribution of traffic could be beneficial;
modifying a client-to-home-server assignment data structure to reflect the change; and
invalidating subscriptions, if any, that are incompatible with the change.
-
Specification