Claims
- 1. In an Internet Protocol network, a method for directing a flow between a client and a best-fit server, the method comprising:
receiving client request for content via the Internet Protocol network; deriving, from the client request, content type information descriptive of the type of content requested by the content request; deriving, from the client request, quality of service information descriptive of quality of service requirements of the content requested by the client request; selecting as the best-fit server a server from among a set of candidate servers serving the content requested by the client request, based on the content type information, the quality of service information, and a combination of server metrics descriptive of expected qualities of service provided by the candidate servers when serving the requested content; subsequently forwarding to the best-fit server transmissions originating from the client which are associated with the client request for content; and subsequently forwarding to the client transmissions originating from the best-fit server which are associated with the client request for content.
- 2. The method of claim 1, wherein the combination of server metrics includes:
one or more metrics selected from the following group: server load metrics descriptive of the current load and recent activity on the candidate servers, network congestion metrics descriptive of network congestion between the client and the candidate servers, and client-server proximity information descriptive of distances between the client and candidate servers.
- 3. The method of claim 1, wherein the combination of server metrics includes:
two or more metrics selected from the following group: server load metrics descriptive of the current load and recent activity on the candidate servers, network congestion metrics descriptive of network congestion between the client and the candidate servers, and client-server proximity information descriptive of distances between the client and candidate servers.
- 4. The method of claim 1, wherein the combination of server metrics includes:
server load metrics descriptive of the current load and recent activity on the candidate servers, network congestion metrics descriptive of network congestion between the client and the candidate servers, and client-server proximity information descriptive of distances between the client and candidate servers.
- 5. The method of claim 1, wherein the step of deriving quality of service information includes deriving quality of service information from the content type information.
- 6. The method of claim 1, wherein the step of deriving quality of service information includes deriving quality of service information from a size of the content requested by the client request.
- 7. The method of claim 1, wherein the client request is an HTTP request.
- 8. The method of claim 7, wherein deriving content type information comprises:
extracting content type information from an HTTP header of the client request.
- 9. The method of claim 1, wherein the client request is a TCP request.
- 10. The method of claim 1, further comprising:
obtaining additional information from the client about the content requested by the client request; and wherein the selecting step further comprises selecting the best-fit server based on the additional information.
- 11. The method of claim 10, wherein the additional information comprises information derived from an HTTP GET.
- 12. The method of claim 10, wherein the obtaining step comprises obtaining a protocol number and a source port of the client request.
- 13. The method of claim 10, wherein the obtaining step comprises obtaining a protocol number and a destination port of the client request.
- 14. The method of claim 10, wherein the obtaining step comprises obtaining a filename associated with the content request.
- 15. The method of claim 10, wherein the obtaining step comprises obtaining a filename extension associated with the content request.
- 16. The method of claim 1, wherein the server metrics are obtained by querying a content server database.
- 17. The method of claim 1, wherein the server metrics are obtained by periodically querying servers in the Internet Protocol network.
- 18. The method of claim 1, further comprising:
obtaining client capability information about the client; and wherein the selecting step further comprises selecting the best-fit server based on the additional information.
- 19. The method of claim 1, wherein quality of service requirements comprise a bandwidth.
- 20. The method of claim 1, wherein quality of service requirements comprise a delay.
- 21. The method of claim 1, wherein quality of service requirements comprise a frame loss ratio.
- 22. The method of claim 1, wherein deriving quality of service information comprises deriving quality of service information from the MIME content type of the client request.
- 23. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server is receiving a burst of requests for the content requested by the client request.
- 24. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether satisfying the client request will result in a short-term flow.
- 25. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the content requested by the client request has been frequently requested in the past.
- 26. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the content requested by the client request has a high priority.
- 27. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of a probability that the content requested by the client request is cached by the server.
- 28. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server has responded to recent queries.
- 29. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server recently responded to a request for the content requested by the client request with an indication that the content is not served by the candidate server.
- 30. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server is reachable.
- 31. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server's cache resources are below a threshold level.
- 32. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server's TCP buffer resources are below a threshold level.
- 33. The method of claim 1, wherein the expected quality of service provided by a candidate server is descriptive of whether the candidate server's port bandwidth is below a threshold level.
- 34. The method of claim 2, wherein client-server proximity information comprises information descriptive of a continent in which the client resides and a continent in which the server resides.
- 35. The method of claim 34, wherein client-server proximity information further comprises information descriptive of an administrative authority associated with the client and an administrative authority associated with the server.
- 36. The method of claim 35, wherein the administrative authorities are Internet Service Providers.
- 37. The method of claim 1, wherein selecting as the best-fit server comprises:
determining whether the client request requires persistent connectivity with a particular candidate server; if the client request requires persistent connectivity with a particular server, identifying a candidate server with which the client is persistently connected for service of the client request; selecting the identified candidate server as the best-fit server.
- 38. A method for allocating bandwidth of a data switching device to each of a plurality of flow pipes, comprising:
allocating to the plurality of flow pipes a maximum bandwidth which is a function of the available bandwidth of the data switching device; allocating to each of the plurality of flow pipes a maximum bandwidth which is a function of the bandwidth allocated to the plurality of flow pipes; and ensuring that the bandwidth through the data switching device consumed by a flow pipe is no greater than the maximum bandwidth allocated to the flow pipe.
- 39. In an Internet Protocol network, a method for selecting a best-fit server, from among a plurality of servers, to service a client request for content, the method comprising:
identifying a location of the client; identifying a location of each of the plurality of servers; identifying servers that are in the same location as the client; and selecting as the best-fit server a server from among the plurality of servers using a process which assigns a proximity preference to the identified servers.
- 40. The method of claim 1, further comprising determining whether an active path exists between the client and the best-fit server.
- 41. The method of claim 40, wherein determining whether an active path exists comprises sending a PING packet to the client.
- 42. The method of claim 40, wherein determining whether an active path exists comprises performing a Border Gateway Protocol route table lookup.
- 43. The method of claim 40, wherein the location of the client comprises a continent in which the client resides.
- 44. The method of claim 43, wherein the locations of the plurality of servers are continents in which the servers reside.
- 45. The method of claim 40, wherein identifying servers that are in the same location as the client comprises:
identifying administrative authorities associated with the client; identifying, for each of the plurality of servers, administrative authorities associated with the server; and identifying servers associated with an administrative authority that is associated with the client.
- 46. The method of claim 45, wherein the administrative authorities are Internet Service Providers.
- 47. A system for directing a flow between a client and a best-fit server, the system comprising:
a plurality of servers; a flow switch coupled to the plurality of servers by an Internet Protocol network through one or more communication links, wherein the flow switch comprises:
means for receiving a client request for content via the Internet Protocol network; means for deriving, from the client request, content type information descriptive of the type of content requested by the content request; means for deriving, from the client request, quality of service information descriptive of quality of service requirements of the content requested by the client request; means for selecting as the best-fit server a server from among a set of candidate servers serving the content requested by the client request, based on the content type information, the quality of service information, and a combination of server metrics descriptive of expected qualities of service provided by the candidate servers when serving the requested content; means for subsequently forwarding to the best-fit server transmissions originating from the client which are associated with the client request for content; and means for subsequently forwarding to the client transmissions originating from the best-fit server which are associated with the client request for content.
- 48. The system of claim 47, wherein:
the candidate servers comprise HTTP servers.
- 49. A flow switch in an Internet Protocol network, comprising:
means for receiving a client request for content via the Internet Protocol network; means for deriving, from the client request, content type information descriptive of the type of content requested by the content request; means for deriving, from the client request, quality of service information descriptive of quality of service requirements of the content requested by the client request; means for selecting as the best-fit server a server from among a set of candidate servers serving the content requested by the client request, based on the content type information, the quality of service information, and a combination of server metrics descriptive of expected qualities of service provided by the candidate servers when serving the requested content; means for subsequently forwarding to the best-fit server transmissions originating from the client which are associated with the client request for content; and means for subsequently forwarding to the client transmissions originating from the best-fit server which are associated with the client request for content.
REFERENCES TO RELATED APPLICATIONS
[0001] This application claims priority from a provisional application Ser. No. 60/054,687, filed Aug. 1, 1997, which is hereby incorporated by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60054687 |
Aug 1997 |
US |
Continuations (2)
|
Number |
Date |
Country |
Parent |
09400635 |
Sep 1999 |
US |
Child |
10197339 |
Jul 2002 |
US |
Parent |
09050524 |
Mar 1998 |
US |
Child |
09400635 |
Sep 1999 |
US |